<?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>69839</bug_id>
          
          <creation_ts>2011-10-11 07:28:07 -0700</creation_ts>
          <short_desc>[Microdata] Add itemprop, itemref, itemvalue attributes</short_desc>
          <delta_ts>2011-10-24 17:12:33 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>68610</dependson>
          <blocked>68609</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Arko Saha">arko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>481619</commentid>
    <comment_count>0</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-11 07:28:07 -0700</bug_when>
    <thetext>Implement itemprop, itemtype, itemvalue Microdata attributes according to the specification http://www.whatwg.org/specs/web-apps/current-work/complete/microdata.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481623</commentid>
    <comment_count>1</comment_count>
      <attachid>110513</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-11 07:39:47 -0700</bug_when>
    <thetext>Created attachment 110513
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485061</commentid>
    <comment_count>2</comment_count>
      <attachid>111245</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-17 04:58:00 -0700</bug_when>
    <thetext>Created attachment 111245
Updated patch

Added test-cases for Microdata itemprop, itemref, itemvalue attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485064</commentid>
    <comment_count>3</comment_count>
      <attachid>111245</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-17 05:06:20 -0700</bug_when>
    <thetext>Comment on attachment 111245
Updated patch

Attachment 111245 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10058014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485065</commentid>
    <comment_count>4</comment_count>
      <attachid>111245</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-10-17 05:06:33 -0700</bug_when>
    <thetext>Comment on attachment 111245
Updated patch

Attachment 111245 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10078920</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485067</commentid>
    <comment_count>5</comment_count>
      <attachid>111245</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 05:11:28 -0700</bug_when>
    <thetext>Comment on attachment 111245
Updated patch

Attachment 111245 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10075970</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485073</commentid>
    <comment_count>6</comment_count>
      <attachid>111248</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-17 05:26:29 -0700</bug_when>
    <thetext>Created attachment 111248
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485430</commentid>
    <comment_count>7</comment_count>
      <attachid>111248</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-17 13:09:53 -0700</bug_when>
    <thetext>Comment on attachment 111248
Updated patch

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

&gt; Source/WebCore/bindings/js/JSHTMLElementCustom.cpp:41
&gt; +#if ENABLE(MICRODATA)
&gt; +static JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, MicroDataItemValue* itemValue)

You need to update V8 binding as well.

&gt; Source/WebCore/html/HTMLAnchorElement.h:130
&gt; +    virtual String itemValueText() const;
&gt; +    virtual void setItemValueText(const String&amp;, ExceptionCode&amp;);

Please use OVERRIDE macro.

&gt; Source/WebCore/html/HTMLAreaElement.h:64
&gt; +    virtual String itemValueText() const;
&gt; +    virtual void setItemValueText(const String&amp;, ExceptionCode&amp;);

Ditto.

&gt; Source/WebCore/html/HTMLElement.cpp:46
&gt; +#if ENABLE(MICRODATA)
&gt; +#include &quot;MicroDataItemValue.h&quot;
&gt; +#endif

This should be added below all other headers with a blank line to separate it from the rest.

&gt; Source/WebCore/html/HTMLElement.cpp:994
&gt; +void HTMLElement::itemPropSetToken(const String&amp; value)

We don&apos;t prefix function names like this. Please rename. To begin with, why does it need to be token? Can&apos;t it just be setItemProp?

&gt; Source/WebCore/html/HTMLElement.cpp:1010
&gt; +void HTMLElement::itemRefSetToken(const String&amp; value)

Ditto about the function name.

&gt; Source/WebCore/html/HTMLElement.idl:76
&gt; +                attribute [Conditional=MICRODATA, Custom] custom itemValue

Missing one space in indentation?

&gt; Source/WebCore/html/HTMLMediaElement.cpp:3037
&gt; +String HTMLMediaElement::itemValueText() const
&gt; +{
&gt; +    return getURLAttribute(srcAttr);
&gt; +}
&gt; +
&gt; +void HTMLMediaElement::setItemValueText(const String&amp; value, ExceptionCode&amp; ec)
&gt; +{
&gt; +    setAttribute(srcAttr, value, ec);
&gt; +}

This element isn&apos;t listed in http://dev.w3.org/html5/md/Overview.html#dom-itemvalue. Are you sure this is the correct behavior?

&gt; Source/WebCore/html/MicroDataItemValue.h:57
&gt; +    String m_str;

Please don&apos;t abbreviate string as str.

&gt; LayoutTests/ChangeLog:41
&gt; +        * fast/dom/MicroData/010-expected.txt: Added.
&gt; +        * fast/dom/MicroData/010.html: Added.
&gt; +        * fast/dom/MicroData/011-expected.txt: Added.
&gt; +        * fast/dom/MicroData/011.html: Added.
&gt; +        * fast/dom/MicroData/012-expected.txt: Added.
&gt; +        * fast/dom/MicroData/012.html: Added.
&gt; +        * fast/dom/MicroData/013-expected.txt: Added.
&gt; +        * fast/dom/MicroData/013.html: Added.
&gt; +        * fast/dom/MicroData/014-expected.txt: Added.
&gt; +        * fast/dom/MicroData/014.html: Added.
&gt; +        * fast/dom/MicroData/015-expected.txt: Added.
&gt; +        * fast/dom/MicroData/015.html: Added.
&gt; +        * fast/dom/MicroData/016-expected.txt: Added.
&gt; +        * fast/dom/MicroData/016.html: Added.
&gt; +        * fast/dom/MicroData/017-expected.txt: Added.
&gt; +        * fast/dom/MicroData/017.html: Added.
&gt; +        * fast/dom/MicroData/018-expected.txt: Added.
&gt; +        * fast/dom/MicroData/018.html: Added.
&gt; +        * fast/dom/MicroData/019-expected.txt: Added.
&gt; +        * fast/dom/MicroData/019.html: Added.
&gt; +        * fast/dom/MicroData/020-expected.txt: Added.
&gt; +        * fast/dom/MicroData/020.html: Added.
&gt; +        * fast/dom/MicroData/021-expected.txt: Added.
&gt; +        * fast/dom/MicroData/021.html: Added.
&gt; +        * fast/dom/MicroData/022-expected.txt: Added.
&gt; +        * fast/dom/MicroData/022.html: Added.
&gt; +        * fast/dom/MicroData/023-expected.txt: Added.
&gt; +        * fast/dom/MicroData/023.html: Added.
&gt; +        * fast/dom/MicroData/024-expected.txt: Added.
&gt; +        * fast/dom/MicroData/024.html: Added.
&gt; +        * fast/dom/MicroData/025-expected.txt: Added.
&gt; +        * fast/dom/MicroData/025.html: Added.

It&apos;s not great that all these tests are numbered. Can we give more descriptive names?

&gt; LayoutTests/fast/dom/MicroData/010.html:1
&gt; +&lt;html&gt;

Missing DOCTYPE.

&gt; LayoutTests/fast/dom/MicroData/010.html:11
&gt; +var element = createElem(&apos;div&apos;,{itemprop:&apos;http://example.com/foo&apos;});

I must have missed it in my previous review, but we shouldn&apos;t be abbreviating element as Elem. This is clearly stated in our style guide: http://www.webkit.org/coding/coding-style.html Please fix.

Also you need a space after, and :.

&gt; LayoutTests/fast/dom/MicroData/011.html:11
&gt; +var element = createElem(&apos;div&apos;,{itemprop:&apos;foo bar FOO&apos;});

It&apos;ll be helpful to show this setup in the result so that we can make sense of the results below.

&gt; LayoutTests/fast/dom/MicroData/011.html:21
&gt; +// itemProp should return case-sensitive strings

It&apos;ll be helpful if this was output in the result using debug().

&gt; LayoutTests/fast/dom/MicroData/011.html:25
&gt; +// itemProp should not contain an undefined token

Ditto.

&gt; LayoutTests/fast/dom/MicroData/011.html:28
&gt; +// itemProp.length should be 0 if element has not tokens

Ditto.

&gt; LayoutTests/fast/dom/MicroData/011.html:34
&gt; +

Why we do have a blank line here?

&gt; LayoutTests/fast/dom/MicroData/012.html:13
&gt; +// itemProp.add must reflect correctly

We probably want to test that itemprop content attribute is properly updated as well.

&gt; LayoutTests/fast/dom/MicroData/013.html:13
&gt; +element.itemProp = &apos;test&apos;;
&gt; +shouldBeTrue(&quot;element.itemProp.toString() == &apos;foo&apos;&quot;);

It&apos;ll be helpful do:
shouldBeTrue(&quot;element.itemProp = &apos;test&apos;; element.itemProp.toString() == &apos;foo&apos;&quot;);

&gt; LayoutTests/fast/dom/MicroData/013.html:17
&gt; +element.itemProp.length = 0;
&gt; +shouldBeTrue(&quot;element.itemProp.length == 1&quot;);

Ditto.

&gt; LayoutTests/fast/dom/MicroData/019.html:13
&gt; +    try {

You need to initialize exceptionCode before try or otherwise exceptionCode will never be updated when no exception was thrown.
That would mean that if we throw an exception for meta, then all subsequent tests will pass even if they never threw an exception. r- because of this bug.

&gt; LayoutTests/fast/dom/MicroData/020.html:8
&gt; +&lt;p&gt;This test ensures that writing to itemValue must throw an INVALID_ACCESS_ERR error if the element does not have an itemprop attribute.&lt;/p&gt;

This test description is incorrect.

&gt; LayoutTests/fast/dom/MicroData/022-expected.txt:4
&gt; +PASS testElement.itemValue is &apos;http://example.org/&apos;
&gt; +PASS testElement.itemValue is &apos;http://example.net/&apos;

It&apos;ll be helpful if the result told us what kind of element testElement is.

&gt; LayoutTests/fast/dom/MicroData/024-expected.txt:4
&gt; +PASS testElement.itemValue is &apos;http://example.org/&apos;
&gt; +PASS testElement.itemValue is &apos;http://example.net/&apos;

Ditto about the tag name of testElement not shown here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486088</commentid>
    <comment_count>8</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-18 09:23:06 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 111248 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111248&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSHTMLElementCustom.cpp:41
&gt; &gt; +#if ENABLE(MICRODATA)
&gt; &gt; +static JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, MicroDataItemValue* itemValue)
&gt; 
&gt; You need to update V8 binding as well.
Done! Updated V8 binding.

&gt; &gt; Source/WebCore/html/HTMLAnchorElement.h:130
&gt; &gt; +    virtual String itemValueText() const;
&gt; &gt; +    virtual void setItemValueText(const String&amp;, ExceptionCode&amp;);
&gt; 
&gt; Please use OVERRIDE macro.
Done!

&gt; &gt; Source/WebCore/html/HTMLElement.cpp:46
&gt; &gt; +#if ENABLE(MICRODATA)
&gt; &gt; +#include &quot;MicroDataItemValue.h&quot;
&gt; &gt; +#endif
&gt; 
&gt; This should be added below all other headers with a blank line to separate it from the rest.
Done!

&gt; &gt; Source/WebCore/html/HTMLElement.cpp:994
&gt; &gt; +void HTMLElement::itemPropSetToken(const String&amp; value)
&gt; 
&gt; We don&apos;t prefix function names like this. Please rename. To begin with, why does it need to be token? Can&apos;t it just be setItemProp?
Done! Modified the function name accordingly.

&gt; &gt; Source/WebCore/html/HTMLElement.idl:76
&gt; &gt; +                attribute [Conditional=MICRODATA, Custom] custom itemValue
&gt; 
&gt; Missing one space in indentation?
Corrected indentation.

&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:3037
&gt; &gt; +String HTMLMediaElement::itemValueText() const
&gt; &gt; +{
&gt; &gt; +    return getURLAttribute(srcAttr);
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +void HTMLMediaElement::setItemValueText(const String&amp; value, ExceptionCode&amp; ec)
&gt; &gt; +{
&gt; &gt; +    setAttribute(srcAttr, value, ec);
&gt; &gt; +}
&gt; 
&gt; This element isn&apos;t listed in http://dev.w3.org/html5/md/Overview.html#dom-itemvalue. Are you sure this is the correct behavior?
HTMLVideoElement and HTMLAudioElement are derived from HTMLMediaElement, so I kept this functions in HTMLMediaElement.

&gt; &gt; Source/WebCore/html/MicroDataItemValue.h:57
&gt; &gt; +    String m_str;
&gt; 
&gt; Please don&apos;t abbreviate string as str.
Done!

&gt; &gt; +        * fast/dom/MicroData/023.html: Added.
&gt; &gt; +        * fast/dom/MicroData/024-expected.txt: Added.
&gt; &gt; +        * fast/dom/MicroData/024.html: Added.
&gt; &gt; +        * fast/dom/MicroData/025-expected.txt: Added.
&gt; &gt; +        * fast/dom/MicroData/025.html: Added.
&gt; 
&gt; It&apos;s not great that all these tests are numbered. Can we give more descriptive names?
Done! Changed all file names accordingly.

&gt; &gt; LayoutTests/fast/dom/MicroData/010.html:1
&gt; &gt; +&lt;html&gt;
&gt; 
&gt; Missing DOCTYPE.
&gt; 
&gt; &gt; LayoutTests/fast/dom/MicroData/010.html:11
&gt; &gt; +var element = createElem(&apos;div&apos;,{itemprop:&apos;http://example.com/foo&apos;});
&gt; 
&gt; I must have missed it in my previous review, but we shouldn&apos;t be abbreviating element as Elem. This is clearly stated in our style guide: http://www.webkit.org/coding/coding-style.html Please fix.
&gt; 
&gt; Also you need a space after, and :.
Incorporated this comments.

&gt; &gt; LayoutTests/fast/dom/MicroData/011.html:11
&gt; &gt; +var element = createElem(&apos;div&apos;,{itemprop:&apos;foo bar FOO&apos;});
&gt; 
&gt; It&apos;ll be helpful to show this setup in the result so that we can make sense of the results below.
Done!

&gt; &gt; LayoutTests/fast/dom/MicroData/011.html:21
&gt; &gt; +// itemProp should return case-sensitive strings
&gt; 
&gt; It&apos;ll be helpful if this was output in the result using debug().
Done! Using debug() to print useful information.

&gt; &gt; LayoutTests/fast/dom/MicroData/013.html:13
&gt; &gt; +element.itemProp = &apos;test&apos;;
&gt; &gt; +shouldBeTrue(&quot;element.itemProp.toString() == &apos;foo&apos;&quot;);
&gt; 
&gt; It&apos;ll be helpful do:
&gt; shouldBeTrue(&quot;element.itemProp = &apos;test&apos;; element.itemProp.toString() == &apos;foo&apos;&quot;);
Done!

&gt; &gt; LayoutTests/fast/dom/MicroData/019.html:13
&gt; &gt; +    try {
&gt; 
&gt; You need to initialize exceptionCode before try or otherwise exceptionCode will never be updated when no exception was thrown.
&gt; That would mean that if we throw an exception for meta, then all subsequent tests will pass even if they never threw an exception. r- because of this bug.
Done!

&gt; 
&gt; &gt; LayoutTests/fast/dom/MicroData/022-expected.txt:4
&gt; &gt; +PASS testElement.itemValue is &apos;http://example.org/&apos;
&gt; &gt; +PASS testElement.itemValue is &apos;http://example.net/&apos;
&gt; 
&gt; It&apos;ll be helpful if the result told us what kind of element testElement is.
Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486127</commentid>
    <comment_count>9</comment_count>
      <attachid>111460</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-18 10:09:14 -0700</bug_when>
    <thetext>Created attachment 111460
Updated patch

Incorporating review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486129</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-18 10:12:21 -0700</bug_when>
    <thetext>Attachment 111460 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/fast...&quot; exit_code: 1

Source/WebCore/WebCore.vcproj/WebCore.vcproj:25583:  mismatched tag  [xml/syntax] [5]
Total errors found: 1 in 80 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>487690</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-20 10:20:41 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Attachment 111460 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
&gt; 
&gt; Source/WebCore/WebCore.vcproj/WebCore.vcproj:25583:  mismatched tag  [xml/syntax] [5]
&gt; Total errors found: 1 in 80 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Could you fix this? Your change to vcproj is probably incorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487902</commentid>
    <comment_count>12</comment_count>
      <attachid>111854</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-20 15:02:37 -0700</bug_when>
    <thetext>Created attachment 111854
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488595</commentid>
    <comment_count>13</comment_count>
      <attachid>111854</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-10-21 13:17:12 -0700</bug_when>
    <thetext>Comment on attachment 111854
Updated patch

V8 bindings look fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488688</commentid>
    <comment_count>14</comment_count>
      <attachid>111854</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-21 14:59:32 -0700</bug_when>
    <thetext>Comment on attachment 111854
Updated patch

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

r=me. I&apos;m very impressed by your through testing and how clean your patch is! Keep up your great work.

I can fix those myself and land it for you if you&apos;d like.

&gt; Source/WebCore/html/HTMLElement.idl:76
&gt; +                attribute [Conditional=MICRODATA, Custom] custom itemValue

Please fix indentation here (missing one space).

&gt; LayoutTests/fast/dom/MicroData/002-expected.txt:5
&gt; +document.getItems() without aurgument
&gt; +TEST SUCCEEDED

Why the change? PASS looked better.

&gt; LayoutTests/fast/dom/MicroData/itemprop-for-an-element-must-be-correct-expected.txt:15
&gt; +PASS element.itemProp[2] == &apos;FOO&apos; is true

Maybe try something like fOo?

&gt; LayoutTests/fast/dom/MicroData/itemprop-for-an-element-must-be-correct.html:28
&gt; +debug(&quot;&lt;br&gt;itemProp.length should be 0 if element has not tokens.&quot;);

Nit: has no tokens or doesn&apos;t have any tokens?

&gt; LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-src-attr.html:1
&gt; +&lt;html&gt;

Nit: can we add &lt;!DOCTYPE html&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488705</commentid>
    <comment_count>15</comment_count>
      <attachid>111854</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-21 15:08:28 -0700</bug_when>
    <thetext>Comment on attachment 111854
Updated patch

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

&gt; LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001.html:19
&gt; +    }catch (e) {

Please put a space before catch. Also, please spell out exception instead of using one-letter variable e.

&gt; LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002.html:19
&gt; +    }catch (e) {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488897</commentid>
    <comment_count>16</comment_count>
      <attachid>111854</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-10-22 00:07:11 -0700</bug_when>
    <thetext>Comment on attachment 111854
Updated patch

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

Drive by... a couple nits.

&gt; Source/WebCore/html/HTMLElement.cpp:205
&gt; +    }  else if (attr-&gt;name() == itemrefAttr) {

Extra space

&gt; Source/WebCore/html/MicroDataItemValue.cpp:38
&gt; +namespace WebCore {

Newline here for consistency with the other files you added.

&gt; Source/WebCore/html/MicroDataItemValue.h:50
&gt; +    static PassRefPtr&lt;MicroDataItemValue&gt; createFromString(String);

Use a const reference.

&gt; Source/WebCore/html/MicroDataItemValue.h:58
&gt; +    MicroDataItemValue(String);

Use a const reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488926</commentid>
    <comment_count>17</comment_count>
      <attachid>111854</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-22 05:37:48 -0700</bug_when>
    <thetext>Comment on attachment 111854
Updated patch

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

&gt;&gt; Source/WebCore/html/MicroDataItemValue.h:50
&gt;&gt; +    static PassRefPtr&lt;MicroDataItemValue&gt; createFromString(String);
&gt; 
&gt; Use a const reference.

That&apos;s a good catch!

&gt;&gt; Source/WebCore/html/MicroDataItemValue.h:58

&gt; 
&gt; Use a const reference.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489275</commentid>
    <comment_count>18</comment_count>
      <attachid>112173</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-24 04:25:17 -0700</bug_when>
    <thetext>Created attachment 112173
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489276</commentid>
    <comment_count>19</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-24 04:28:33 -0700</bug_when>
    <thetext>Thank you all for your review comments.
I have incorporated all review comments and uploaded the patch.

Ryosuke, please help me to land this patch. Also please help me to add newly added files i.e, MicroDataItemValue.cpp/h to xcode project.
Thanks again :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489670</commentid>
    <comment_count>20</comment_count>
      <attachid>112173</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-24 14:54:42 -0700</bug_when>
    <thetext>Comment on attachment 112173
Updated patch

Will land the patch after making xcodeproj change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489797</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-24 17:12:33 -0700</bug_when>
    <thetext>Committed r98300: &lt;http://trac.webkit.org/changeset/98300&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110513</attachid>
            <date>2011-10-11 07:39:47 -0700</date>
            <delta_ts>2011-10-17 04:58:00 -0700</delta_ts>
            <desc>Initial patch</desc>
            <filename>patch_69839.diff</filename>
            <type>text/plain</type>
            <size>32834</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTAzIEBACisyMDExLTEwLTExICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgaXRlbXByb3AsIGl0ZW1yZWYs
IGl0ZW12YWx1ZSBhdHRyaWJ1dGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgIChXZWJDb3JlOjpKU0hU
TUxFbGVtZW50OjppdGVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRWxlbWVudDo6
c2V0SXRlbVZhbHVlKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAg
ICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFyZWFFbGVtZW50OjppdGVtVmFsdWVU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4
dCk6CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aXRlbVByb3ApOiBSZXR1cm5zIGVsZW1lbnQncyBp
dGVtcHJvcCBjb250ZW50IGF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50
OjppdGVtUHJvcFNldFRva2VuKTogU2V0cyBpdGVtcHJvcCB2YWx1ZSBvbiBjaGFuZ2luZyBlbGVt
ZXQncworICAgICAgICBpdGVtcHJvcCBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
RWxlbWVudDo6aXRlbVJlZik6IFJldHVybnMgZWxlbWVudCdzIGl0ZW1yZWYgY29udGVudCBhdHRy
aWJ1dGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aXRlbVJlZlNldFRva2VuKTog
U2V0cyBpdGVtcmVmIHZhbHVlIG9uIGNoYW5naW5nIGVsZW1ldCdzCisgICAgICAgIGl0ZW1yZWYg
YXR0cmlidXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZSk6
IFNldHMgZWxlbWVudCdzIGl0ZW12YWx1ZS4gSWYgdGhlIGVsZW1lbnQgaGFzIG5vCisgICAgICAg
IGl0ZW1wcm9wIGF0dHJpYnV0ZSBvciBpZiBlbGVtZW50IGhhcyBhbiBpdGVtc2NvcGUgYXR0cmli
dXRlLCBpdCB0aHJvd3MgSU5WQUxJRF9BQ0NFU1NfRVJSCisgICAgICAgIGV4Y2VwdGlvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjppdGVtVmFsdWUpOiBSZXR1cm5zIHRoZSBlbGVt
ZW50cyBpdGVtdmFsdWUuIElmIHRoZSBlbGVtZW50IGhhcyBubworICAgICAgICBpdGVtcHJvcCBh
dHRyaWJ1dGUgaXQgcmV0dXJucyBudWxsLgorICAgICAgICBJZiB0aGUgZWxlbWVudCBoYXMgYW4g
aXRlbXNjb3BlIGF0dHJpYnV0ZSwgaXQgcmV0dXJucyB0aGUgZWxlbWVudCBpdHNlbGYuCisKKyAg
ICAgICAgSWYgdGhlIGVsZW1lbnQgaXMgYSBtZXRhIGVsZW1lbnQ6IEl0IGFjdHMgYXMgaXQgd291
bGQgaWYgaXQgd2FzIHJlZmxlY3RpbmcgdGhlIGVsZW1lbnQncworICAgICAgICBjb250ZW50IGNv
bnRlbnQgYXR0cmlidXRlLgorICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBhbiBhdWRpbywgZW1i
ZWQsIGlmcmFtZSwgaW1nLCBzb3VyY2UsIHRyYWNrLCBvciB2aWRlbyBlbGVtZW50OiBJdCBhY3Rz
CisgICAgICAgIGFzIGl0IHdvdWxkIGlmIGl0IHdhcyByZWZsZWN0aW5nIHRoZSBlbGVtZW50J3Mg
c3JjIGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBhbiBhLCBh
cmVhLCBvciBsaW5rIGVsZW1lbnQ6IEl0IGFjdCBhcyBpdCB3b3VsZCBpZiBpdCB3YXMgcmVmbGVj
dGluZyB0aGUKKyAgICAgICAgaHJlZiBjb250ZW50IGF0dHJpYnV0ZS4KKyAgICAgICAgSWYgdGhl
IGVsZW1lbnQgaXMgYW4gb2JqZWN0IGVsZW1lbnQ6IEl0IGFjdHMgYXMgIGl0IHdvdWxkIGlmIGl0
IHdhcyByZWZsZWN0aW5nIHRoZSBlbGVtZW50J3MKKyAgICAgICAgZGF0YSBjb250ZW50IGF0dHJp
YnV0ZS4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAg
ICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVtYmVkRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RW1iZWRFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxFbWJl
ZEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAg
KiBodG1sL0hUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4
dCk6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpp
dGVtVmFsdWVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6c2V0SXRl
bVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWV0YUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1ldGFFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRh
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAq
IGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTb3VyY2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTb3VyY2VFbGVtZW50OjppdGVtVmFsdWVU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTb3VyY2VFbGVtZW50OjpzZXRJdGVtVmFsdWVU
ZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxTb3VyY2VFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MVHJhY2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1l
bnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6
c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1pY3JvRGF0YUl0ZW1WYWx1ZTo6TWljcm9EYXRhSXRlbVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1WYWx1ZTo6Y3JlYXRlRnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpNaWNyb0RhdGFJdGVtVmFsdWU6OmNyZWF0ZUZyb21Ob2RlKToKKyAgICAgICAg
KiBodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1p
Y3JvRGF0YUl0ZW1WYWx1ZTo6aXNOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0
ZW1WYWx1ZTo6Z2V0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpNaWNyb0RhdGFJdGVtVmFsdWU6
OmdldFN0cmluZyk6CisKIDIwMTEtMTAtMDUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaW1wbGVtZW50IENvbXBpbGVy
U291cmNlTWFwcGluZ1Byb3ZpZGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTc4OCw2ICs3ODgsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9MYWJlbHNO
b2RlTGlzdC5jcHAKICAgICBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCiAgICAgaHRtbC9NZWRp
YURvY3VtZW50LmNwcAorICAgIGh0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmNwcAogICAgIGh0bWwv
TW9udGhJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCiAgICAgaHRt
bC9QYXNzd29yZElucHV0VHlwZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQkocmV2aXNpb24gOTcxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CSh3b3JraW5nIGNvcHkpCkBAIC0xODM2LDYgKzE4MzYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFEb2N1bWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRXJy
b3IuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJhY2suY3BwIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC01NTU2LDYgKzU1NTYsOCBAQAogICAgICAg
ICAgICAgJ2h0bWwvTWVkaWFEb2N1bWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFE
b2N1bWVudC5oJywKICAgICAgICAgICAgICdodG1sL01lZGlhRXJyb3IuaCcsCisgICAgICAgICAg
ICAnaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwJywKKyAgICAgICAgICAgICdodG1sL01pY3Jv
RGF0YUl0ZW1WYWx1ZS5oJywKICAgICAgICAgICAgICdodG1sL011dGFibGVUZXh0VHJhY2suY3Bw
JywKICAgICAgICAgICAgICdodG1sL011dGFibGVUZXh0VHJhY2suaCcsCiAgICAgICAgICAgICAn
aHRtbC9Nb250aElucHV0VHlwZS5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDk3
MTUxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTc1
Myw2ICs3NTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL0xhYmVsc05vZGVMaXN0LmNwcCBc
CiAgICAgaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcCBcCiAgICAgaHRtbC9NZWRpYURvY3VtZW50
LmNwcCBcCisgICAgaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwIFwKICAgICBodG1sL01vbnRo
SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIFwKICAgICBodG1s
L1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBcCkBAIC0xNzc3LDYgKzE3NzgsNyBAQCBIRUFERVJTICs9
IFwKICAgICBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuaCBcCiAgICAgaHRtbC9Mb2FkYWJsZVRleHRU
cmFjay5oIFwKICAgICBodG1sL01lZGlhRG9jdW1lbnQuaCBcCisgICAgaHRtbC9NaWNyb0RhdGFJ
dGVtVmFsdWUuaCBcCiAgICAgaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmggXAogICAgIGh0bWwvUGx1
Z2luRG9jdW1lbnQuaCBcCiAgICAgaHRtbC9TdGVwUmFuZ2UuaCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gOTcxNTEpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtNTgyMzgsNiArNTgyMzgsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxNaWNyb0RhdGFJdGVtVmFsdWUuY3BwIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXE1pY3Jv
RGF0YUl0ZW1WYWx1ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxmaWxlYXBpXE1ldGFkYXRhLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5j
cHAJKHJldmlzaW9uIDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
RWxlbWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwyNSBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAorI2lmIEVO
QUJMRShNSUNST0RBVEEpCitzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTWljcm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFs
dWUpCit7CisgICAgaWYgKCFpdGVtVmFsdWUpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKyAg
ICBpZiAoaXRlbVZhbHVlLT5pc05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBpdGVtVmFsdWUtPmdldE5vZGUoKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGV4
ZWMsIGl0ZW1WYWx1ZS0+Z2V0U3RyaW5nKCkpOworfQorI2VuZGlmCisKIFNjb3BlQ2hhaW5Ob2Rl
KiBKU0hUTUxFbGVtZW50OjpwdXNoRXZlbnRIYW5kbGVyU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBT
Y29wZUNoYWluTm9kZSogc2NvcGUpIGNvbnN0CiB7CiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQg
PSBpbXBsKCk7CkBAIC00OCw0ICs2MywyMCBAQCBTY29wZUNoYWluTm9kZSogSlNIVE1MRWxlbWVu
dDo6cHVzaEV2ZW50CiAgICAgcmV0dXJuIHNjb3BlLT5wdXNoKGFzT2JqZWN0KHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0KCksIGVsZW1lbnQpKSk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQor
SlNWYWx1ZSBKU0hUTUxFbGVtZW50OjppdGVtVmFsdWUoRXhlY1N0YXRlKiBleGVjKSBjb25zdAor
eworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaW1wbCgpOworICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihlbGVtZW50LT5pdGVtVmFsdWUoKSkpOwor
fQorCit2b2lkIEpTSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdmFsdWUpCit7CisgICAgSFRNTEVsZW1lbnQqIGltcCA9IGltcGwoKTsKKyAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKKyAgICBpbXAtPnNldEl0ZW1WYWx1ZSh2YWx1ZVRvU3RyaW5nV2l0
aE51bGxDaGVjayhleGVjLCB2YWx1ZSksIGVjKTsKKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
ZWMpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NzE1MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01ODYsNCArNTg2LDE2IEBAIHZvaWQgaGFuZGxlTGlua0NsaWNrKEV2ZW50KiBldmVudCwgRG9j
dW0KICAgICBmcmFtZS0+bG9hZGVyKCktPnVybFNlbGVjdGVkKGRvY3VtZW50LT5jb21wbGV0ZVVS
TCh1cmwpLCB0YXJnZXQsIGV2ZW50LCBmYWxzZSwgZmFsc2UsIGhpZGVSZWZlcnJlciA/IE5vUmVm
ZXJyZXIgOiBTZW5kUmVmZXJyZXIpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmlu
ZyBIVE1MQW5jaG9yRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGdldFVSTEF0dHJpYnV0ZShocmVmQXR0cik7Cit9CisKK3ZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6
OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgc2V0QXR0cmlidXRlKGhyZWZBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgJKHJldmlzaW9u
IDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjUsNiArMTI1LDExIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEV2ZW50
VHlwZSBldmVudFR5cGUoRXZlbnQqKTsKICAgICBib29sIHRyZWF0TGlua0FzTGl2ZUZvckV2ZW50
VHlwZShFdmVudFR5cGUpIGNvbnN0OwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0
dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEl0
ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlmCisKICAg
ICBSZWZQdHI8RWxlbWVudD4gbV9yb290RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0aW9uT25Nb3Vz
ZURvd247CiAgICAgYm9vbCBtX3dhc1NoaWZ0S2V5RG93bk9uTW91c2VEb3duIDogMTsKICAgICB1
aW50MzJfdCBtX2xpbmtSZWxhdGlvbnMgOiAzMTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXJlYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNCArMjQ2LDE2IEBA
IFN0cmluZyBIVE1MQXJlYUVsZW1lbnQ6OnRhcmdldCgpIGNvbnN0CiAgICAgcmV0dXJuIGdldEF0
dHJpYnV0ZSh0YXJnZXRBdHRyKTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJpbmcg
SFRNTEFyZWFFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0
VVJMQXR0cmlidXRlKGhyZWZBdHRyKTsKK30KKwordm9pZCBIVE1MQXJlYUVsZW1lbnQ6OnNldEl0
ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgc2V0QXR0cmlidXRlKGhyZWZBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAkocmV2aXNpb24gOTcxNTEpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OCw3ICs1OCwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0ZvY3VzYWJsZSgp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1c0FwcGVhcmFuY2UoYm9vbCAvKnJl
c3RvcmVQcmV2aW91c1NlbGVjdGlvbiovKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9v
bCk7Ci0gICAgCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0
ZW1WYWx1ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChj
b25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYKKwogICAgIGVudW0gU2hhcGUg
eyBEZWZhdWx0LCBQb2x5LCBSZWN0LCBDaXJjbGUsIFVua25vd24gfTsKICAgICBQYXRoIGdldFJl
Z2lvbihjb25zdCBMYXlvdXRTaXplJikgY29uc3Q7CiAgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGVk
UmVnaW9uKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5p
bgkocmV2aXNpb24gOTcxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTIxLDYgKzEyMSw4IEBAIGlkCiBpbmNyZW1lbnRh
bAogaW5kZXRlcm1pbmF0ZQogaXNtYXAKK2l0ZW1wcm9wCitpdGVtcmVmCiBrZXl0eXBlCiBraW5k
CiBsYWJlbApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3
MTUxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQxLDYgKzQxLDkgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJI
VE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
aCIKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1ZS5o
IgorI2VuZGlmCiAjaW5jbHVkZSAiUmVuZGVyV29yZEJyZWFrLmgiCiAjaW5jbHVkZSAiU2NyaXB0
RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0xOTUsNiArMTk4LDEy
IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEEKICAgICAgICAgICAg
IGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFs
dWVOb25lKTsKICAgICAgICAgfSBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZh
bHNlIikpCiAgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtp
dFVzZXJEcmFnLCBDU1NWYWx1ZU5vbmUpOworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gaXRlbXByb3BBdHRyKSB7CisgICAgICAgIGl0ZW1Qcm9w
U2V0VG9rZW4oYXR0ci0+dmFsdWUoKSk7CisgICAgfSAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09
IGl0ZW1yZWZBdHRyKSB7CisgICAgICAgIGl0ZW1SZWZTZXRUb2tlbihhdHRyLT52YWx1ZSgpKTsK
KyNlbmRpZgogICAgIH0KIC8vIHN0YW5kYXJkIGV2ZW50cwogICAgIGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBvbmNsaWNrQXR0cikgewpAQCAtOTc2LDYgKzk4NSw3MSBAQCB2b2lkIEhUTUxFbGVt
ZW50OjphZGp1c3REaXJlY3Rpb25hbGl0eUlmCiAgICAgfQogfQogCisjaWYgRU5BQkxFKE1JQ1JP
REFUQSkKK1Bhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVtZW50OjppdGVt
UHJvcCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2l0ZW1Qcm9wKQorICAgICAgICBtX2l0ZW1Qcm9w
ID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgcmV0dXJuIG1faXRlbVBy
b3A7Cit9CisKK3ZvaWQgSFRNTEVsZW1lbnQ6Oml0ZW1Qcm9wU2V0VG9rZW4oY29uc3QgU3RyaW5n
JiB2YWx1ZSkKK3sKKyAgICBpZiAoIW1faXRlbVByb3ApCisgICAgICAgIG1faXRlbVByb3AgPSBE
T01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKCk7CisKKyAgICBtX2l0ZW1Qcm9wLT5zZXRWYWx1
ZSh2YWx1ZSk7Cit9CisKK1Bhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVt
ZW50OjppdGVtUmVmKCkgY29uc3QKK3sKKyAgICBpZiAoIW1faXRlbVJlZikKKyAgICAgICAgbV9p
dGVtUmVmID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgcmV0dXJuIG1f
aXRlbVJlZjsKK30KKwordm9pZCBIVE1MRWxlbWVudDo6aXRlbVJlZlNldFRva2VuKGNvbnN0IFN0
cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX2l0ZW1SZWYpCisgICAgICAgIG1faXRlbVJlZiA9
IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgIG1faXRlbVJlZi0+c2V0VmFs
dWUodmFsdWUpOworfQorCit2b2lkIEhUTUxFbGVtZW50OjpzZXRJdGVtVmFsdWUoY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFoYXNBdHRyaWJ1dGUo
aXRlbXByb3BBdHRyKSB8fCBoYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpIHsKKyAgICAgICAg
ZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
ZXRJdGVtVmFsdWVUZXh0KHZhbHVlLCBlYyk7Cit9CisKK1Bhc3NSZWZQdHI8TWljcm9EYXRhSXRl
bVZhbHVlPiBIVE1MRWxlbWVudDo6aXRlbVZhbHVlKCkgY29uc3QKK3sKKyAgICBpZiAoIWhhc0F0
dHJpYnV0ZShpdGVtcHJvcEF0dHIpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChoYXNB
dHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCisgICAgICAgIHJldHVybiBNaWNyb0RhdGFJdGVtVmFs
dWU6OmNyZWF0ZUZyb21Ob2RlKGNvbnN0X2Nhc3Q8SFRNTEVsZW1lbnQqIGNvbnN0Pih0aGlzKSk7
CisKKyAgICByZXR1cm4gTWljcm9EYXRhSXRlbVZhbHVlOjpjcmVhdGVGcm9tU3RyaW5nKGl0ZW1W
YWx1ZVRleHQoKSk7Cit9CisKK1N0cmluZyBIVE1MRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRleHRDb250ZW50KHRydWUpOworfQorCit2b2lkIEhUTUxFbGVt
ZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIHNldFRleHRDb250ZW50KHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuaAkocmV2aXNpb24gOTcxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpZm5kZWYgSFRN
TEVsZW1lbnRfaAogI2RlZmluZSBIVE1MRWxlbWVudF9oCiAKKyNpbmNsdWRlICJET01TZXR0YWJs
ZVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzAsNyArMzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEb2N1
bWVudEZyYWdtZW50OwogY2xhc3MgSFRNTENvbGxlY3Rpb247CiBjbGFzcyBIVE1MRm9ybUVsZW1l
bnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgIAorY2xhc3MgTWljcm9EYXRhSXRlbVZhbHVlOwor
CiBjbGFzcyBIVE1MRWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CkBAIC04MSw2ICs4MywxNCBAQCBwdWJsaWM6CiAKICAg
ICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFsaXR5SWZoYXNEaXJBdXRvQXR0cmlidXRlKGJvb2wm
IGlzQXV0bykgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIFBhc3NSZWZQdHI8
RE9NU2V0dGFibGVUb2tlbkxpc3Q+IGl0ZW1SZWYoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPERP
TVNldHRhYmxlVG9rZW5MaXN0PiBpdGVtUHJvcCgpIGNvbnN0OworCisgICAgdm9pZCBzZXRJdGVt
VmFsdWUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8TWlj
cm9EYXRhSXRlbVZhbHVlPiBpdGVtVmFsdWUoKSBjb25zdDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6
CiAgICAgSFRNTEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
KTsKIApAQCAtMTA3LDYgKzExNywxNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0RGlyZWN0
aW9uYWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRBdHRyaWJ1dGVDaGFuZ2VkKEVsZW1lbnQqIGNoaWxk
KTsKICAgICB2b2lkIGFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRlckNoaWxkcmVuQ2hh
bmdlZChOb2RlKiBiZWZvcmVDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpOwogICAgIFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uYWxpdHkoTm9kZSoqIHN0cm9uZ0RpcmVjdGlvbmFsaXR5VGV4dE5v
ZGU9IDApIGNvbnN0OworCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2b2lkIGl0ZW1Qcm9w
U2V0VG9rZW4oY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBpdGVtUmVmU2V0VG9rZW4oY29uc3Qg
U3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYpOworCisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1faXRl
bVByb3A7CisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1faXRlbVJl
ZjsKKyNlbmRpZgogfTsKIAogaW5saW5lIEhUTUxFbGVtZW50KiB0b0hUTUxFbGVtZW50KE5vZGUq
IG5vZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2aXNpb24gOTcx
NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtNjYsNiArNjYsMTIgQEAgbW9kdWxlIGh0bWwgewogCiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBib29sZWFuIHNwZWxsY2hlY2s7CiAKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1SZWY7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0
YWJsZVRva2VuTGlzdCBpdGVtUHJvcDsKKworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9TUlDUk9EQVRBLCBDdXN0b21dIGN1c3RvbSBpdGVtVmFsdWUKKyAgICAgICAgICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAjaWYgZGVmaW5lZChMQU5H
VUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyB0aXRsZURpc3BsYXlTdHJpbmc7CiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkocmV2aXNpb24gOTcxNTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNzcsNCArMjc3LDE2IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6YWRkU3VicmVz
b3VyY2VBdHQKICAgICBhZGRTdWJyZXNvdXJjZVVSTCh1cmxzLCBkb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChnZXRBdHRyaWJ1dGUoc3JjQXR0cikpKTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEp
CitTdHJpbmcgSFRNTEVtYmVkRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGdldFVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKK30KKwordm9pZCBIVE1MRW1iZWRFbGVt
ZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIHNldEF0dHJpYnV0ZShzcmNBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlm
CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCShyZXZpc2lv
biA5NzE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Miw2ICs1MiwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBh
ZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKIAog
ICAgIHZvaWQgcGFyYW1ldGVyc0ZvclBsdWdpbihWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywg
VmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisg
ICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9p
ZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRp
ZgogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5j
cHAJKHJldmlzaW9uIDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw0ICsxNjMsMTYgQEAgYm9vbCBIVE1MSUZy
YW1lRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQQogICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0g
c3JjQXR0cjsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJpbmcgSFRNTElGcmFtZUVs
ZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1
dGUoc3JjQXR0cik7Cit9CisKK3ZvaWQgSFRNTElGcmFtZUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRl
eHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0
cmlidXRlKHNyY0F0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAkocmV2aXNpb24gOTcxNTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDYgKzQ2LDExIEBAIHByaXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmli
dXRlKEF0dHJpYnV0ZSopIGNvbnN0OwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0
dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEl0
ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlmCisKICAg
ICBBdG9taWNTdHJpbmcgbV9uYW1lOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NzE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMyw0ICs0MDMsMTYg
QEAgYm9vbCBIVE1MSW1hZ2VFbGVtZW50Ojppc1NlcnZlck1hcCgpIGNvbgogICAgIHJldHVybiBk
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMo
dXNlbWFwKSkuaXNFbXB0eSgpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBI
VE1MSW1hZ2VFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0
VVJMQXR0cmlidXRlKHNyY0F0dHIpOworfQorCit2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldEl0
ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgc2V0QXR0cmlidXRlKHNyY0F0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgJKHJldmlzaW9uIDk3MTUxKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMiw2ICsxMDIsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJ
bnRvVHJlZShib29sIGRlZXApOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbVRyZWUoYm9v
bCBkZWVwKTsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRl
bVZhbHVlVGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNv
bnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgorCiAgICAgSFRNTEltYWdlTG9h
ZGVyIG1faW1hZ2VMb2FkZXI7CiAgICAgSFRNTEZvcm1FbGVtZW50KiBtX2Zvcm07CiAgICAgQXRv
bWljU3RyaW5nIG1fbmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTMsNCArNDUzLDE2IEBAIHZvaWQgSFRNTExp
bmtFbGVtZW50OjpzZXRTaXplcyhjb25zdCBTdHIKICAgICBtX3NpemVzLT5zZXRWYWx1ZSh2YWx1
ZSk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxMaW5rRWxlbWVudDo6
aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShocmVm
QXR0cik7Cit9CisKK3ZvaWQgSFRNTExpbmtFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0
IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZSho
cmVmQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgJKHJldmlzaW9uIDk3MTUx
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtOTQsNiArOTQsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFBlbmRpbmdTaGVldChQ
ZW5kaW5nU2hlZXRUeXBlKTsKICAgICB2b2lkIHJlbW92ZVBlbmRpbmdTaGVldCgpOwogCisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29u
c3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgSFRNTExpbmtFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5
NzE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwMjIsNiArMzAyMiwxOCBAQCBBdWRpb1NvdXJjZVByb3ZpZGVyKiBIVE1M
TWVkaWFFbGVtZW50OjphCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJp
bmcgSFRNTE1lZGlhRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGdldFVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKK30KKwordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIHNldEF0dHJpYnV0ZShzcmNBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0K
IAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2
aXNpb24gOTcxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzgwLDYgKzM4MCwxMSBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCB2b2lkKiBwcmVEaXNwYXRjaEV2ZW50SGFuZGxlcihFdmVudCopOwogCisjaWYgRU5BQkxFKE1J
Q1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29k
ZSYpOworI2VuZGlmCisKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2xvYWRUaW1lcjsK
ICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2FzeW5jRXZlbnRUaW1lcjsKICAgICBUaW1l
cjxIVE1MTWVkaWFFbGVtZW50PiBtX3Byb2dyZXNzRXZlbnRUaW1lcjsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3MTUxKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NCw0
ICs5NCwxNiBAQCBTdHJpbmcgSFRNTE1ldGFFbGVtZW50OjpuYW1lKCkgY29uc3QKICAgICByZXR1
cm4gZ2V0QXR0cmlidXRlKG5hbWVBdHRyKTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitT
dHJpbmcgSFRNTE1ldGFFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZ2V0QXR0cmlidXRlKGNvbnRlbnRBdHRyKTsKK30KKwordm9pZCBIVE1MTWV0YUVsZW1lbnQ6
OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgc2V0QXR0cmlidXRlKGNvbnRlbnRBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlm
CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAkocmV2aXNpb24g
OTcxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0MiwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnNl
cnRlZEludG9Eb2N1bWVudCgpOwogCiAgICAgdm9pZCBwcm9jZXNzKCk7CisKKyNpZiBFTkFCTEUo
TUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25D
b2RlJik7CisjZW5kaWYKKwogfTsKIAogfSAvL25hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDk3MTUxKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1
NCw0ICs1NTQsMTYgQEAgSFRNTEZvcm1FbGVtZW50KiBIVE1MT2JqZWN0RWxlbWVudDo6dmlydAog
ICAgIHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsKIH0KIAorI2lmIEVOQUJM
RShNSUNST0RBVEEpCitTdHJpbmcgSFRNTE9iamVjdEVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBj
b25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoZGF0YUF0dHIpOworfQorCit2b2lk
IEhUTUxPYmplY3RFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShkYXRhQXR0ciwgdmFsdWUs
IGVjKTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5oCShyZXZpc2lvbiA5NzE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiwxMSBAQCBwcml2YXRl
OgogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sTmFtZSgpIGNv
bnN0OwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFs
dWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3Qg
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlmCisKICAgICBBdG9taWNTdHJpbmcgbV9p
ZDsKICAgICBTdHJpbmcgbV9jbGFzc0lkOwogICAgIGJvb2wgbV9kb2NOYW1lZEl0ZW0gOiAxOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEyMSw2ICsxMjEsMTggQEAgYm9vbCBIVE1MU291cmNlRWxlbWVudDo6
aXNVUkxBdHRyaWJ1dGUoQQogICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBzcmNBdHRy
OwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MU291cmNlRWxlbWVudDo6
aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShzcmNB
dHRyKTsKK30KKwordm9pZCBIVE1MU291cmNlRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25z
dCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUo
c3JjQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CiAKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAkocmV2aXNpb24gOTcxNTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTU1LDYgKzU1LDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGVycm9yRXZlbnRUaW1lckZpcmVk
KFRpbWVyPEhUTUxTb3VyY2VFbGVtZW50PiopOwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAg
ICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lk
IHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlm
CisKICAgICBUaW1lcjxIVE1MU291cmNlRWxlbWVudD4gbV9lcnJvckV2ZW50VGltZXI7CiB9Owog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAJKHJldmlzaW9u
IDk3MTUxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTM3LDYgKzEzNywxNyBAQCB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6Omxv
YWQoU2NyaXB0RXhlY3V0CiAgICAgICAgIG1fdHJhY2stPmxvYWQoZ2V0Tm9uRW1wdHlVUkxBdHRy
aWJ1dGUoc3JjQXR0ciksIGNvbnRleHQpOwogfQogCisKK1N0cmluZyBIVE1MVHJhY2tFbGVtZW50
OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNy
Y0F0dHIpOworfQorCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29u
c3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRl
KHNyY0F0dHIsIHZhbHVlLCBlYyk7Cit9CisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAkocmV2aXNpb24gOTcxNTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgs
OSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKCk7CiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0
cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OworCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVl
VGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAKICAgICBSZWZQdHI8TG9hZGFibGVUZXh0VHJh
Y2s+IG1fdHJhY2s7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVt
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRl
bVZhbHVlLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRh
SXRlbVZhbHVlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTU9UT1JPTEEg
TU9CSUxJVFksIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMKKyAqIGBgQVMgSVMnJyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIE1PVE9ST0xBIE1PQklMSVRZLCBJTkMuIE9SIElUUworICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyAqIE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiTWljcm9EYXRhSXRlbVZhbHVl
LmgiCisKKyNpbmNsdWRlICJOb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK01pY3JvRGF0
YUl0ZW1WYWx1ZTo6TWljcm9EYXRhSXRlbVZhbHVlKFN0cmluZyBzdHIpCisgICAgOiBtX3R5cGUo
U1RSSU5HKQorICAgICwgbV9zdHIoc3RyKQoreworfQorCitNaWNyb0RhdGFJdGVtVmFsdWU6Ok1p
Y3JvRGF0YUl0ZW1WYWx1ZShOb2RlKiBub2RlKQorICAgIDogbV90eXBlKE5PREUpCisgICAgLCBt
X25vZGUobm9kZSkKK3sKK30KKworUGFzc1JlZlB0cjxNaWNyb0RhdGFJdGVtVmFsdWU+IE1pY3Jv
RGF0YUl0ZW1WYWx1ZTo6Y3JlYXRlRnJvbVN0cmluZyhTdHJpbmcgc3RyKQoreworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgTWljcm9EYXRhSXRlbVZhbHVlKHN0cikpOworfQorCitQYXNzUmVmUHRy
PE1pY3JvRGF0YUl0ZW1WYWx1ZT4gTWljcm9EYXRhSXRlbVZhbHVlOjpjcmVhdGVGcm9tTm9kZShO
b2RlKiBub2RlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWljcm9EYXRhSXRlbVZhbHVl
KG5vZGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVl
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw
MTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIE1PQklMSVRZLCBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTCisgKiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBNT1RPUk9MQSBNT0JJTElUWSwgSU5DLiBPUiBJVFMKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisgKiBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1pY3JvRGF0YUl0ZW1WYWx1ZV9o
CisjZGVmaW5lIE1pY3JvRGF0YUl0ZW1WYWx1ZV9oCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQor
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE5vZGU7CisKK2NsYXNzIE1pY3JvRGF0YUl0ZW1WYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVk
PE1pY3JvRGF0YUl0ZW1WYWx1ZT4geworcHJpdmF0ZToKKyAgICBlbnVtIFR5cGUge1NUUklORywg
Tk9ERX07CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNaWNyb0RhdGFJdGVtVmFs
dWU+IGNyZWF0ZUZyb21TdHJpbmcoU3RyaW5nKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNaWNy
b0RhdGFJdGVtVmFsdWU+IGNyZWF0ZUZyb21Ob2RlKE5vZGUqKTsKKworICAgIGJvb2wgaXNOb2Rl
KCkgeyByZXR1cm4gbV90eXBlID09IE5PREU7IH0KKyAgICBOb2RlKiBnZXROb2RlKCkgeyByZXR1
cm4gbV9ub2RlOyB9CisgICAgU3RyaW5nIGdldFN0cmluZygpIHsgcmV0dXJuIG1fc3RyOyB9CisK
K3ByaXZhdGU6CisgICAgTWljcm9EYXRhSXRlbVZhbHVlKFN0cmluZyk7CisgICAgTWljcm9EYXRh
SXRlbVZhbHVlKE5vZGUqKTsKKworICAgIFR5cGUgbV90eXBlOworICAgIFN0cmluZyBtX3N0cjsK
KyAgICBOb2RlKiBtX25vZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQorCisjZW5kaWYgLy8gTWljcm9EYXRhSXRlbVZhbHVlX2gK
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111245</attachid>
            <date>2011-10-17 04:58:00 -0700</date>
            <delta_ts>2011-10-17 05:26:29 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_69839_updated.diff</filename>
            <type>text/plain</type>
            <size>64217</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTExIEBACisyMDExLTEwLTE3ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEFkZCBpdGVtcHJv
cCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvMDEwLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMTEuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAxMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9NaWNyb0RhdGEvMDEzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8w
MTQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAxNS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDE2Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL01pY3JvRGF0YS8wMTcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9E
YXRhLzAxOC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDE5Lmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMjAuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kb20vTWljcm9EYXRhLzAyMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9N
aWNyb0RhdGEvMDIyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMjMu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAyNC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDI1Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgIChXZWJDb3JlOjpKU0hU
TUxFbGVtZW50OjppdGVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRWxlbWVudDo6
c2V0SXRlbVZhbHVlKToKKyAgICAgICAgKiBkb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEFuY2hvckVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFu
Y2hvckVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBcmVhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEFyZWFFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1s
L0hUTUxBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmlu
OgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxF
bGVtZW50OjppdGVtUHJvcCk6IFJldHVybnMgZWxlbWVudCdzIGl0ZW1wcm9wIGNvbnRlbnQgYXR0
cmlidXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6Oml0ZW1Qcm9wU2V0VG9rZW4p
OiBTZXRzIGl0ZW1wcm9wIHZhbHVlIG9uIGNoYW5naW5nIGVsZW1ldCdzCisgICAgICAgIGl0ZW1w
cm9wIGF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjppdGVtUmVmKTog
UmV0dXJucyBlbGVtZW50J3MgaXRlbXJlZiBjb250ZW50IGF0dHJpYnV0ZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxFbGVtZW50OjppdGVtUmVmU2V0VG9rZW4pOiBTZXRzIGl0ZW1yZWYgdmFsdWUg
b24gY2hhbmdpbmcgZWxlbWV0J3MKKyAgICAgICAgaXRlbXJlZiBhdHRyaWJ1dGUuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0SXRlbVZhbHVlKTogU2V0cyBlbGVtZW50J3MgaXRl
bXZhbHVlLiBJZiB0aGUgZWxlbWVudCBoYXMgbm8KKyAgICAgICAgaXRlbXByb3AgYXR0cmlidXRl
IG9yIGlmIGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUsIGl0IHRocm93cyBJTlZB
TElEX0FDQ0VTU19FUlIKKyAgICAgICAgZXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6Oml0ZW1WYWx1ZSk6ICBSZXR1cm5zIHRoZSBlbGVtZW50cyBpdGVtdmFsdWUuCisK
KyAgICAgICAgSWYgdGhlIGVsZW1lbnQgaGFzIG5vIGl0ZW1wcm9wIGF0dHJpYnV0ZSBpdCByZXR1
cm5zIG51bGwuCisgICAgICAgIElmIHRoZSBlbGVtZW50IGhhcyBhbiBpdGVtc2NvcGUgYXR0cmli
dXRlLCBpdCByZXR1cm5zIHRoZSBlbGVtZW50IGl0c2VsZi4KKyAgICAgICAgSWYgdGhlIGVsZW1l
bnQgaXMgYSBtZXRhIGVsZW1lbnQ6IEl0IGFjdHMgYXMgaXQgd291bGQgaWYgaXQgd2FzIHJlZmxl
Y3RpbmcgdGhlIGVsZW1lbnQncworICAgICAgICBjb250ZW50IGNvbnRlbnQgYXR0cmlidXRlLgor
ICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBhbiBhdWRpbywgZW1iZWQsIGlmcmFtZSwgaW1nLCBz
b3VyY2UsIHRyYWNrLCBvciB2aWRlbyBlbGVtZW50OiBJdCBhY3RzCisgICAgICAgIGFzIGl0IHdv
dWxkIGlmIGl0IHdhcyByZWZsZWN0aW5nIHRoZSBlbGVtZW50J3Mgc3JjIGNvbnRlbnQgYXR0cmli
dXRlLgorICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBhbiBhLCBhcmVhLCBvciBsaW5rIGVsZW1l
bnQ6IEl0IGFjdCBhcyBpdCB3b3VsZCBpZiBpdCB3YXMgcmVmbGVjdGluZyB0aGUKKyAgICAgICAg
aHJlZiBjb250ZW50IGF0dHJpYnV0ZS4KKyAgICAgICAgSWYgdGhlIGVsZW1lbnQgaXMgYW4gb2Jq
ZWN0IGVsZW1lbnQ6IEl0IGFjdHMgYXMgIGl0IHdvdWxkIGlmIGl0IHdhcyByZWZsZWN0aW5nIHRo
ZSBlbGVtZW50J3MKKyAgICAgICAgZGF0YSBjb250ZW50IGF0dHJpYnV0ZS4KKworICAgICAgICAo
V2ViQ29yZTo6SFRNTEVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hU
TUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6
aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjpzZXRJ
dGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
RnJhbWVFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJh
bWVFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRt
bC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAg
ICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aXRlbVZhbHVl
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRJdGVtVmFsdWVU
ZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxNZXRhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6
Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50OjpzZXRJ
dGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRhRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9i
amVjdEVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVj
dEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTb3VyY2VFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTb3VyY2VFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxTb3VyY2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6
CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50Lmg6CisKIDIwMTEtMTAtMTcgIEFsZXhh
bmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBFZGl0aW5nIENTUyBzZWxlY3RvciBkb2Vzbid0IGZpcmUgb25SZXNvdXJjZUNvbnRlbnRD
b21taXR0ZWQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA5NzYwNikKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03OTIsNiArNzky
LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvTGFiZWxzTm9kZUxpc3QuY3BwCiAg
ICAgaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAogICAgIGh0bWwvTWVkaWFEb2N1bWVudC5jcHAK
KyAgICBodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAKICAgICBodG1sL01vbnRoSW5wdXRUeXBl
LmNwcAogICAgIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAogICAgIGh0bWwvUGFzc3dvcmRJbnB1
dFR5cGUuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDk3
NjA2KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5
KQpAQCAtMTgzOSw2ICsxODM5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RG9jdW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVycm9yLmggXAorCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
aHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmNwcCBcCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtNTU1Myw2ICs1NTUzLDggQEAKICAgICAgICAgICAgICdodG1sL01l
ZGlhRG9jdW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL01lZGlhRG9jdW1lbnQuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9NZWRpYUVycm9yLmgnLAorICAgICAgICAgICAgJ2h0bWwvTWljcm9E
YXRhSXRlbVZhbHVlLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUu
aCcsCiAgICAgICAgICAgICAnaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmNwcCcsCiAgICAgICAgICAg
ICAnaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmgnLAogICAgICAgICAgICAgJ2h0bWwvTW9udGhJbnB1
dFR5cGUuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC03NTcsNiArNzU3LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgaHRtbC9MYWJlbHNOb2RlTGlzdC5jcHAgXAogICAgIGh0bWwvTGlu
a1JlbEF0dHJpYnV0ZS5jcHAgXAogICAgIGh0bWwvTWVkaWFEb2N1bWVudC5jcHAgXAorICAgIGh0
bWwvTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBcCiAgICAgaHRtbC9Nb250aElucHV0VHlwZS5jcHAg
XAogICAgIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9QYXNzd29yZElucHV0
VHlwZS5jcHAgXApAQCAtMTc5NSw2ICsxNzk2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9M
aW5rUmVsQXR0cmlidXRlLmggXAogICAgIGh0bWwvTG9hZGFibGVUZXh0VHJhY2suaCBcCiAgICAg
aHRtbC9NZWRpYURvY3VtZW50LmggXAorICAgIGh0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmggXAog
ICAgIGh0bWwvTXV0YWJsZVRleHRUcmFjay5oIFwKICAgICBodG1sL1BsdWdpbkRvY3VtZW50Lmgg
XAogICAgIGh0bWwvU3RlcFJhbmdlLmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTU4Mjkw
LDYgKzU4MjkwLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGh0bWxcTWljcm9EYXRhSXRlbVZhbHVlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxNaWNyb0RhdGFJdGVtVmFsdWUu
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZmls
ZWFwaVxNZXRhZGF0YS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiA5
NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksMjUgQEAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogCisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVlKQoreworICAgIGlm
ICghaXRlbVZhbHVlKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1
ZS0+aXNOb2RlKCkpCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaXRl
bVZhbHVlLT5nZXROb2RlKCkpOworICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBpdGVtVmFsdWUt
PmdldFN0cmluZygpKTsKK30KKyNlbmRpZgorCiBTY29wZUNoYWluTm9kZSogSlNIVE1MRWxlbWVu
dDo6cHVzaEV2ZW50SGFuZGxlclNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUq
IHNjb3BlKSBjb25zdAogewogICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaW1wbCgpOwpAQCAt
NDgsNCArNjMsMjAgQEAgU2NvcGVDaGFpbk5vZGUqIEpTSFRNTEVsZW1lbnQ6OnB1c2hFdmVudAog
ICAgIHJldHVybiBzY29wZS0+cHVzaChhc09iamVjdCh0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgp
LCBlbGVtZW50KSkpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK0pTVmFsdWUgSlNIVE1M
RWxlbWVudDo6aXRlbVZhbHVlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBIVE1MRWxl
bWVudCogZWxlbWVudCA9IGltcGwoKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QoKSwgV1RGOjpnZXRQdHIoZWxlbWVudC0+aXRlbVZhbHVlKCkpKTsKK30KKwordm9pZCBKU0hU
TUxFbGVtZW50OjpzZXRJdGVtVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQor
eworICAgIEhUTUxFbGVtZW50KiBpbXAgPSBpbXBsKCk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CisgICAgaW1wLT5zZXRJdGVtVmFsdWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhl
YywgdmFsdWUpLCBlYyk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTWlj
cm9EYXRhSXRlbUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNy
b0RhdGFJdGVtTGlzdC5jcHAJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L01pY3JvRGF0YUl0ZW1MaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDEwIEBA
CiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIAotdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOworCiBNaWNyb0RhdGFJdGVtTGlzdDo6TWljcm9EYXRhSXRlbUxp
c3QoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpCiAg
ICAgOiBEeW5hbWljTm9kZUxpc3Qocm9vdE5vZGUpCiAgICAgLCBtX3R5cGVOYW1lcyh0eXBlTmFt
ZXMsIG1fcm9vdE5vZGUtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3NjA2KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU4Niw0ICs1ODYsMTYgQEAgdm9pZCBoYW5kbGVMaW5rQ2xpY2soRXZlbnQqIGV2ZW50LCBE
b2N1bQogICAgIGZyYW1lLT5sb2FkZXIoKS0+dXJsU2VsZWN0ZWQoZG9jdW1lbnQtPmNvbXBsZXRl
VVJMKHVybCksIHRhcmdldCwgZXZlbnQsIGZhbHNlLCBmYWxzZSwgaGlkZVJlZmVycmVyID8gTm9S
ZWZlcnJlciA6IFNlbmRSZWZlcnJlcik7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3Ry
aW5nIEhUTUxBbmNob3JFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZ2V0VVJMQXR0cmlidXRlKGhyZWZBdHRyKTsKK30KKwordm9pZCBIVE1MQW5jaG9yRWxlbWVu
dDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoaHJlZkF0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYK
KwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAkocmV2aXNp
b24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEyNSw2ICsxMjUsMTEgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgRXZl
bnRUeXBlIGV2ZW50VHlwZShFdmVudCopOwogICAgIGJvb2wgdHJlYXRMaW5rQXNMaXZlRm9yRXZl
bnRUeXBlKEV2ZW50VHlwZSkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZp
cnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYKKwog
ICAgIFJlZlB0cjxFbGVtZW50PiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnRGb3JTZWxlY3Rpb25Pbk1v
dXNlRG93bjsKICAgICBib29sIG1fd2FzU2hpZnRLZXlEb3duT25Nb3VzZURvd24gOiAxOwogICAg
IHVpbnQzMl90IG1fbGlua1JlbGF0aW9ucyA6IDMxOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmNwcAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBcmVhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Niw0ICsyNDYsMTYg
QEAgU3RyaW5nIEhUTUxBcmVhRWxlbWVudDo6dGFyZ2V0KCkgY29uc3QKICAgICByZXR1cm4gZ2V0
QXR0cmlidXRlKHRhcmdldEF0dHIpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmlu
ZyBIVE1MQXJlYUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBn
ZXRVUkxBdHRyaWJ1dGUoaHJlZkF0dHIpOworfQorCit2b2lkIEhUTUxBcmVhRWxlbWVudDo6c2V0
SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBzZXRBdHRyaWJ1dGUoaHJlZkF0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCShyZXZpc2lvbiA5NzYwNikK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDcgKzU4LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxl
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZvY3VzQXBwZWFyYW5jZShib29sIC8q
cmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKi8pOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhi
b29sKTsKLSAgICAKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcg
aXRlbVZhbHVlVGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0
KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgorCiAgICAgZW51bSBTaGFw
ZSB7IERlZmF1bHQsIFBvbHksIFJlY3QsIENpcmNsZSwgVW5rbm93biB9OwogICAgIFBhdGggZ2V0
UmVnaW9uKGNvbnN0IExheW91dFNpemUmKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVDYWNo
ZWRSZWdpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDcgQEAgaW5kZXRlcm1pbmF0
ZQogaXNtYXAKIGl0ZW1pZAogaXRlbXByb3AKK2l0ZW1yZWYKIGl0ZW1zY29wZQogaXRlbXR5cGUK
IGtleXR5cGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5
NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw2ICs0MSw5IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmgiCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUgIlNjcmlw
dEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTk2LDYgKzE5OSwx
MCBAQCB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBCiAgICAgICAgIH0g
ZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJmYWxzZSIpKQogICAgICAgICAgICAg
YWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZywgQ1NTVmFsdWVO
b25lKTsKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgp
ID09IGl0ZW1wcm9wQXR0cikgeworICAgICAgICBpdGVtUHJvcFNldFRva2VuKGF0dHItPnZhbHVl
KCkpOworICAgIH0gIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBpdGVtcmVmQXR0cikgeworICAg
ICAgICBpdGVtUmVmU2V0VG9rZW4oYXR0ci0+dmFsdWUoKSk7CiAgICAgfSBlbHNlIGlmIChhdHRy
LT5uYW1lKCkgPT0gaXRlbXR5cGVBdHRyKSB7CiAgICAgICAgIGl0ZW1UeXBlQXR0cmlidXRlQ2hh
bmdlZCgpOwogI2VuZGlmCkBAIC05NzUsNiArOTgyLDcxIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmFk
anVzdERpcmVjdGlvbmFsaXR5SWYKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQor
UGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gSFRNTEVsZW1lbnQ6Oml0ZW1Qcm9wKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1faXRlbVByb3ApCisgICAgICAgIG1faXRlbVByb3AgPSBET01T
ZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKCk7CisKKyAgICByZXR1cm4gbV9pdGVtUHJvcDsKK30K
Kwordm9pZCBIVE1MRWxlbWVudDo6aXRlbVByb3BTZXRUb2tlbihjb25zdCBTdHJpbmcmIHZhbHVl
KQoreworICAgIGlmICghbV9pdGVtUHJvcCkKKyAgICAgICAgbV9pdGVtUHJvcCA9IERPTVNldHRh
YmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgIG1faXRlbVByb3AtPnNldFZhbHVlKHZhbHVl
KTsKK30KKworUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gSFRNTEVsZW1lbnQ6Oml0
ZW1SZWYoKSBjb25zdAoreworICAgIGlmICghbV9pdGVtUmVmKQorICAgICAgICBtX2l0ZW1SZWYg
PSBET01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKCk7CisKKyAgICByZXR1cm4gbV9pdGVtUmVm
OworfQorCit2b2lkIEhUTUxFbGVtZW50OjppdGVtUmVmU2V0VG9rZW4oY29uc3QgU3RyaW5nJiB2
YWx1ZSkKK3sKKyAgICBpZiAoIW1faXRlbVJlZikKKyAgICAgICAgbV9pdGVtUmVmID0gRE9NU2V0
dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgbV9pdGVtUmVmLT5zZXRWYWx1ZSh2YWx1
ZSk7Cit9CisKK3ZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZShjb25zdCBTdHJpbmcmIHZh
bHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWhhc0F0dHJpYnV0ZShpdGVtcHJv
cEF0dHIpIHx8IGhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkgeworICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNldEl0ZW1W
YWx1ZVRleHQodmFsdWUsIGVjKTsKK30KKworUGFzc1JlZlB0cjxNaWNyb0RhdGFJdGVtVmFsdWU+
IEhUTUxFbGVtZW50OjppdGVtVmFsdWUoKSBjb25zdAoreworICAgIGlmICghaGFzQXR0cmlidXRl
KGl0ZW1wcm9wQXR0cikpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGhhc0F0dHJpYnV0
ZShpdGVtc2NvcGVBdHRyKSkKKyAgICAgICAgcmV0dXJuIE1pY3JvRGF0YUl0ZW1WYWx1ZTo6Y3Jl
YXRlRnJvbU5vZGUoY29uc3RfY2FzdDxIVE1MRWxlbWVudCogY29uc3Q+KHRoaXMpKTsKKworICAg
IHJldHVybiBNaWNyb0RhdGFJdGVtVmFsdWU6OmNyZWF0ZUZyb21TdHJpbmcoaXRlbVZhbHVlVGV4
dCgpKTsKK30KKworU3RyaW5nIEhUTUxFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gdGV4dENvbnRlbnQodHJ1ZSk7Cit9CisKK3ZvaWQgSFRNTEVsZW1lbnQ6OnNl
dEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgc2V0VGV4dENvbnRlbnQodmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5oCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTIgKzI1LDIwIEBACiAKICNpbmNsdWRlICJTdHls
ZWRFbGVtZW50LmgiCiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIkRPTVNldHRh
YmxlVG9rZW5MaXN0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
b2N1bWVudEZyYWdtZW50OwogY2xhc3MgSFRNTENvbGxlY3Rpb247CiBjbGFzcyBIVE1MRm9ybUVs
ZW1lbnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgIAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
K2NsYXNzIE1pY3JvRGF0YUl0ZW1WYWx1ZTsKKyNlbmRpZgorCiBjbGFzcyBIVE1MRWxlbWVudCA6
IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
Kik7CkBAIC04MSw2ICs4OSwxNCBAQCBwdWJsaWM6CiAKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVj
dGlvbmFsaXR5SWZoYXNEaXJBdXRvQXR0cmlidXRlKGJvb2wmIGlzQXV0bykgY29uc3Q7CiAKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIFBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+
IGl0ZW1SZWYoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBp
dGVtUHJvcCgpIGNvbnN0OworCisgICAgdm9pZCBzZXRJdGVtVmFsdWUoY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiBpdGVt
VmFsdWUoKSBjb25zdDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIApAQCAtMTA3LDYgKzEyMywx
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRlZEFmdGVy
Q2hpbGRBdHRyaWJ1dGVDaGFuZ2VkKEVsZW1lbnQqIGNoaWxkKTsKICAgICB2b2lkIGFkanVzdERp
cmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRlckNoaWxkcmVuQ2hhbmdlZChOb2RlKiBiZWZvcmVDaGFu
Z2UsIGludCBjaGlsZENvdW50RGVsdGEpOwogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uYWxp
dHkoTm9kZSoqIHN0cm9uZ0RpcmVjdGlvbmFsaXR5VGV4dE5vZGU9IDApIGNvbnN0OworCisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2b2lkIGl0ZW1Qcm9wU2V0VG9rZW4oY29uc3QgU3RyaW5n
Jik7CisgICAgdm9pZCBpdGVtUmVmU2V0VG9rZW4oY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0
dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEl0
ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgbXV0YWJs
ZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1faXRlbVByb3A7CisgICAgbXV0YWJsZSBS
ZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1faXRlbVJlZjsKKyNlbmRpZgogfTsKIAogaW5s
aW5lIEhUTUxFbGVtZW50KiB0b0hUTUxFbGVtZW50KE5vZGUqIG5vZGUpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsMTIgQEAg
bW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1J
Q1JPREFUQSwgUmVmbGVjdF0gRE9NU3RyaW5nIGl0ZW1UeXBlOwogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVjdF0gRE9NU3RyaW5nIGl0ZW1J
ZDsKIAorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0g
RE9NU2V0dGFibGVUb2tlbkxpc3QgaXRlbVJlZjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1Qcm9wOwor
CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEEsIEN1c3Rv
bV0gY3VzdG9tIGl0ZW1WYWx1ZQorICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5H
VUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRp
dGxlRGlzcGxheVN0cmluZzsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVtYmVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Nyw0ICsyNzcsMTYgQEAg
dm9pZCBIVE1MRW1iZWRFbGVtZW50OjphZGRTdWJyZXNvdXJjZUF0dAogICAgIGFkZFN1YnJlc291
cmNlVVJMKHVybHMsIGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGdldEF0dHJpYnV0ZShzcmNBdHRy
KSkpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MRW1iZWRFbGVtZW50
OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNy
Y0F0dHIpOworfQorCit2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29u
c3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRl
KHNyY0F0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRW1iZWRFbGVtZW50LmgJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDEx
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJM
cyhMaXN0SGFzaFNldDxLVVJMPiYpIGNvbnN0OwogCiAgICAgdm9pZCBwYXJhbWV0ZXJzRm9yUGx1
Z2luKFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1
ZXMpOworCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFs
dWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3Qg
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlmCiB9OwogCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAkocmV2aXNpb24gOTc2MDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTYzLDQgKzE2MywxNiBAQCBib29sIEhUTUxJRnJhbWVFbGVtZW50Ojppc1VSTEF0dHJpYnV0
ZShBCiAgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBzcmNBdHRyOwogfQogCisjaWYgRU5BQkxF
KE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MSUZyYW1lRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKK30KKwordm9pZCBI
VE1MSUZyYW1lRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoc3JjQXR0ciwgdmFsdWUsIGVj
KTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5oCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFt
ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTEgQEAgcHJpdmF0ZToKICAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CiAK
KyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcm
LCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYKKwogICAgIEF0b21pY1N0cmluZyBtX25hbWU7CiB9
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHJldmlz
aW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDAzLDQgKzQwMywxNiBAQCBib29sIEhUTUxJbWFnZUVsZW1lbnQ6
OmlzU2VydmVyTWFwKCkgY29uCiAgICAgcmV0dXJuIGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHN0
cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh1c2VtYXApKS5pc0VtcHR5KCk7CiB9CiAK
KyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxJbWFnZUVsZW1lbnQ6Oml0ZW1WYWx1
ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoc3JjQXR0cik7Cit9
CisKK3ZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcm
IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoc3JjQXR0ciwg
dmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiwxMSBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCk7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApOwogCisjaWYgRU5BQkxFKE1J
Q1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29k
ZSYpOworI2VuZGlmCisKICAgICBIVE1MSW1hZ2VMb2FkZXIgbV9pbWFnZUxvYWRlcjsKICAgICBI
VE1MRm9ybUVsZW1lbnQqIG1fZm9ybTsKICAgICBBdG9taWNTdHJpbmcgbV9uYW1lOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAkocmV2aXNpb24gOTc2MDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ1Myw0ICs0NTMsMTYgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnNldFNpemVzKGNvbnN0
IFN0cgogICAgIG1fc2l6ZXMtPnNldFZhbHVlKHZhbHVlKTsKIH0KIAorI2lmIEVOQUJMRShNSUNS
T0RBVEEpCitTdHJpbmcgSFRNTExpbmtFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKGhyZWZBdHRyKTsKK30KKwordm9pZCBIVE1MTGlu
a0VsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKGhyZWZBdHRyLCB2YWx1ZSwgZWMpOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuaAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NCw2ICs5NCwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgYWRkUGVuZGluZ1NoZWV0KFBlbmRpbmdTaGVldFR5cGUpOwogICAgIHZv
aWQgcmVtb3ZlUGVuZGluZ1NoZWV0KCk7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZp
cnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYKKwog
cHJpdmF0ZToKICAgICBIVE1MTGlua0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAyNSw2ICszMDI1
LDE4IEBAIEF1ZGlvU291cmNlUHJvdmlkZXIqIEhUTUxNZWRpYUVsZW1lbnQ6OmEKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MTWVkaWFFbGVtZW50OjppdGVt
VmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNyY0F0dHIp
OworfQorCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKHNyY0F0
dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODAsNiAr
MzgwLDExIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQqIHByZURpc3BhdGNoRXZlbnRI
YW5kbGVyKEV2ZW50Kik7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3Ry
aW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVl
VGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYKKwogICAgIFRpbWVy
PEhUTUxNZWRpYUVsZW1lbnQ+IG1fbG9hZFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1l
bnQ+IG1fYXN5bmNFdmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fcHJv
Z3Jlc3NFdmVudFRpbWVyOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50
LmNwcAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDQgKzk0LDE2IEBAIFN0cmluZyBIVE1MTWV0
YUVsZW1lbnQ6Om5hbWUoKSBjb25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUobmFtZUF0dHIp
OwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MTWV0YUVsZW1lbnQ6Oml0
ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoY29udGVudEF0
dHIpOworfQorCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBT
dHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoY29u
dGVudEF0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRhRWxlbWVudC5oCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1ldGFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDEyIEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAKICAg
ICB2b2lkIHByb2Nlc3MoKTsKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBT
dHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFs
dWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgorCiB9OwogCiB9
IC8vbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmNwcAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU0LDQgKzU1NCwxNiBAQCBIVE1MRm9ybUVs
ZW1lbnQqIEhUTUxPYmplY3RFbGVtZW50Ojp2aXJ0CiAgICAgcmV0dXJuIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudDo6Zm9ybSgpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1M
T2JqZWN0RWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVS
TEF0dHJpYnV0ZShkYXRhQXR0cik7Cit9CisKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldEl0
ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgc2V0QXR0cmlidXRlKGRhdGFBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgJKHJldmlzaW9uIDk3NjA2
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDIsNiArMTAyLDExIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgZm9ybUNvbnRyb2xOYW1lKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
CisjZW5kaWYKKwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIFN0cmluZyBtX2NsYXNzSWQ7
CiAgICAgYm9vbCBtX2RvY05hbWVkSXRlbSA6IDE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTb3VyY2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTb3VyY2VFbGVtZW50LmNwcAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDYgKzEy
MSwxOCBAQCBib29sIEhUTUxTb3VyY2VFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBCiAgICAgcmV0
dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0dHI7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorU3RyaW5nIEhUTUxTb3VyY2VFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNyY0F0dHIpOworfQorCit2b2lkIEhUTUxTb3Vy
Y2VFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShzcmNBdHRyLCB2YWx1ZSwgZWMpOworfQor
I2VuZGlmCisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3Vy
Y2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNl
RWxlbWVudC5oCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNv
dXJjZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsMTEgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgZXJyb3JFdmVudFRpbWVyRmlyZWQoVGltZXI8SFRNTFNvdXJjZUVsZW1lbnQ+
Kik7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1
ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYKKwogICAgIFRpbWVyPEhUTUxTb3VyY2VF
bGVtZW50PiBtX2Vycm9yRXZlbnRUaW1lcjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVHJhY2tFbGVtZW50LmNwcAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNiArMTM3
LDE3IEBAIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6bG9hZChTY3JpcHRFeGVjdXQKICAgICAgICAg
bV90cmFjay0+bG9hZChnZXROb25FbXB0eVVSTEF0dHJpYnV0ZShzcmNBdHRyKSwgY29udGV4dCk7
CiB9CiAKKworU3RyaW5nIEhUTUxUcmFja0VsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAor
eworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoc3JjQXR0cik7Cit9CisKK3ZvaWQgSFRNTFRy
YWNrRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoc3JjQXR0ciwgdmFsdWUsIGVjKTsKK30K
KwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5o
CShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1v
dmUoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7
CisKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIAogICAgIFJlZlB0cjxMb2FkYWJsZVRleHRUcmFjaz4gbV90cmFjazsKIH07CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA5NzYwNikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDQ2IEBACisyMDExLTEwLTE3ICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xh
LmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEFkZCBpdGVtcHJvcCwgaXRlbXJlZiwgaXRlbXZh
bHVlIGF0dHJpYnV0ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02OTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIHRlc3QtY2FzZXMgZm9yIE1pY3JvZGF0YSBpdGVtcHJvcCwgaXRlbXJlZiwg
aXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDEw
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAxMC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDExLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAxMS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDEyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAxMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9NaWNyb0RhdGEvMDEzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vTWljcm9EYXRhLzAxMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNy
b0RhdGEvMDE0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhLzAxNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDE1LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAxNS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDE2LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAxNi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDE3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAxNy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvMDE4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vTWljcm9EYXRhLzAxOC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvMDE5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRh
LzAxOS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDIwLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAyMC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDIxLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAyMS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDIyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhLzAyMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9NaWNyb0RhdGEvMDIzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhLzAyMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
MDI0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAy
NC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDI1LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAyNS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKwogMjAxMS0xMC0xNyAgQWxleGFu
ZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEVkaXRpbmcgQ1NTIHNlbGVjdG9yIGRvZXNuJ3QgZmlyZSBvblJlc291cmNlQ29udGVudENv
bW1pdHRlZApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxMC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxMC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvMDEwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitUaGlzIHRl
c3QgZW5zdXJlcyB0aGF0IHRoZSBpdGVtcHJvcCBhdHRyaWJ1dGUgbXVzdCBiZSByZWZsZWN0ZWQg
YnkgdGhlIC5pdGVtUHJvcCBwcm9wZXJ0eS4KKworUEFTUyBlbGVtZW50Lml0ZW1Qcm9wIGlzIGRl
ZmluZWQuCitQQVNTIGVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSBpcyAnaHR0cDovL2V4YW1w
bGUuY29tL2ZvbycKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygpIGlzICcnCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxMC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTAuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTAuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyNCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2Rh
dGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVu
c3VyZXMgdGhhdCB0aGUgaXRlbXByb3AgYXR0cmlidXRlIG11c3QgYmUgcmVmbGVjdGVkIGJ5IHRo
ZSAuaXRlbVByb3AgcHJvcGVydHkuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0PgorCit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW0oJ2Rpdicse2l0ZW1wcm9wOidodHRwOi8v
ZXhhbXBsZS5jb20vZm9vJ30pOworCitzaG91bGRCZURlZmluZWQoImVsZW1lbnQuaXRlbVByb3Ai
KTsKK3Nob3VsZEJlKCJlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkiLCAiJ2h0dHA6Ly9leGFt
cGxlLmNvbS9mb28nIik7CisKK2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdpdGVtUHJvcCcpOwor
c2hvdWxkQmUoImVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSIsICInJyIpOworCit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDExLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDExLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTEt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitUaGlzIHRlc3QgdGhh
dCB0aGUgaXRlbVByb3Agc2hvdWxkIGJlIGNvcnJlY3QgZm9yIGFuIGVsZW1lbnQgdGhhdCBoYXMg
aXRlbVByb3AgYXR0cmlidXRlLgorCitQQVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDMg
aXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbyBiYXIgRk9P
JyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AuaXRlbSgwKSA9PSAnZm9vJyBpcyB0cnVl
CitQQVNTIGVsZW1lbnQuaXRlbVByb3AuaXRlbSgxKSA9PSAnYmFyJyBpcyB0cnVlCitQQVNTIGVs
ZW1lbnQuaXRlbVByb3BbMF0gPT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9w
WzFdID09ICdiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygnYmFy
JykgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLml0ZW0oMikgPT0gJ0ZPTycgaXMgdHJ1
ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wWzJdID09ICdGT08nIGlzIHRydWUKK1BBU1MgZWxlbWVu
dC5pdGVtUHJvcC5jb250YWlucygndGVzdCcpIGlzIGZhbHNlCitQQVNTIGVsZW1lbnQxLml0ZW1Q
cm9wLmxlbmd0aCA9PSAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
MDExLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAx
MS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAx
MS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgdGhhdCB0aGUgaXRlbVByb3Agc2hvdWxkIGJlIGNv
cnJlY3QgZm9yIGFuIGVsZW1lbnQgdGhhdCBoYXMgaXRlbVByb3AgYXR0cmlidXRlLjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKwordmFyIGVsZW1lbnQgPSBjcmVhdGVF
bGVtKCdkaXYnLHtpdGVtcHJvcDonZm9vIGJhciBGT08nfSk7CisKK3Nob3VsZEJlVHJ1ZSgiZWxl
bWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Q
cm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbyBiYXIgRk9PJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50
Lml0ZW1Qcm9wLml0ZW0oMCkgPT0gJ2ZvbyciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVt
UHJvcC5pdGVtKDEpID09ICdiYXInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3Bb
MF0gPT0gJ2ZvbyciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcFsxXSA9PSAnYmFy
JyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdiYXInKSIpOwor
CisvLyBpdGVtUHJvcCBzaG91bGQgcmV0dXJuIGNhc2Utc2Vuc2l0aXZlIHN0cmluZ3MKK3Nob3Vs
ZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5pdGVtKDIpID09ICdGT08nIik7CitzaG91bGRCZVRy
dWUoImVsZW1lbnQuaXRlbVByb3BbMl0gPT0gJ0ZPTyciKTsKKworLy8gaXRlbVByb3Agc2hvdWxk
IG5vdCBjb250YWluIGFuIHVuZGVmaW5lZCB0b2tlbgorc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5p
dGVtUHJvcC5jb250YWlucygndGVzdCcpIik7CisKKy8vIGl0ZW1Qcm9wLmxlbmd0aCBzaG91bGQg
YmUgMCBpZiBlbGVtZW50IGhhcyBub3QgdG9rZW5zCit2YXIgZWxlbWVudDEgPSBjcmVhdGVFbGVt
KCdkaXYnLHtpdGVtcHJvcDonJ30pOworc2hvdWxkQmVUcnVlKCJlbGVtZW50MS5pdGVtUHJvcC5s
ZW5ndGggPT0gMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDEyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvMDEyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS8wMTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE2IEBACitUaGlzIHRlc3RzIHRoYXQgaXRlbVByb3AgYXR0cmlidXRlIG11c3QgdXBkYXRl
IGNvcnJlY3RseSB3aGVuIHRva2VuIGhhdmUgYmVlbiBhZGRlZCBvciByZW1vdmVkLgorCitQQVNT
IGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Q
cm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbyBGT08nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJv
cFswXSBpcyAnZm9vJworUEFTUyBlbGVtZW50Lml0ZW1Qcm9wWzFdIGlzICdGT08nCitQQVNTIGVs
ZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9w
Lmxlbmd0aCA9PSAxIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMSBp
cyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDAgaXMgdHJ1ZQorUEFTUyBl
bGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdmb28nKSBpcyBmYWxzZQorUEFTUyBlbGVtZW50Lml0
ZW1Qcm9wLmNvbnRhaW5zKCdGT08nKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS8wMTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDEyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDEyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpdGVtUHJvcCBhdHRyaWJ1
dGUgbXVzdCB1cGRhdGUgY29ycmVjdGx5IHdoZW4gdG9rZW4gaGF2ZSBiZWVuIGFkZGVkIG9yIHJl
bW92ZWQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgZWxl
bWVudCA9IGNyZWF0ZUVsZW0oJ2Rpdicse30pOworCisvLyBpdGVtUHJvcC5hZGQgbXVzdCByZWZs
ZWN0IGNvcnJlY3RseQorZWxlbWVudC5pdGVtUHJvcC5hZGQoJ2ZvbycpOworZWxlbWVudC5pdGVt
UHJvcC5hZGQoJ0ZPTycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9
PSAyIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSA9PSAnZm9v
IEZPTyciKTsKK3Nob3VsZEJlKCJlbGVtZW50Lml0ZW1Qcm9wWzBdIiwgIidmb28nIik7CitzaG91
bGRCZSgiZWxlbWVudC5pdGVtUHJvcFsxXSIsICInRk9PJyIpOworCisvLyBpdGVtUHJvcC5hZGQg
bXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhbiBleGlzdGluZyB0b2tlbiBpcyBhZGRlZAor
ZWxlbWVudC5pdGVtUHJvcC5hZGQoJ2ZvbycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Q
cm9wLmxlbmd0aCA9PSAyIik7CisKKy8vIGl0ZW1Qcm9wLnJlbW92ZSBtdXN0IHJlZmxlY3QgY29y
cmVjdGx5CitlbGVtZW50Lml0ZW1Qcm9wLnJlbW92ZSgnZm9vJyk7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDEiKTsKKworLy8gaXRlbVByb3AucmVtb3ZlIG11c3Qg
bm90IG1ha2UgYW55IGNoYW5nZXMgaWYgYSBub24tZXhpc3RpbmcgdG9rZW4gaXMgcmVtb3ZlZAor
ZWxlbWVudC5pdGVtUHJvcC5yZW1vdmUoJ2ZvbycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0
ZW1Qcm9wLmxlbmd0aCA9PSAxIik7CisKK2VsZW1lbnQuaXRlbVByb3AucmVtb3ZlKCdGT08nKTsK
K3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMCIpOworc2hvdWxkQmVG
YWxzZSgiZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygnZm9vJykiKTsKK3Nob3VsZEJlRmFsc2Uo
ImVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ0ZPTycpIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxMy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0cyB0aGF0IGl0ZW1Qcm9w
IGFuZCBpdGVtUHJvcC5sZW5ndGggbXVzdCBiZSByZWFkLW9ubHkuCisKK1BBU1MgZWxlbWVudC5p
dGVtUHJvcC50b1N0cmluZygpID09ICdmb28nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJv
cC5jb250YWlucygndGVzdCcpIGlzIGZhbHNlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3Ro
ID09IDEgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDEzLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDEzLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpdGVtUHJvcCBhbmQgaXRlbVByb3AubGVuZ3RoIG11c3Qg
YmUgcmVhZC1vbmx5LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKwor
dmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtKCdkaXYnLHtpdGVtcHJvcDonZm9vJ30pOworZWxlbWVu
dC5pdGVtUHJvcCA9ICd0ZXN0JzsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC50b1N0
cmluZygpID09ICdmb28nIik7CitzaG91bGRCZUZhbHNlKCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRh
aW5zKCd0ZXN0JykiKTsKKworZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPSAwOworc2hvdWxkQmVU
cnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAxIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxNC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQg
dGhlIGl0ZW1yZWYgYXR0cmlidXRlIG11c3QgYmUgcmVmbGVjdGVkIGJ5IHRoZSAuaXRlbVJlZiBw
cm9wZXJ0eS4KKworUEFTUyBlbGVtZW50Lml0ZW1SZWYgaXMgZGVmaW5lZC4KK1BBU1MgZWxlbWVu
dC5pdGVtUmVmLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmLnRvU3Ry
aW5nKCkgPT0gJ2ZvbyBiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5n
KCkgPT0gJycgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE0Lmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE0Lmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIGl0ZW1yZWYgYXR0cmlidXRlIG11
c3QgYmUgcmVmbGVjdGVkIGJ5IHRoZSAuaXRlbVJlZiBwcm9wZXJ0eS48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbSgnZGl2
Jyx7aXRlbXJlZjonZm9vIGJhcid9KTsKK3Nob3VsZEJlRGVmaW5lZCgiZWxlbWVudC5pdGVtUmVm
Iik7CisKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAyIik7CitzaG91
bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpID09ICdmb28gYmFyJyIpOworCitl
bGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXJlZicpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50
Lml0ZW1SZWYudG9TdHJpbmcoKSA9PSAnJyIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE1LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTUtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgdGhhdCB0aGUgaXRlbVJlZiBzaG91
bGQgYmUgY29ycmVjdCBmb3IgYW4gZWxlbWVudCB0aGF0IGhhcyBpdGVtUmVmIGF0dHJpYnV0ZS4K
KworUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDMgaXMgdHJ1ZQorUEFTUyBlbGVtZW50
Lml0ZW1SZWYudG9TdHJpbmcoKSA9PSAnZm9vIGJhciBGT08nIGlzIHRydWUKK1BBU1MgZWxlbWVu
dC5pdGVtUmVmLml0ZW0oMCkgPT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYu
aXRlbSgxKSA9PSAnYmFyJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZlswXSA9PSAnZm9v
JyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZlsxXSA9PSAnYmFyJyBpcyB0cnVlCitQQVNT
IGVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnYmFyJykgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0
ZW1SZWYuY29udGFpbnMoJ2ZvbycpIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmLml0ZW0o
MikgPT0gJ0ZPTycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWZbMl0gPT0gJ0ZPTycgaXMg
dHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ3Rlc3QnKSBpcyBmYWxzZQorUEFT
UyBlbGVtZW50MS5pdGVtUmVmLmxlbmd0aCA9PSAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvMDE1Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAxNS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAxNS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgdGhhdCB0aGUgaXRlbVJl
ZiBzaG91bGQgYmUgY29ycmVjdCBmb3IgYW4gZWxlbWVudCB0aGF0IGhhcyBpdGVtUmVmIGF0dHJp
YnV0ZS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBlbGVt
ZW50ID0gY3JlYXRlRWxlbSgnZGl2Jyx7aXRlbXJlZjonZm9vIGJhciBGT08nfSk7CisKK3Nob3Vs
ZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAzIik7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQuaXRlbVJlZi50b1N0cmluZygpID09ICdmb28gYmFyIEZPTyciKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5pdGVtUmVmLml0ZW0oMCkgPT0gJ2ZvbyciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxl
bWVudC5pdGVtUmVmLml0ZW0oMSkgPT0gJ2JhciciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5p
dGVtUmVmWzBdID09ICdmb28nIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZlsxXSA9
PSAnYmFyJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2Jhcicp
Iik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnZm9vJykiKTsKKwor
Ly8gaXRlbVJlZiBzaG91bGQgcmV0dXJuIGNhc2Utc2Vuc2l0aXZlIHN0cmluZ3MKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5pdGVtUmVmLml0ZW0oMikgPT0gJ0ZPTyciKTsKK3Nob3VsZEJlVHJ1ZSgi
ZWxlbWVudC5pdGVtUmVmWzJdID09ICdGT08nIik7CisKKy8vIGl0ZW1SZWYgc2hvdWxkIG5vdCBj
b250YWluIGFuIHVuZGVmaW5lZCB0b2tlbgorc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5pdGVtUmVm
LmNvbnRhaW5zKCd0ZXN0JykiKTsKKworLy8gaXRlbVJlZi5sZW5ndGggc2hvdWxkIGJlIDAgaWYg
ZWxlbWVudCBoYXMgbm90IHRva2VucwordmFyIGVsZW1lbnQxID0gY3JlYXRlRWxlbSgnZGl2Jyx7
aXRlbVJlZjonJ30pOworc2hvdWxkQmVUcnVlKCJlbGVtZW50MS5pdGVtUmVmLmxlbmd0aCA9PSAw
Iik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTYt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS8wMTYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhLzAxNi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAK
K1RoaXMgdGVzdHMgdGhhdCBpdGVtUmVmIGF0dHJpYnV0ZSBtdXN0IHVwZGF0ZSBjb3JyZWN0bHkg
d2hlbiB0b2tlbiBoYXZlIGJlZW4gYWRkZWQgb3IgcmVtb3ZlZC4KKworUEFTUyBlbGVtZW50Lml0
ZW1SZWYubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmco
KSBpcyAnZm9vIEZPTycKK1BBU1MgZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAyIGlzIHRydWUK
K1BBU1MgZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAxIGlzIHRydWUKK1BBU1MgZWxlbWVudC5p
dGVtUmVmLmNvbnRhaW5zKCdmb28nKSBpcyBmYWxzZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVu
Z3RoID09IDEgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDAgaXMgdHJ1
ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIGlzIGZhbHNlCitQQVNTIGVs
ZW1lbnQuaXRlbVJlZi5jb250YWlucygnRk9PJykgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvMDE2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAxNi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAxNi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgaXRlbVJlZiBh
dHRyaWJ1dGUgbXVzdCB1cGRhdGUgY29ycmVjdGx5IHdoZW4gdG9rZW4gaGF2ZSBiZWVuIGFkZGVk
IG9yIHJlbW92ZWQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCit2
YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW0oJ2Rpdicse30pOworCisvLyBpdGVtUmVmLmFkZCBtdXN0
IHJlZmxlY3QgY29ycmVjdGx5CitlbGVtZW50Lml0ZW1SZWYuYWRkKCdmb28nKTsKK2VsZW1lbnQu
aXRlbVJlZi5hZGQoJ0ZPTycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYubGVuZ3Ro
ID09IDIiKTsKK3Nob3VsZEJlKCJlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSIsICInZm9vIEZP
TyciKTsKKy8vc2hvdWxkQmUoImVsZW1lbnQuaXRlbVByb3BbMV0iLCAiJ0ZPTyciKTsKKworLy8g
aXRlbVJlZi5hZGQgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhbiBleGlzdGluZyB0b2tl
biBpcyBhZGRlZAorZWxlbWVudC5pdGVtUmVmLmFkZCgnZm9vJyk7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMiIpOworCisvLyBpdGVtUmVmLnJlbW92ZSBtdXN0IHJl
ZmxlY3QgY29ycmVjdGx5CitlbGVtZW50Lml0ZW1SZWYucmVtb3ZlKCdmb28nKTsKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAxIik7CitzaG91bGRCZUZhbHNlKCJlbGVt
ZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIik7CisKKy8vIGl0ZW1SZWYucmVtb3ZlIG11c3Qg
bm90IG1ha2UgYW55IGNoYW5nZXMgaWYgYSBub24tZXhpc3RpbmcgdG9rZW4gaXMgcmVtb3ZlZAor
ZWxlbWVudC5pdGVtUmVmLnJlbW92ZSgnZm9vJyk7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRl
bVJlZi5sZW5ndGggPT0gMSIpOworCitlbGVtZW50Lml0ZW1SZWYucmVtb3ZlKCdGT08nKTsKK3No
b3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAwIik7CitzaG91bGRCZUZhbHNl
KCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIik7CitzaG91bGRCZUZhbHNlKCJlbGVt
ZW50Lml0ZW1SZWYuY29udGFpbnMoJ0ZPTycpIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxNy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0cyB0aGF0IGl0ZW1SZWYgYW5kIGl0
ZW1SZWYubGVuZ3RoIG11c3QgYmUgcmVhZC1vbmx5LgorCitQQVNTIGVsZW1lbnQuaXRlbVJlZi50
b1N0cmluZygpID09ICdmb28nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5z
KCd0ZXN0JykgaXMgZmFsc2UKK1BBU1MgZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAxIGlzIHRy
dWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE3Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxNy5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxNy5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDI0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3RzIHRoYXQgaXRlbVJlZiBhbmQgaXRlbVJlZi5sZW5ndGggbXVzdCBiZSByZWFkLW9ubHku
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgZWxlbWVudCA9
IGNyZWF0ZUVsZW0oJ2Rpdicse2l0ZW1yZWY6J2Zvbyd9KTsKK2VsZW1lbnQuaXRlbXJlZiA9ICd0
ZXN0JzsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgPT0gJ2Zvbyci
KTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVJlZi5jb250YWlucygndGVzdCcpIik7CisK
K2VsZW1lbnQuaXRlbVJlZi5sZW5ndGggPSAwOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1S
ZWYubGVuZ3RoID09IDEiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhLzAxOC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAxOC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyMiBAQAorVGhpcyB0ZXN0cyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IGJlIG51bGwgaWYg
dGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBpdGVtcHJvcCBhdHRyaWJ1dGUKKworUEFTUyBj
cmVhdGVFbGVtKCdtZXRhJyx7Y29udGVudDondGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0
cnVlCitQQVNTIGNyZWF0ZUVsZW0oJ2F1ZGlvJyx7c3JjOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBu
dWxsIGlzIHRydWUKK1BBU1MgY3JlYXRlRWxlbSgnZW1iZWQnLHtzcmM6J3Rlc3QnfSkuaXRlbVZh
bHVlID09IG51bGwgaXMgdHJ1ZQorUEFTUyBjcmVhdGVFbGVtKCdpZnJhbWUnLHtzcmM6J3Rlc3Qn
fSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorUEFTUyBjcmVhdGVFbGVtKCdpbWcnLHtzcmM6
J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorUEFTUyBjcmVhdGVFbGVtKCdzb3Vy
Y2UnLHtzcmM6J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorUEFTUyBjcmVhdGVF
bGVtKCd0cmFjaycse3NyYzondGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCitQQVNT
IGNyZWF0ZUVsZW0oJ3ZpZGVvJyx7c3JjOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRy
dWUKK1BBU1MgY3JlYXRlRWxlbSgnYScse2hyZWY6J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwg
aXMgdHJ1ZQorUEFTUyBjcmVhdGVFbGVtKCdhcmVhJyx7aHJlZjondGVzdCd9KS5pdGVtVmFsdWUg
PT0gbnVsbCBpcyB0cnVlCitQQVNTIGNyZWF0ZUVsZW0oJ2xpbmsnLHtocmVmOid0ZXN0J30pLml0
ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKK1BBU1MgY3JlYXRlRWxlbSgnb2JqZWN0Jyx7ZGF0YTon
dGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCitQQVNTIGNyZWF0ZUVsZW0oJ3RpbWUn
LHt9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCitQQVNTIGNyZWF0ZUVsZW0oJ3RpbWUnLHtk
YXRldGltZTondGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCitQQVNTIGNyZWF0ZUVs
ZW0oJ2Rpdicse30sJ3Rlc3QnKS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCitQQVNTIGNyZWF0
ZUVsZW0oJ21hZGV1cG9udGhlc3BvdCcse30sJ3Rlc3QnKS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxOC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTguaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTguaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0cyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IGJlIG51bGwgaWYgdGhlIGVsZW1lbnQgZG9lcyBu
b3QgaGF2ZSBhbiBpdGVtcHJvcCBhdHRyaWJ1dGU8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQ+CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW0oJ21ldGEnLHtjb250ZW50Oid0
ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW0oJ2F1
ZGlvJyx7c3JjOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91bGRCZVRydWUoImNy
ZWF0ZUVsZW0oJ2VtYmVkJyx7c3JjOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91
bGRCZVRydWUoImNyZWF0ZUVsZW0oJ2lmcmFtZScse3NyYzondGVzdCd9KS5pdGVtVmFsdWUgPT0g
bnVsbCIpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtKCdpbWcnLHtzcmM6J3Rlc3QnfSkuaXRl
bVZhbHVlID09IG51bGwiKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgnc291cmNlJyx7c3Jj
Oid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW0o
J3RyYWNrJyx7c3JjOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91bGRCZVRydWUo
ImNyZWF0ZUVsZW0oJ3ZpZGVvJyx7c3JjOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7Citz
aG91bGRCZVRydWUoImNyZWF0ZUVsZW0oJ2EnLHtocmVmOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBu
dWxsIik7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW0oJ2FyZWEnLHtocmVmOid0ZXN0J30pLml0
ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW0oJ2xpbmsnLHtocmVm
Oid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW0o
J29iamVjdCcse2RhdGE6J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK3Nob3VsZEJlVHJ1
ZSgiY3JlYXRlRWxlbSgndGltZScse30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91bGRCZVRy
dWUoImNyZWF0ZUVsZW0oJ3RpbWUnLHtkYXRldGltZTondGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVs
bCIpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtKCdkaXYnLHt9LCd0ZXN0JykuaXRlbVZhbHVl
ID09IG51bGwiKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgnbWFkZXVwb250aGVzcG90Jyx7
fSwndGVzdCcpLml0ZW1WYWx1ZSA9PSBudWxsIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhLzAxOS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxOS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE5LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3cml0aW5n
IHRvIGl0ZW1WYWx1ZSBtdXN0IHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBlcnJvciBpZiB0
aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFuIGl0ZW1wcm9wIGF0dHJpYnV0ZS4KKworUEFTUyBl
eGNlcHRpb25Db2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIKK1BBU1MgZXhj
ZXB0aW9uQ29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCitQQVNTIGV4Y2Vw
dGlvbkNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUgorUEFTUyBleGNlcHRp
b25Db2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIKK1BBU1MgZXhjZXB0aW9u
Q29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCitQQVNTIGV4Y2VwdGlvbkNv
ZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUgorUEFTUyBleGNlcHRpb25Db2Rl
IGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIKK1BBU1MgZXhjZXB0aW9uQ29kZSBp
cyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCitQQVNTIGV4Y2VwdGlvbkNvZGUgaXMg
RE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUgorUEFTUyBleGNlcHRpb25Db2RlIGlzIERP
TUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIKK1BBU1MgZXhjZXB0aW9uQ29kZSBpcyBET01F
eGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCitQQVNTIGV4Y2VwdGlvbkNvZGUgaXMgRE9NRXhj
ZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUgorUEFTUyBleGNlcHRpb25Db2RlIGlzIERPTUV4Y2Vw
dGlvbi5JTlZBTElEX0FDQ0VTU19FUlIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
MDE5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAx
OS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAx
OS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHdyaXRpbmcgdG8gaXRlbVZh
bHVlIG11c3QgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGVycm9yIGlmIHRoZSBlbGVtZW50
IGRvZXMgbm90IGhhdmUgYW4gaXRlbXByb3AgYXR0cmlidXRlLjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QodGFnTmFtZSkKK3sKKyAgICB0
ZXN0RWxlbWVudCA9IGNyZWF0ZUVsZW0odGFnTmFtZSx7Y29udGVudDondGVzdENvbnRlbnQnfSk7
CisgICAgdHJ5IHsKKyAgICAgICAgdGVzdEVsZW1lbnQuaXRlbVZhbHVlID0gJ3Rlc3QnCisgICAg
fWNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbkNvZGUgPSBlLmNvZGU7CisgICAgfQorICAg
IHNob3VsZEJlKCdleGNlcHRpb25Db2RlJywgJ0RPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19F
UlInKTsKK30KKworcnVuVGVzdCgnbWV0YScpOworcnVuVGVzdCgnYXVkaW8nKTsKK3J1blRlc3Qo
J2VtYmVkJyk7CitydW5UZXN0KCdpZnJhbWUnKTsKK3J1blRlc3QoJ2ltZycpOworcnVuVGVzdCgn
c291cmNlJyk7CitydW5UZXN0KCd0cmFjaycpOworcnVuVGVzdCgndmlkZW8nKTsKK3J1blRlc3Qo
J2EnKTsKK3J1blRlc3QoJ2FyZWEnKTsKK3J1blRlc3QoJ2xpbmsnKTsKK3J1blRlc3QoJ29iamVj
dCcpOworcnVuVGVzdCgnZGl2Jyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAyMC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAyMC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3cml0aW5nIHRvIGl0ZW1W
YWx1ZSBtdXN0IHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBlcnJvciBpZiB0aGUgZWxlbWVu
dCBkb2VzIG5vdCBoYXZlIGFuIGl0ZW1wcm9wIGF0dHJpYnV0ZS4KKworUEFTUyB0ZXN0RWxlbWVu
dC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlz
IHRlc3RFbGVtZW50CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAor
UEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKK1BBU1MgdGVzdEVsZW1l
bnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBp
cyB0ZXN0RWxlbWVudAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQK
K1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CitQQVNTIHRlc3RFbGVt
ZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUg
aXMgdGVzdEVsZW1lbnQKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50
CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorUEFTUyB0ZXN0RWxl
bWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDIwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhLzAyMC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhLzAyMC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNv
bW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVz
IHRoYXQgd3JpdGluZyB0byBpdGVtVmFsdWUgbXVzdCB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19F
UlIgZXJyb3IgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBpdGVtcHJvcCBhdHRyaWJ1
dGUuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHRlc3RFbGVt
ZW50OworZnVuY3Rpb24gcnVuVGVzdCh0YWdOYW1lKSB7CisgICAgdGVzdEVsZW1lbnQgPSBjcmVh
dGVFbGVtKHRhZ05hbWUse2l0ZW1zY29wZTonaXRlbXNjb3BlJyxpdGVtcHJvcDonZm9vJyxjb250
ZW50Oid0ZXN0J30pOworICAgIHNob3VsZEJlKCJ0ZXN0RWxlbWVudC5pdGVtVmFsdWUiLCAidGVz
dEVsZW1lbnQiKTsKK30KKworcnVuVGVzdCgnbWV0YScpOworcnVuVGVzdCgnYXVkaW8nKTsKK3J1
blRlc3QoJ2VtYmVkJyk7CitydW5UZXN0KCdpZnJhbWUnKTsKK3J1blRlc3QoJ2ltZycpOworcnVu
VGVzdCgnc291cmNlJyk7CitydW5UZXN0KCd0cmFjaycpOworcnVuVGVzdCgndmlkZW8nKTsKK3J1
blRlc3QoJ2EnKTsKK3J1blRlc3QoJ2FyZWEnKTsKK3J1blRlc3QoJ2xpbmsnKTsKK3J1blRlc3Qo
J29iamVjdCcpOworcnVuVGVzdCgnZGl2Jyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAyMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIxLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw5IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1ZSBt
dXN0IHJlZmxlY3QgdGhlIGNvbnRlbnQgYXR0cmlidXRlIG9uIG1ldGEgZWxlbWVudC4KKworUEFT
UyBtZXRhRWxlbWVudC5pdGVtVmFsdWUgaXMgJ3Rlc3QnCitQQVNTIG1ldGFFbGVtZW50Lml0ZW1W
YWx1ZSBpcyAncmV0ZXN0JworUEFTUyBtZXRhRWxlbWVudC5jb250ZW50IGlzICdiYXInCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyMS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2Rh
dGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVu
c3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBv
biBtZXRhIGVsZW1lbnQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
dmFyIG1ldGFFbGVtZW50ID0gY3JlYXRlRWxlbSgnbWV0YScse2l0ZW1wcm9wOidmb28nLGNvbnRl
bnQ6J3Rlc3QnfSk7CitzaG91bGRCZSgnbWV0YUVsZW1lbnQuaXRlbVZhbHVlJywgIid0ZXN0JyIp
OworbWV0YUVsZW1lbnQuY29udGVudCA9ICdyZXRlc3QnOworc2hvdWxkQmUoJ21ldGFFbGVtZW50
Lml0ZW1WYWx1ZScsICIncmV0ZXN0JyIpOworbWV0YUVsZW1lbnQuaXRlbVZhbHVlID0gJ2Jhcic7
CitzaG91bGRCZSgnbWV0YUVsZW1lbnQuY29udGVudCcsICInYmFyJyIpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWwKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjItZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyMi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKK1RoaXMgdGVzdCBlbnN1cmVz
IHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgc3JjIGF0dHJpYnV0ZSBpZiB0aGUgZWxl
bWVudCBpcyBhbiBhdWRpbywgZW1iZWQsIGlmcmFtZSwgc291cmNlLCB0cmFjaywgb3IgdmlkZW8g
ZWxlbWVudC4KKworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxl
Lm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUubmV0
LycKK1BBU1MgdGVzdEVsZW1lbnQuc3JjIGlzICdodHRwOi8vZXhhbXBsZS5jb20vJworUEFTUyB0
ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNTIHRlc3RF
bGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUubmV0LycKK1BBU1MgdGVzdEVsZW1l
bnQuc3JjIGlzICdodHRwOi8vZXhhbXBsZS5jb20vJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFs
dWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBp
cyAnaHR0cDovL2V4YW1wbGUubmV0LycKK1BBU1MgdGVzdEVsZW1lbnQuc3JjIGlzICdodHRwOi8v
ZXhhbXBsZS5jb20vJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFt
cGxlLm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUu
bmV0LycKK1BBU1MgdGVzdEVsZW1lbnQuc3JjIGlzICdodHRwOi8vZXhhbXBsZS5jb20vJworUEFT
UyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNTIHRl
c3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUubmV0LycKK1BBU1MgdGVzdEVs
ZW1lbnQuc3JjIGlzICdodHRwOi8vZXhhbXBsZS5jb20vJworUEFTUyB0ZXN0RWxlbWVudC5pdGVt
VmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1
ZSBpcyAnaHR0cDovL2V4YW1wbGUubmV0LycKK1BBU1MgdGVzdEVsZW1lbnQuc3JjIGlzICdodHRw
Oi8vZXhhbXBsZS5jb20vJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIyLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIyLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0
aGUgc3JjIGF0dHJpYnV0ZSBpZiB0aGUgZWxlbWVudCBpcyBhbiBhdWRpbywgZW1iZWQsIGlmcmFt
ZSwgc291cmNlLCB0cmFjaywgb3IgdmlkZW8gZWxlbWVudC48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgdGVzdEVsZW1lbnQ7CitmdW5jdGlvbiBydW5UZXN0KHRh
Z05hbWUpCit7CisgICAgdGVzdEVsZW1lbnQgPSBjcmVhdGVFbGVtKHRhZ05hbWUse2l0ZW1wcm9w
Oidmb28nLHNyYzonaHR0cDovL2V4YW1wbGUub3JnLyd9KTsKKyAgICBzaG91bGRCZSgidGVzdEVs
ZW1lbnQuaXRlbVZhbHVlIiwgIidodHRwOi8vZXhhbXBsZS5vcmcvJyIpOworICAgIHRlc3RFbGVt
ZW50LnNyYyA9ICdodHRwOi8vZXhhbXBsZS5uZXQvJzsKKyAgICBzaG91bGRCZSgidGVzdEVsZW1l
bnQuaXRlbVZhbHVlIiwgIidodHRwOi8vZXhhbXBsZS5uZXQvJyIpOworICAgIHRlc3RFbGVtZW50
Lml0ZW1WYWx1ZSA9ICdodHRwOi8vZXhhbXBsZS5jb20vJzsKKyAgICBzaG91bGRCZSgidGVzdEVs
ZW1lbnQuc3JjIiwgIidodHRwOi8vZXhhbXBsZS5jb20vJyIpOworfQorCitydW5UZXN0KCdhdWRp
bycpOworcnVuVGVzdCgnZW1iZWQnKTsKK3J1blRlc3QoJ2lmcmFtZScpOworcnVuVGVzdCgnc291
cmNlJyk7CitydW5UZXN0KCd0cmFjaycpOworcnVuVGVzdCgndmlkZW8nKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBlbnN1cmVz
IHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgc3JjIGF0dHJpYnV0ZSBvbiBpbWcgZWxl
bWVudC4KKworUEFTUyBpbWdFbGVtZW50Lml0ZW1WYWx1ZSBpcyBpbWdFbGVtZW50LnNyYworUEFT
UyBpbWdFbGVtZW50Lml0ZW1WYWx1ZSBpcyBpbWdFbGVtZW50LnNyYworUEFTUyBpbWdFbGVtZW50
LnNyYyBpcyBpbWdFbGVtZW50Lml0ZW1WYWx1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS8wMjMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvMDIzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvMDIzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11
c3QgcmVmbGVjdCB0aGUgc3JjIGF0dHJpYnV0ZSBvbiBpbWcgZWxlbWVudC48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgaW1nRWxlbWVudCA9IGNyZWF0ZUVsZW0o
J2ltZycse2l0ZW1wcm9wOidmb28nLHNyYzonZ3JlZW4uanBnJ30pOworc2hvdWxkQmUoJ2ltZ0Vs
ZW1lbnQuaXRlbVZhbHVlJywgJ2ltZ0VsZW1lbnQuc3JjJyk7CitpbWdFbGVtZW50LnNyYyA9ICdy
ZWQuanBnJzsKK3Nob3VsZEJlKCdpbWdFbGVtZW50Lml0ZW1WYWx1ZScsICJpbWdFbGVtZW50LnNy
YyIpOworaW1nRWxlbWVudC5pdGVtVmFsdWUgPSAnYmx1ZS5qcGVnJzsKK3Nob3VsZEJlKCdpbWdF
bGVtZW50LnNyYycsICJpbWdFbGVtZW50Lml0ZW1WYWx1ZSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWwKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyNC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQg
aXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgaHJlZiBhdHRyaWJ1dGUgaWYgdGhlIGVsZW1lbnQg
aXMgYW4gYSwgYXJlYSwgb3IgbGluayBlbGVtZW50LgorCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1W
YWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVl
IGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5ocmVmIGlzICdodHRw
Oi8vZXhhbXBsZS5jb20vJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9l
eGFtcGxlLm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1w
bGUubmV0LycKK1BBU1MgdGVzdEVsZW1lbnQuaHJlZiBpcyAnaHR0cDovL2V4YW1wbGUuY29tLycK
K1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5vcmcvJworUEFT
UyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIHRl
c3RFbGVtZW50LmhyZWYgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAyNC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMjQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMjQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBp
dGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBocmVmIGF0dHJpYnV0ZSBpZiB0aGUgZWxlbWVudCBp
cyBhbiBhLCBhcmVhLCBvciBsaW5rIGVsZW1lbnQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgordmFyIHRlc3RFbGVtZW50OworZnVuY3Rpb24gcnVuVGVzdCh0YWdOYW1l
KQoreworICAgIHRlc3RFbGVtZW50ID0gY3JlYXRlRWxlbSh0YWdOYW1lLHtpdGVtcHJvcDonZm9v
JyxocmVmOidodHRwOi8vZXhhbXBsZS5vcmcvJ30pOworICAgIHNob3VsZEJlKCJ0ZXN0RWxlbWVu
dC5pdGVtVmFsdWUiLCAiJ2h0dHA6Ly9leGFtcGxlLm9yZy8nIik7CisgICAgdGVzdEVsZW1lbnQu
aHJlZiA9ICdodHRwOi8vZXhhbXBsZS5uZXQvJzsKKyAgICBzaG91bGRCZSgidGVzdEVsZW1lbnQu
aXRlbVZhbHVlIiwgIidodHRwOi8vZXhhbXBsZS5uZXQvJyIpOworICAgIHRlc3RFbGVtZW50Lml0
ZW1WYWx1ZSA9ICdodHRwOi8vZXhhbXBsZS5jb20vJzsKKyAgICBzaG91bGRCZSgidGVzdEVsZW1l
bnQuaHJlZiIsICInaHR0cDovL2V4YW1wbGUuY29tLyciKTsKK30KKworcnVuVGVzdCgnYScpOwor
cnVuVGVzdCgnYXJlYScpOworcnVuVGVzdCgnbGluaycpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWwKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjUtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyNS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVt
VmFsdWUgbXVzdCByZWZsZWN0IHRoZSBkYXRhIGF0dHJpYnV0ZSBvbiBvYmplY3QgZWxlbWVudC4K
KworUEFTUyBvYmplY3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycK
K1BBU1Mgb2JqZWN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQ
QVNTIG9iamVjdEVsZW1lbnQuZGF0YSBpcyAnaHR0cDovL2V4YW1wbGUuY29tLycKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDI1Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhLzAyNS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhLzAyNS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIy
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1j
b21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJl
cyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IHJlZmxlY3QgdGhlIGRhdGEgYXR0cmlidXRlIG9uIG9iamVj
dCBlbGVtZW50LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBv
YmplY3RFbGVtZW50ID0gY3JlYXRlRWxlbSgnb2JqZWN0Jyx7aXRlbXByb3A6J2ZvbycsZGF0YTon
aHR0cDovL2V4YW1wbGUub3JnLyd9KTsKK3Nob3VsZEJlKCdvYmplY3RFbGVtZW50Lml0ZW1WYWx1
ZScsICInaHR0cDovL2V4YW1wbGUub3JnLyciKTsKK29iamVjdEVsZW1lbnQuZGF0YSA9ICdodHRw
Oi8vZXhhbXBsZS5uZXQvJzsKK3Nob3VsZEJlKCdvYmplY3RFbGVtZW50Lml0ZW1WYWx1ZScsICIn
aHR0cDovL2V4YW1wbGUubmV0LyciKTsKK29iamVjdEVsZW1lbnQuaXRlbVZhbHVlID0gJ2h0dHA6
Ly9leGFtcGxlLmNvbS8nOworc2hvdWxkQmUoJ29iamVjdEVsZW1lbnQuZGF0YScsICInaHR0cDov
L2V4YW1wbGUuY29tLyciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZAkocmV2aXNpb24gOTc2MDYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtMTY4Niw0ICsxNjg2LDQgQEAgaHR0cC90ZXN0cy9sb2NhbC9maWxl
YXBpL3NlbmQtc2xpY2VkLWRyYQogaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtaHlicmlkLWJs
b2IuaHRtbAogCiAjIE1pY3JvZGF0YSBET00gQVBJIGlzIG5vdCB5ZXQgZW5hYmxlZC4KLWZhc3Qv
ZG9tL01pY3JvRGF0YQorI2Zhc3QvZG9tL01pY3JvRGF0YQo=
</data>
<flag name="commit-queue"
          id="109025"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111248</attachid>
            <date>2011-10-17 05:26:29 -0700</date>
            <delta_ts>2011-10-18 10:09:14 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_69839_updated.diff</filename>
            <type>text/plain</type>
            <size>69021</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTE5IEBACisyMDExLTEwLTE3ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEFkZCBpdGVtcHJv
cCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvMDEwLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMTEuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAxMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9NaWNyb0RhdGEvMDEzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8w
MTQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAxNS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDE2Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL01pY3JvRGF0YS8wMTcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9E
YXRhLzAxOC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDE5Lmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMjAuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kb20vTWljcm9EYXRhLzAyMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9N
aWNyb0RhdGEvMDIyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMjMu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAyNC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvMDI1Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgIChXZWJDb3JlOjpKU0hU
TUxFbGVtZW50OjppdGVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRWxlbWVudDo6
c2V0SXRlbVZhbHVlKToKKyAgICAgICAgKiBkb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEFuY2hvckVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFu
Y2hvckVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBcmVhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEFyZWFFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1s
L0hUTUxBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmlu
OgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxF
bGVtZW50OjppdGVtUHJvcCk6IFJldHVybnMgZWxlbWVudCdzIGl0ZW1wcm9wIGNvbnRlbnQgYXR0
cmlidXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6Oml0ZW1Qcm9wU2V0VG9rZW4p
OiBTZXRzIGl0ZW1wcm9wIHZhbHVlIG9uIGNoYW5naW5nIGVsZW1ldCdzCisgICAgICAgIGl0ZW1w
cm9wIGF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjppdGVtUmVmKTog
UmV0dXJucyBlbGVtZW50J3MgaXRlbXJlZiBjb250ZW50IGF0dHJpYnV0ZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxFbGVtZW50OjppdGVtUmVmU2V0VG9rZW4pOiBTZXRzIGl0ZW1yZWYgdmFsdWUg
b24gY2hhbmdpbmcgZWxlbWV0J3MKKyAgICAgICAgaXRlbXJlZiBhdHRyaWJ1dGUuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0SXRlbVZhbHVlKTogU2V0cyBlbGVtZW50J3MgaXRl
bXZhbHVlLiBJZiB0aGUgZWxlbWVudCBoYXMgbm8KKyAgICAgICAgaXRlbXByb3AgYXR0cmlidXRl
IG9yIGlmIGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUsIGl0IHRocm93cyBJTlZB
TElEX0FDQ0VTU19FUlIKKyAgICAgICAgZXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6Oml0ZW1WYWx1ZSk6IFJldHVybnMgdGhlIGVsZW1lbnRzIGl0ZW12YWx1ZS4KKwor
ICAgICAgICBJZiB0aGUgZWxlbWVudCBoYXMgbm8gaXRlbXByb3AgYXR0cmlidXRlIGl0IHJldHVy
bnMgbnVsbC4KKyAgICAgICAgSWYgdGhlIGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1
dGUsIGl0IHJldHVybnMgdGhlIGVsZW1lbnQgaXRzZWxmLgorICAgICAgICBJZiB0aGUgZWxlbWVu
dCBpcyBhIG1ldGEgZWxlbWVudDogSXQgYWN0cyBhcyBpdCB3b3VsZCBpZiBpdCB3YXMgcmVmbGVj
dGluZyB0aGUgZWxlbWVudCdzCisgICAgICAgIGNvbnRlbnQgY29udGVudCBhdHRyaWJ1dGUuCisg
ICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGFuIGF1ZGlvLCBlbWJlZCwgaWZyYW1lLCBpbWcsIHNv
dXJjZSwgdHJhY2ssIG9yIHZpZGVvIGVsZW1lbnQ6IEl0IGFjdHMKKyAgICAgICAgYXMgaXQgd291
bGQgaWYgaXQgd2FzIHJlZmxlY3RpbmcgdGhlIGVsZW1lbnQncyBzcmMgY29udGVudCBhdHRyaWJ1
dGUuCisgICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGFuIGEsIGFyZWEsIG9yIGxpbmsgZWxlbWVu
dDogSXQgYWN0IGFzIGl0IHdvdWxkIGlmIGl0IHdhcyByZWZsZWN0aW5nIHRoZQorICAgICAgICBo
cmVmIGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBhbiBvYmpl
Y3QgZWxlbWVudDogSXQgYWN0cyBhcyAgaXQgd291bGQgaWYgaXQgd2FzIHJlZmxlY3RpbmcgdGhl
IGVsZW1lbnQncworICAgICAgICBkYXRhIGNvbnRlbnQgYXR0cmlidXRlLgorCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRN
TEVtYmVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50Ojpp
dGVtVmFsdWVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OnNldEl0
ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElG
cmFtZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFt
ZUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1s
L0hUTUxJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAg
ICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjppdGVtVmFsdWVU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRl
eHQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTE1ldGFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRhRWxlbWVudDo6
aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6OnNldEl0
ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2Jq
ZWN0RWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0
RWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNvdXJjZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNvdXJjZUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToK
KyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL01pY3Jv
RGF0YUl0ZW1WYWx1ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRl
bVZhbHVlOjpNaWNyb0RhdGFJdGVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRh
SXRlbVZhbHVlOjpjcmVhdGVGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0
YUl0ZW1WYWx1ZTo6Y3JlYXRlRnJvbU5vZGUpOgorICAgICAgICAqIGh0bWwvTWljcm9EYXRhSXRl
bVZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZhbHVlOjpp
c05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZhbHVlOjpnZXROb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1WYWx1ZTo6Z2V0U3RyaW5nKToKKwogMjAx
MS0xMC0xNyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEVkaXRpbmcgQ1NTIHNlbGVjdG9yIGRvZXNuJ3QgZmlyZSBvblJl
c291cmNlQ29udGVudENvbW1pdHRlZApJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTc5Miw2ICs3OTIsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9MYWJlbHNO
b2RlTGlzdC5jcHAKICAgICBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCiAgICAgaHRtbC9NZWRp
YURvY3VtZW50LmNwcAorICAgIGh0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmNwcAogICAgIGh0bWwv
TW9udGhJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCiAgICAgaHRt
bC9QYXNzd29yZElucHV0VHlwZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CSh3b3JraW5nIGNvcHkpCkBAIC0xODM5LDYgKzE4MzksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFEb2N1bWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRXJy
b3IuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJhY2suY3BwIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC01NTUzLDYgKzU1NTMsOCBAQAogICAgICAg
ICAgICAgJ2h0bWwvTWVkaWFEb2N1bWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFE
b2N1bWVudC5oJywKICAgICAgICAgICAgICdodG1sL01lZGlhRXJyb3IuaCcsCisgICAgICAgICAg
ICAnaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwJywKKyAgICAgICAgICAgICdodG1sL01pY3Jv
RGF0YUl0ZW1WYWx1ZS5oJywKICAgICAgICAgICAgICdodG1sL011dGFibGVUZXh0VHJhY2suY3Bw
JywKICAgICAgICAgICAgICdodG1sL011dGFibGVUZXh0VHJhY2suaCcsCiAgICAgICAgICAgICAn
aHRtbC9Nb250aElucHV0VHlwZS5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDk3
NjA2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTc1
Nyw2ICs3NTcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL0xhYmVsc05vZGVMaXN0LmNwcCBc
CiAgICAgaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcCBcCiAgICAgaHRtbC9NZWRpYURvY3VtZW50
LmNwcCBcCisgICAgaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwIFwKICAgICBodG1sL01vbnRo
SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIFwKICAgICBodG1s
L1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBcCkBAIC0xNzk1LDYgKzE3OTYsNyBAQCBIRUFERVJTICs9
IFwKICAgICBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuaCBcCiAgICAgaHRtbC9Mb2FkYWJsZVRleHRU
cmFjay5oIFwKICAgICBodG1sL01lZGlhRG9jdW1lbnQuaCBcCisgICAgaHRtbC9NaWNyb0RhdGFJ
dGVtVmFsdWUuaCBcCiAgICAgaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmggXAogICAgIGh0bWwvUGx1
Z2luRG9jdW1lbnQuaCBcCiAgICAgaHRtbC9TdGVwUmFuZ2UuaCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gOTc2MDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtNTgyOTAsNiArNTgyOTAsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxNaWNyb0RhdGFJdGVtVmFsdWUuY3BwIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXE1pY3Jv
RGF0YUl0ZW1WYWx1ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxmaWxlYXBpXE1ldGFkYXRhLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5j
cHAJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
RWxlbWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwyNSBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAorI2lmIEVO
QUJMRShNSUNST0RBVEEpCitzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTWljcm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFs
dWUpCit7CisgICAgaWYgKCFpdGVtVmFsdWUpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKyAg
ICBpZiAoaXRlbVZhbHVlLT5pc05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBpdGVtVmFsdWUtPmdldE5vZGUoKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGV4
ZWMsIGl0ZW1WYWx1ZS0+Z2V0U3RyaW5nKCkpOworfQorI2VuZGlmCisKIFNjb3BlQ2hhaW5Ob2Rl
KiBKU0hUTUxFbGVtZW50OjpwdXNoRXZlbnRIYW5kbGVyU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBT
Y29wZUNoYWluTm9kZSogc2NvcGUpIGNvbnN0CiB7CiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQg
PSBpbXBsKCk7CkBAIC00OCw0ICs2MywyMCBAQCBTY29wZUNoYWluTm9kZSogSlNIVE1MRWxlbWVu
dDo6cHVzaEV2ZW50CiAgICAgcmV0dXJuIHNjb3BlLT5wdXNoKGFzT2JqZWN0KHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0KCksIGVsZW1lbnQpKSk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQor
SlNWYWx1ZSBKU0hUTUxFbGVtZW50OjppdGVtVmFsdWUoRXhlY1N0YXRlKiBleGVjKSBjb25zdAor
eworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaW1wbCgpOworICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihlbGVtZW50LT5pdGVtVmFsdWUoKSkpOwor
fQorCit2b2lkIEpTSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdmFsdWUpCit7CisgICAgSFRNTEVsZW1lbnQqIGltcCA9IGltcGwoKTsKKyAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKKyAgICBpbXAtPnNldEl0ZW1WYWx1ZSh2YWx1ZVRvU3RyaW5nV2l0
aE51bGxDaGVjayhleGVjLCB2YWx1ZSksIGVjKTsKKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
ZWMpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNwcAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MiwxMCArMzIsMTAgQEAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKIE1pY3JvRGF0YUl0ZW1MaXN0OjpN
aWNyb0RhdGFJdGVtTGlzdChQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCBjb25zdCBTdHJpbmcm
IHR5cGVOYW1lcykKICAgICA6IER5bmFtaWNOb2RlTGlzdChyb290Tm9kZSkKICAgICAsIG1fdHlw
ZU5hbWVzKHR5cGVOYW1lcywgbV9yb290Tm9kZS0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkocmV2aXNp
b24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTg2LDQgKzU4NiwxNiBAQCB2b2lkIGhhbmRsZUxpbmtDbGljayhF
dmVudCogZXZlbnQsIERvY3VtCiAgICAgZnJhbWUtPmxvYWRlcigpLT51cmxTZWxlY3RlZChkb2N1
bWVudC0+Y29tcGxldGVVUkwodXJsKSwgdGFyZ2V0LCBldmVudCwgZmFsc2UsIGZhbHNlLCBoaWRl
UmVmZXJyZXIgPyBOb1JlZmVycmVyIDogU2VuZFJlZmVycmVyKTsKIH0KIAorI2lmIEVOQUJMRShN
SUNST0RBVEEpCitTdHJpbmcgSFRNTEFuY2hvckVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25z
dAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoaHJlZkF0dHIpOworfQorCit2b2lkIEhU
TUxBbmNob3JFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShocmVmQXR0ciwgdmFsdWUsIGVj
KTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5oCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYgKzEyNSwxMSBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyBFdmVudFR5cGUgZXZlbnRUeXBlKEV2ZW50Kik7CiAgICAgYm9vbCB0cmVhdExp
bmtBc0xpdmVGb3JFdmVudFR5cGUoRXZlbnRUeXBlKSBjb25zdDsKIAorI2lmIEVOQUJMRShNSUNS
T0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKKyNlbmRpZgorCiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcm9vdEVkaXRhYmxlRWxlbWVudEZv
clNlbGVjdGlvbk9uTW91c2VEb3duOwogICAgIGJvb2wgbV93YXNTaGlmdEtleURvd25Pbk1vdXNl
RG93biA6IDE7CiAgICAgdWludDMyX3QgbV9saW5rUmVsYXRpb25zIDogMzE7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NzYwNikKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQ2LDQgKzI0NiwxNiBAQCBTdHJpbmcgSFRNTEFyZWFFbGVtZW50Ojp0YXJnZXQoKSBjb25zdAog
ICAgIHJldHVybiBnZXRBdHRyaWJ1dGUodGFyZ2V0QXR0cik7CiB9CiAKKyNpZiBFTkFCTEUoTUlD
Uk9EQVRBKQorU3RyaW5nIEhUTUxBcmVhRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShocmVmQXR0cik7Cit9CisKK3ZvaWQgSFRNTEFy
ZWFFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShocmVmQXR0ciwgdmFsdWUsIGVjKTsKK30K
KyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgJKHJl
dmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNGb2N1c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXNBcHBl
YXJhbmNlKGJvb2wgLypyZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24qLyk7CiAgICAgdmlydHVhbCB2
b2lkIHNldEZvY3VzKGJvb2wpOwotICAgIAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2
aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNl
dEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlmCisK
ICAgICBlbnVtIFNoYXBlIHsgRGVmYXVsdCwgUG9seSwgUmVjdCwgQ2lyY2xlLCBVbmtub3duIH07
CiAgICAgUGF0aCBnZXRSZWdpb24oY29uc3QgTGF5b3V0U2l6ZSYpIGNvbnN0OwogICAgIHZvaWQg
aW52YWxpZGF0ZUNhY2hlZFJlZ2lvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4JKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsNyBA
QCBpbmRldGVybWluYXRlCiBpc21hcAogaXRlbWlkCiBpdGVtcHJvcAoraXRlbXJlZgogaXRlbXNj
b3BlCiBpdGVtdHlwZQoga2V5dHlwZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDkgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuaCIKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIk1pY3Jv
RGF0YUl0ZW1WYWx1ZS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUmVuZGVyV29yZEJyZWFrLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBA
IC0xOTYsNiArMTk5LDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KEEKICAgICAgICAgfSBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZhbHNlIikp
CiAgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJE
cmFnLCBDU1NWYWx1ZU5vbmUpOwogI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgfSBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gaXRlbXByb3BBdHRyKSB7CisgICAgICAgIGl0ZW1Qcm9wU2V0VG9r
ZW4oYXR0ci0+dmFsdWUoKSk7CisgICAgfSAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGl0ZW1y
ZWZBdHRyKSB7CisgICAgICAgIGl0ZW1SZWZTZXRUb2tlbihhdHRyLT52YWx1ZSgpKTsKICAgICB9
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBpdGVtdHlwZUF0dHIpIHsKICAgICAgICAgaXRlbVR5
cGVBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAjZW5kaWYKQEAgLTk3NSw2ICs5ODIsNzEgQEAgdm9pZCBI
VE1MRWxlbWVudDo6YWRqdXN0RGlyZWN0aW9uYWxpdHlJZgogICAgIH0KIH0KIAorI2lmIEVOQUJM
RShNSUNST0RBVEEpCitQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVu
dDo6aXRlbVByb3AoKSBjb25zdAoreworICAgIGlmICghbV9pdGVtUHJvcCkKKyAgICAgICAgbV9p
dGVtUHJvcCA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgIHJldHVybiBt
X2l0ZW1Qcm9wOworfQorCit2b2lkIEhUTUxFbGVtZW50OjppdGVtUHJvcFNldFRva2VuKGNvbnN0
IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX2l0ZW1Qcm9wKQorICAgICAgICBtX2l0ZW1Q
cm9wID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgbV9pdGVtUHJvcC0+
c2V0VmFsdWUodmFsdWUpOworfQorCitQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBI
VE1MRWxlbWVudDo6aXRlbVJlZigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2l0ZW1SZWYpCisgICAg
ICAgIG1faXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgIHJl
dHVybiBtX2l0ZW1SZWY7Cit9CisKK3ZvaWQgSFRNTEVsZW1lbnQ6Oml0ZW1SZWZTZXRUb2tlbihj
b25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9pdGVtUmVmKQorICAgICAgICBtX2l0
ZW1SZWYgPSBET01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKCk7CisKKyAgICBtX2l0ZW1SZWYt
PnNldFZhbHVlKHZhbHVlKTsKK30KKwordm9pZCBIVE1MRWxlbWVudDo6c2V0SXRlbVZhbHVlKGNv
bnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghaGFzQXR0
cmlidXRlKGl0ZW1wcm9wQXR0cikgfHwgaGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpKSB7Cisg
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgc2V0SXRlbVZhbHVlVGV4dCh2YWx1ZSwgZWMpOworfQorCitQYXNzUmVmUHRyPE1pY3Jv
RGF0YUl0ZW1WYWx1ZT4gSFRNTEVsZW1lbnQ6Oml0ZW1WYWx1ZSgpIGNvbnN0Cit7CisgICAgaWYg
KCFoYXNBdHRyaWJ1dGUoaXRlbXByb3BBdHRyKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBp
ZiAoaGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpKQorICAgICAgICByZXR1cm4gTWljcm9EYXRh
SXRlbVZhbHVlOjpjcmVhdGVGcm9tTm9kZShjb25zdF9jYXN0PEhUTUxFbGVtZW50KiBjb25zdD4o
dGhpcykpOworCisgICAgcmV0dXJuIE1pY3JvRGF0YUl0ZW1WYWx1ZTo6Y3JlYXRlRnJvbVN0cmlu
ZyhpdGVtVmFsdWVUZXh0KCkpOworfQorCitTdHJpbmcgSFRNTEVsZW1lbnQ6Oml0ZW1WYWx1ZVRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiB0ZXh0Q29udGVudCh0cnVlKTsKK30KKwordm9pZCBI
VE1MRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBzZXRUZXh0Q29udGVudCh2YWx1ZSwgZWMpOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmbmRlZiBOREVCVUcKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMiArMjUsMjAgQEAKIAog
I2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5j
bHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBIVE1MQ29sbGVjdGlvbjsKIGNs
YXNzIEhUTUxGb3JtRWxlbWVudDsKLSAgICAgICAgICAgICAgICAgICAgICAgCisKKyNpZiBFTkFC
TEUoTUlDUk9EQVRBKQorY2xhc3MgTWljcm9EYXRhSXRlbVZhbHVlOworI2VuZGlmCisKIGNsYXNz
IEhUTUxFbGVtZW50IDogcHVibGljIFN0eWxlZEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqKTsKQEAgLTgxLDYgKzg5LDE0IEBAIHB1YmxpYzoKIAogICAgIFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uYWxpdHlJZmhhc0RpckF1dG9BdHRyaWJ1dGUoYm9vbCYgaXNBdXRv
KSBjb25zdDsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgUGFzc1JlZlB0cjxET01TZXR0
YWJsZVRva2VuTGlzdD4gaXRlbVJlZigpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8RE9NU2V0dGFi
bGVUb2tlbkxpc3Q+IGl0ZW1Qcm9wKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldEl0ZW1WYWx1ZShj
b25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxNaWNyb0RhdGFJ
dGVtVmFsdWU+IGl0ZW1WYWx1ZSgpIGNvbnN0OworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBI
VE1MRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCkBA
IC0xMDcsNiArMTIzLDE3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3REaXJlY3Rpb25hbGl0
eUlmTmVlZGVkQWZ0ZXJDaGlsZEF0dHJpYnV0ZUNoYW5nZWQoRWxlbWVudCogY2hpbGQpOwogICAg
IHZvaWQgYWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRyZW5DaGFuZ2VkKE5v
ZGUqIGJlZm9yZUNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSk7CiAgICAgVGV4dERpcmVjdGlv
biBkaXJlY3Rpb25hbGl0eShOb2RlKiogc3Ryb25nRGlyZWN0aW9uYWxpdHlUZXh0Tm9kZT0gMCkg
Y29uc3Q7CisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZvaWQgaXRlbVByb3BTZXRUb2tl
bihjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGl0ZW1SZWZTZXRUb2tlbihjb25zdCBTdHJpbmcm
KTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
CisKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtUHJvcDsK
KyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtUmVmOworI2Vu
ZGlmCiB9OwogCiBpbmxpbmUgSFRNTEVsZW1lbnQqIHRvSFRNTEVsZW1lbnQoTm9kZSogbm9kZSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCShyZXZpc2lvbiA5NzYwNikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC03
MCw2ICs3MCwxMiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBET01TdHJpbmcgaXRlbVR5cGU7CiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBE
T01TdHJpbmcgaXRlbUlkOwogCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9u
YWw9TUlDUk9EQVRBXSBET01TZXR0YWJsZVRva2VuTGlzdCBpdGVtUmVmOworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gRE9NU2V0dGFibGVUb2tlbkxp
c3QgaXRlbVByb3A7CisKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1J
Q1JPREFUQSwgQ3VzdG9tXSBjdXN0b20gaXRlbVZhbHVlCisgICAgICAgICAgICAgICAgICAgIHNl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNU
SVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgdGl0bGVEaXNwbGF5U3RyaW5nOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc3
LDQgKzI3NywxNiBAQCB2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OmFkZFN1YnJlc291cmNlQXR0CiAg
ICAgYWRkU3VicmVzb3VyY2VVUkwodXJscywgZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoZ2V0QXR0
cmlidXRlKHNyY0F0dHIpKSk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhU
TUxFbWJlZEVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRV
UkxBdHRyaWJ1dGUoc3JjQXR0cik7Cit9CisKK3ZvaWQgSFRNTEVtYmVkRWxlbWVudDo6c2V0SXRl
bVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBzZXRBdHRyaWJ1dGUoc3JjQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAkocmV2aXNpb24gOTc2MDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNTIsNiArNTIsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVzb3Vy
Y2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+JikgY29uc3Q7CiAKICAgICB2b2lkIHBh
cmFtZXRlcnNGb3JQbHVnaW4oVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIFZlY3RvcjxTdHJp
bmc+JiBwYXJhbVZhbHVlcyk7CisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwg
U3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZh
bHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYKIH07CiAKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCShyZXZpc2lv
biA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjMsNCArMTYzLDE2IEBAIGJvb2wgSFRNTElGcmFtZUVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKEEKICAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IHNyY0F0dHI7CiB9
CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxJRnJhbWVFbGVtZW50OjppdGVt
VmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNyY0F0dHIp
OworfQorCit2b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0
cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShzcmNB
dHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJRnJhbWVFbGVtZW50LmgJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxMSBA
QCBwcml2YXRlOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1
dGUqKSBjb25zdDsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcg
aXRlbVZhbHVlVGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0
KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgorCiAgICAgQXRvbWljU3Ry
aW5nIG1fbmFtZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAkocmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDMsNCArNDAzLDE2IEBAIGJvb2wgSFRN
TEltYWdlRWxlbWVudDo6aXNTZXJ2ZXJNYXAoKSBjb24KICAgICByZXR1cm4gZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHVzZW1hcCkpLmlz
RW1wdHkoKTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJpbmcgSFRNTEltYWdlRWxl
bWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0
ZShzcmNBdHRyKTsKK30KKwordm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0
KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJp
YnV0ZShzcmNBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNiAr
MTAyLDExIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9v
bCBkZWVwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCk7CiAK
KyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcm
LCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYKKwogICAgIEhUTUxJbWFnZUxvYWRlciBtX2ltYWdl
TG9hZGVyOwogICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOwogICAgIEF0b21pY1N0cmluZyBt
X25hbWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCShyZXZp
c2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDUzLDQgKzQ1MywxNiBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6
c2V0U2l6ZXMoY29uc3QgU3RyCiAgICAgbV9zaXplcy0+c2V0VmFsdWUodmFsdWUpOwogfQogCisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MTGlua0VsZW1lbnQ6Oml0ZW1WYWx1ZVRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoaHJlZkF0dHIpOworfQor
Cit2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZh
bHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoaHJlZkF0dHIsIHZh
bHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk0LDYg
Kzk0LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRQZW5kaW5nU2hlZXQoUGVuZGluZ1NoZWV0
VHlwZSk7CiAgICAgdm9pZCByZW1vdmVQZW5kaW5nU2hlZXQoKTsKIAorI2lmIEVOQUJMRShNSUNS
T0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIEhUTUxMaW5rRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24gOTc2MDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMDI1LDYgKzMwMjUsMTggQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogSFRNTE1lZGlhRWxlbWVu
dDo6YQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxNZWRp
YUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRy
aWJ1dGUoc3JjQXR0cik7Cit9CisKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0SXRlbVZhbHVl
VGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRB
dHRyaWJ1dGUoc3JjQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CiAKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDk3NjA2
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4MCw2ICszODAsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCogcHJl
RGlzcGF0Y2hFdmVudEhhbmRsZXIoRXZlbnQqKTsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisg
ICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9p
ZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRp
ZgorCiAgICAgVGltZXI8SFRNTE1lZGlhRWxlbWVudD4gbV9sb2FkVGltZXI7CiAgICAgVGltZXI8
SFRNTE1lZGlhRWxlbWVudD4gbV9hc3luY0V2ZW50VGltZXI7CiAgICAgVGltZXI8SFRNTE1lZGlh
RWxlbWVudD4gbV9wcm9ncmVzc0V2ZW50VGltZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZXRhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWV0YUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNCArOTQsMTYgQEAg
U3RyaW5nIEhUTUxNZXRhRWxlbWVudDo6bmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIGdldEF0dHJp
YnV0ZShuYW1lQXR0cik7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxN
ZXRhRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEF0dHJp
YnV0ZShjb250ZW50QXR0cik7Cit9CisKK3ZvaWQgSFRNTE1ldGFFbGVtZW50OjpzZXRJdGVtVmFs
dWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNl
dEF0dHJpYnV0ZShjb250ZW50QXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgJKHJldmlzaW9uIDk3NjA2KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDIsNiArNDIsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9j
dW1lbnQoKTsKIAogICAgIHZvaWQgcHJvY2VzcygpOworCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
KyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2
b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworI2Vu
ZGlmCisKIH07CiAKIH0gLy9uYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTQsNCArNTU0LDE2
IEBAIEhUTUxGb3JtRWxlbWVudCogSFRNTE9iamVjdEVsZW1lbnQ6OnZpcnQKICAgICByZXR1cm4g
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorU3RyaW5nIEhUTUxPYmplY3RFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKGRhdGFBdHRyKTsKK30KKwordm9pZCBIVE1MT2JqZWN0
RWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoZGF0YUF0dHIsIHZhbHVlLCBlYyk7Cit9Cisj
ZW5kaWYKKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAko
cmV2aXNpb24gOTc2MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw2ICsxMDIsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbE5hbWUoKSBjb25zdDsKIAorI2lm
IEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgorCiAgICAgQXRvbWljU3RyaW5nIG1faWQ7CiAgICAgU3Ry
aW5nIG1fY2xhc3NJZDsKICAgICBib29sIG1fZG9jTmFtZWRJdGVtIDogMTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NzYwNikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjEsNiArMTIxLDE4IEBAIGJvb2wgSFRNTFNvdXJjZUVsZW1lbnQ6OmlzVVJMQXR0cmli
dXRlKEEKICAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gc3JjQXR0cjsKIH0KIAorI2lm
IEVOQUJMRShNSUNST0RBVEEpCitTdHJpbmcgSFRNTFNvdXJjZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoc3JjQXR0cik7Cit9CisK
K3ZvaWQgSFRNTFNvdXJjZUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2
YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKHNyY0F0dHIsIHZh
bHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTb3VyY2VFbGVtZW50LmgJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSwx
MSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBlcnJvckV2ZW50VGltZXJGaXJlZChUaW1lcjxIVE1M
U291cmNlRWxlbWVudD4qKTsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBT
dHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFs
dWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgorCiAgICAgVGlt
ZXI8SFRNTFNvdXJjZUVsZW1lbnQ+IG1fZXJyb3JFdmVudFRpbWVyOwogfTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCShyZXZpc2lvbiA5NzYwNikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNyw2ICsxMzcsMTcgQEAgdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojpsb2FkKFNjcmlwdEV4
ZWN1dAogICAgICAgICBtX3RyYWNrLT5sb2FkKGdldE5vbkVtcHR5VVJMQXR0cmlidXRlKHNyY0F0
dHIpLCBjb250ZXh0KTsKIH0KIAorCitTdHJpbmcgSFRNTFRyYWNrRWxlbWVudDo6aXRlbVZhbHVl
VGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKK30K
Kwordm9pZCBIVE1MVHJhY2tFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYg
dmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShzcmNBdHRyLCB2
YWx1ZSwgZWMpOworfQorCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VHJhY2tFbGVtZW50LmgJKHJldmlzaW9uIDk3NjA2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDkgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZShib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFJlbW92ZSgpOwogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRy
aWJ1dGUqKSBjb25zdDsKKworICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgCiAgICAgUmVmUHRyPExvYWRhYmxlVGV4dFRyYWNrPiBtX3RyYWNr
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw
MTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIE1PQklMSVRZLCBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTCisgKiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBNT1RPUk9MQSBNT0JJTElUWSwgSU5DLiBPUiBJVFMKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisgKiBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorCisjaW5j
bHVkZSAiTm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitNaWNyb0RhdGFJdGVtVmFsdWU6
Ok1pY3JvRGF0YUl0ZW1WYWx1ZShTdHJpbmcgc3RyKQorICAgIDogbV90eXBlKFNUUklORykKKyAg
ICAsIG1fc3RyKHN0cikKK3sKK30KKworTWljcm9EYXRhSXRlbVZhbHVlOjpNaWNyb0RhdGFJdGVt
VmFsdWUoTm9kZSogbm9kZSkKKyAgICA6IG1fdHlwZShOT0RFKQorICAgICwgbV9ub2RlKG5vZGUp
Cit7Cit9CisKK1Bhc3NSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiBNaWNyb0RhdGFJdGVtVmFs
dWU6OmNyZWF0ZUZyb21TdHJpbmcoU3RyaW5nIHN0cikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1pY3JvRGF0YUl0ZW1WYWx1ZShzdHIpKTsKK30KKworUGFzc1JlZlB0cjxNaWNyb0RhdGFJ
dGVtVmFsdWU+IE1pY3JvRGF0YUl0ZW1WYWx1ZTo6Y3JlYXRlRnJvbU5vZGUoTm9kZSogbm9kZSkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1pY3JvRGF0YUl0ZW1WYWx1ZShub2RlKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xh
IE1vYmlsaXR5LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBNT0JJTElUWSwgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUworICogYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEg
TU9CSUxJVFksIElOQy4gT1IgSVRTCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOworICogT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNaWNyb0RhdGFJdGVtVmFsdWVfaAorI2RlZmluZSBN
aWNyb0RhdGFJdGVtVmFsdWVfaAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKworI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOb2RlOwor
CitjbGFzcyBNaWNyb0RhdGFJdGVtVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxNaWNyb0RhdGFJ
dGVtVmFsdWU+IHsKK3ByaXZhdGU6CisgICAgZW51bSBUeXBlIHtTVFJJTkcsIE5PREV9OworCitw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiBjcmVhdGVG
cm9tU3RyaW5nKFN0cmluZyk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWljcm9EYXRhSXRlbVZh
bHVlPiBjcmVhdGVGcm9tTm9kZShOb2RlKik7CisKKyAgICBib29sIGlzTm9kZSgpIHsgcmV0dXJu
IG1fdHlwZSA9PSBOT0RFOyB9CisgICAgTm9kZSogZ2V0Tm9kZSgpIHsgcmV0dXJuIG1fbm9kZTsg
fQorICAgIFN0cmluZyBnZXRTdHJpbmcoKSB7IHJldHVybiBtX3N0cjsgfQorCitwcml2YXRlOgor
ICAgIE1pY3JvRGF0YUl0ZW1WYWx1ZShTdHJpbmcpOworICAgIE1pY3JvRGF0YUl0ZW1WYWx1ZShO
b2RlKik7CisKKyAgICBUeXBlIG1fdHlwZTsKKyAgICBTdHJpbmcgbV9zdHI7CisgICAgTm9kZSog
bV9ub2RlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KE1JQ1JPREFUQSkKKworI2VuZGlmIC8vIE1pY3JvRGF0YUl0ZW1WYWx1ZV9oCisKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDk3NjA2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMTAtMTcgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEu
Y29tPgorCisgICAgICAgIE1pY3JvZGF0YTogQWRkIGl0ZW1wcm9wLCBpdGVtcmVmLCBpdGVtdmFs
dWUgYXR0cmlidXRlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY5ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgdGVzdC1jYXNlcyBmb3IgTWljcm9kYXRhIGl0ZW1wcm9wLCBpdGVtcmVmLCBp
dGVtdmFsdWUgYXR0cmlidXRlcy4KKworICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMTAt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDEwLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMTEtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDExLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDEyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL01pY3JvRGF0YS8wMTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvMDEzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3Jv
RGF0YS8wMTQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvMDE0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMTUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDE1Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMTYtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDE2Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMTctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDE3Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL01pY3JvRGF0YS8wMTgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9NaWNyb0RhdGEvMDE4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0
YS8wMTktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
MDE5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMjAtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDIwLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMjEtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDIxLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMjItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvMDIyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS8wMjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9N
aWNyb0RhdGEvMDIzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8w
MjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDI0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMjUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDI1Lmh0bWw6IEFkZGVk
LgorCiAyMDExLTEwLTE3ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRWRpdGluZyBDU1Mgc2VsZWN0b3IgZG9lc24ndCBm
aXJlIG9uUmVzb3VyY2VDb250ZW50Q29tbWl0dGVkCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvMDEwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDEwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIGl0ZW1wcm9wIGF0dHJp
YnV0ZSBtdXN0IGJlIHJlZmxlY3RlZCBieSB0aGUgLml0ZW1Qcm9wIHByb3BlcnR5LgorCitQQVNT
IGVsZW1lbnQuaXRlbVByb3AgaXMgZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5pdGVtUHJvcC50b1N0
cmluZygpIGlzICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJworUEFTUyBlbGVtZW50Lml0ZW1Qcm9w
LnRvU3RyaW5nKCkgaXMgJycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDEwLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxMC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxMC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHRoZSBpdGVtcHJvcCBhdHRyaWJ1dGUg
bXVzdCBiZSByZWZsZWN0ZWQgYnkgdGhlIC5pdGVtUHJvcCBwcm9wZXJ0eS48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbSgn
ZGl2Jyx7aXRlbXByb3A6J2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSk7CisKK3Nob3VsZEJlRGVm
aW5lZCgiZWxlbWVudC5pdGVtUHJvcCIpOworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVByb3AudG9T
dHJpbmcoKSIsICInaHR0cDovL2V4YW1wbGUuY29tL2ZvbyciKTsKKworZWxlbWVudC5yZW1vdmVB
dHRyaWJ1dGUoJ2l0ZW1Qcm9wJyk7CitzaG91bGRCZSgiZWxlbWVudC5pdGVtUHJvcC50b1N0cmlu
ZygpIiwgIicnIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS8wMTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAxMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTcgQEAKK1RoaXMgdGVzdCB0aGF0IHRoZSBpdGVtUHJvcCBzaG91bGQgYmUgY29ycmVjdCBm
b3IgYW4gZWxlbWVudCB0aGF0IGhhcyBpdGVtUHJvcCBhdHRyaWJ1dGUuCisKK1BBU1MgZWxlbWVu
dC5pdGVtUHJvcC5sZW5ndGggPT0gMyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AudG9T
dHJpbmcoKSA9PSAnZm9vIGJhciBGT08nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5p
dGVtKDApID09ICdmb28nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5pdGVtKDEpID09
ICdiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcFswXSA9PSAnZm9vJyBpcyB0cnVl
CitQQVNTIGVsZW1lbnQuaXRlbVByb3BbMV0gPT0gJ2JhcicgaXMgdHJ1ZQorUEFTUyBlbGVtZW50
Lml0ZW1Qcm9wLmNvbnRhaW5zKCdiYXInKSBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3Au
aXRlbSgyKSA9PSAnRk9PJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3BbMl0gPT0gJ0ZP
TycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCd0ZXN0JykgaXMgZmFs
c2UKK1BBU1MgZWxlbWVudDEuaXRlbVByb3AubGVuZ3RoID09IDAgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDExLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDExLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzcg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNv
bW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCB0aGF0IHRo
ZSBpdGVtUHJvcCBzaG91bGQgYmUgY29ycmVjdCBmb3IgYW4gZWxlbWVudCB0aGF0IGhhcyBpdGVt
UHJvcCBhdHRyaWJ1dGUuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW0oJ2Rpdicse2l0ZW1wcm9wOidmb28gYmFyIEZPTyd9
KTsKKworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAzIik7CitzaG91
bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSA9PSAnZm9vIGJhciBGT08nIik7
CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AuaXRlbSgwKSA9PSAnZm9vJyIpOworc2hv
dWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLml0ZW0oMSkgPT0gJ2JhciciKTsKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5pdGVtUHJvcFswXSA9PSAnZm9vJyIpOworc2hvdWxkQmVUcnVlKCJlbGVt
ZW50Lml0ZW1Qcm9wWzFdID09ICdiYXInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVBy
b3AuY29udGFpbnMoJ2JhcicpIik7CisKKy8vIGl0ZW1Qcm9wIHNob3VsZCByZXR1cm4gY2FzZS1z
ZW5zaXRpdmUgc3RyaW5ncworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLml0ZW0oMikg
PT0gJ0ZPTyciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcFsyXSA9PSAnRk9PJyIp
OworCisvLyBpdGVtUHJvcCBzaG91bGQgbm90IGNvbnRhaW4gYW4gdW5kZWZpbmVkIHRva2VuCitz
aG91bGRCZUZhbHNlKCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCd0ZXN0JykiKTsKKworLy8g
aXRlbVByb3AubGVuZ3RoIHNob3VsZCBiZSAwIGlmIGVsZW1lbnQgaGFzIG5vdCB0b2tlbnMKK3Zh
ciBlbGVtZW50MSA9IGNyZWF0ZUVsZW0oJ2Rpdicse2l0ZW1wcm9wOicnfSk7CitzaG91bGRCZVRy
dWUoImVsZW1lbnQxLml0ZW1Qcm9wLmxlbmd0aCA9PSAwIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxMi1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdHMgdGhhdCBpdGVtUHJv
cCBhdHRyaWJ1dGUgbXVzdCB1cGRhdGUgY29ycmVjdGx5IHdoZW4gdG9rZW4gaGF2ZSBiZWVuIGFk
ZGVkIG9yIHJlbW92ZWQuCisKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMiBpcyB0
cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSA9PSAnZm9vIEZPTycgaXMgdHJ1
ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wWzBdIGlzICdmb28nCitQQVNTIGVsZW1lbnQuaXRlbVBy
b3BbMV0gaXMgJ0ZPTycKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMiBpcyB0cnVl
CitQQVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDEgaXMgdHJ1ZQorUEFTUyBlbGVtZW50
Lml0ZW1Qcm9wLmxlbmd0aCA9PSAxIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5sZW5n
dGggPT0gMCBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ2ZvbycpIGlz
IGZhbHNlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ0ZPTycpIGlzIGZhbHNlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxMi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNy
b2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
cyB0aGF0IGl0ZW1Qcm9wIGF0dHJpYnV0ZSBtdXN0IHVwZGF0ZSBjb3JyZWN0bHkgd2hlbiB0b2tl
biBoYXZlIGJlZW4gYWRkZWQgb3IgcmVtb3ZlZC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQ+CisKK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbSgnZGl2Jyx7fSk7CisKKy8v
IGl0ZW1Qcm9wLmFkZCBtdXN0IHJlZmxlY3QgY29ycmVjdGx5CitlbGVtZW50Lml0ZW1Qcm9wLmFk
ZCgnZm9vJyk7CitlbGVtZW50Lml0ZW1Qcm9wLmFkZCgnRk9PJyk7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVt
UHJvcC50b1N0cmluZygpID09ICdmb28gRk9PJyIpOworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVBy
b3BbMF0iLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCJlbGVtZW50Lml0ZW1Qcm9wWzFdIiwgIidGT08n
Iik7CisKKy8vIGl0ZW1Qcm9wLmFkZCBtdXN0IG5vdCBtYWtlIGFueSBjaGFuZ2VzIGlmIGFuIGV4
aXN0aW5nIHRva2VuIGlzIGFkZGVkCitlbGVtZW50Lml0ZW1Qcm9wLmFkZCgnZm9vJyk7CitzaG91
bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDIiKTsKKworLy8gaXRlbVByb3Au
cmVtb3ZlIG11c3QgcmVmbGVjdCBjb3JyZWN0bHkKK2VsZW1lbnQuaXRlbVByb3AucmVtb3ZlKCdm
b28nKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMSIpOworCisv
LyBpdGVtUHJvcC5yZW1vdmUgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhIG5vbi1leGlz
dGluZyB0b2tlbiBpcyByZW1vdmVkCitlbGVtZW50Lml0ZW1Qcm9wLnJlbW92ZSgnZm9vJyk7Citz
aG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDEiKTsKKworZWxlbWVudC5p
dGVtUHJvcC5yZW1vdmUoJ0ZPTycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxl
bmd0aCA9PSAwIik7CitzaG91bGRCZUZhbHNlKCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdm
b28nKSIpOworc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygnRk9PJyki
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxMy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
LzAxMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDEzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitU
aGlzIHRlc3RzIHRoYXQgaXRlbVByb3AgYW5kIGl0ZW1Qcm9wLmxlbmd0aCBtdXN0IGJlIHJlYWQt
b25seS4KKworUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbycgaXMgdHJ1
ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCd0ZXN0JykgaXMgZmFsc2UKK1BBU1Mg
ZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAxMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMTMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMTMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGl0ZW1Qcm9wIGFu
ZCBpdGVtUHJvcC5sZW5ndGggbXVzdCBiZSByZWFkLW9ubHkuPC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW0oJ2Rpdicse2l0
ZW1wcm9wOidmb28nfSk7CitlbGVtZW50Lml0ZW1Qcm9wID0gJ3Rlc3QnOworc2hvdWxkQmVUcnVl
KCJlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbyciKTsKK3Nob3VsZEJlRmFsc2Uo
ImVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ3Rlc3QnKSIpOworCitlbGVtZW50Lml0ZW1Qcm9w
Lmxlbmd0aCA9IDA7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDEi
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxNC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
LzAxNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDE0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAor
VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0aGUgaXRlbXJlZiBhdHRyaWJ1dGUgbXVzdCBiZSByZWZs
ZWN0ZWQgYnkgdGhlIC5pdGVtUmVmIHByb3BlcnR5LgorCitQQVNTIGVsZW1lbnQuaXRlbVJlZiBp
cyBkZWZpbmVkLgorUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFT
UyBlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSA9PSAnZm9vIGJhcicgaXMgdHJ1ZQorUEFTUyBl
bGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSA9PSAnJyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAxNC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMTQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMTQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0
aGUgaXRlbXJlZiBhdHRyaWJ1dGUgbXVzdCBiZSByZWZsZWN0ZWQgYnkgdGhlIC5pdGVtUmVmIHBy
b3BlcnR5LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKwordmFyIGVs
ZW1lbnQgPSBjcmVhdGVFbGVtKCdkaXYnLHtpdGVtcmVmOidmb28gYmFyJ30pOworc2hvdWxkQmVE
ZWZpbmVkKCJlbGVtZW50Lml0ZW1SZWYiKTsKKworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1S
ZWYubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5n
KCkgPT0gJ2ZvbyBiYXInIik7CisKK2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdpdGVtcmVmJyk7
CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpID09ICcnIik7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTUtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
LzAxNS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVz
dCB0aGF0IHRoZSBpdGVtUmVmIHNob3VsZCBiZSBjb3JyZWN0IGZvciBhbiBlbGVtZW50IHRoYXQg
aGFzIGl0ZW1SZWYgYXR0cmlidXRlLgorCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0g
MyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpID09ICdmb28gYmFyIEZP
TycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuaXRlbSgwKSA9PSAnZm9vJyBpcyB0cnVl
CitQQVNTIGVsZW1lbnQuaXRlbVJlZi5pdGVtKDEpID09ICdiYXInIGlzIHRydWUKK1BBU1MgZWxl
bWVudC5pdGVtUmVmWzBdID09ICdmb28nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmWzFd
ID09ICdiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdiYXInKSBp
cyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnZm9vJykgaXMgdHJ1ZQorUEFT
UyBlbGVtZW50Lml0ZW1SZWYuaXRlbSgyKSA9PSAnRk9PJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQu
aXRlbVJlZlsyXSA9PSAnRk9PJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5jb250YWlu
cygndGVzdCcpIGlzIGZhbHNlCitQQVNTIGVsZW1lbnQxLml0ZW1SZWYubGVuZ3RoID09IDAgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE1Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE1Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCB0aGF0IHRoZSBpdGVtUmVmIHNob3VsZCBiZSBjb3JyZWN0IGZvciBhbiBlbGVtZW50
IHRoYXQgaGFzIGl0ZW1SZWYgYXR0cmlidXRlLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KKwordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtKCdkaXYnLHtpdGVtcmVmOidm
b28gYmFyIEZPTyd9KTsKKworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09
IDMiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgPT0gJ2ZvbyBi
YXIgRk9PJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYuaXRlbSgwKSA9PSAnZm9v
JyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYuaXRlbSgxKSA9PSAnYmFyJyIpOwor
c2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWZbMF0gPT0gJ2ZvbyciKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5pdGVtUmVmWzFdID09ICdiYXInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQu
aXRlbVJlZi5jb250YWlucygnYmFyJykiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVm
LmNvbnRhaW5zKCdmb28nKSIpOworCisvLyBpdGVtUmVmIHNob3VsZCByZXR1cm4gY2FzZS1zZW5z
aXRpdmUgc3RyaW5ncworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYuaXRlbSgyKSA9PSAn
Rk9PJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWZbMl0gPT0gJ0ZPTyciKTsKKwor
Ly8gaXRlbVJlZiBzaG91bGQgbm90IGNvbnRhaW4gYW4gdW5kZWZpbmVkIHRva2VuCitzaG91bGRC
ZUZhbHNlKCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ3Rlc3QnKSIpOworCisvLyBpdGVtUmVm
Lmxlbmd0aCBzaG91bGQgYmUgMCBpZiBlbGVtZW50IGhhcyBub3QgdG9rZW5zCit2YXIgZWxlbWVu
dDEgPSBjcmVhdGVFbGVtKCdkaXYnLHtpdGVtUmVmOicnfSk7CitzaG91bGRCZVRydWUoImVsZW1l
bnQxLml0ZW1SZWYubGVuZ3RoID09IDAiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAxNi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxNi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE2LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0cyB0aGF0IGl0ZW1SZWYgYXR0cmlidXRl
IG11c3QgdXBkYXRlIGNvcnJlY3RseSB3aGVuIHRva2VuIGhhdmUgYmVlbiBhZGRlZCBvciByZW1v
dmVkLgorCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIGVs
ZW1lbnQuaXRlbVJlZi50b1N0cmluZygpIGlzICdmb28gRk9PJworUEFTUyBlbGVtZW50Lml0ZW1S
ZWYubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDEg
aXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIGlzIGZhbHNlCitQ
QVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMSBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRl
bVJlZi5sZW5ndGggPT0gMCBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5jb250YWlucygn
Zm9vJykgaXMgZmFsc2UKK1BBU1MgZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdGT08nKSBpcyBm
YWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTYuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE2Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE2Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdHMgdGhhdCBpdGVtUmVmIGF0dHJpYnV0ZSBtdXN0IHVwZGF0ZSBjb3JyZWN0bHkgd2hl
biB0b2tlbiBoYXZlIGJlZW4gYWRkZWQgb3IgcmVtb3ZlZC48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbSgnZGl2Jyx7fSk7
CisKKy8vIGl0ZW1SZWYuYWRkIG11c3QgcmVmbGVjdCBjb3JyZWN0bHkKK2VsZW1lbnQuaXRlbVJl
Zi5hZGQoJ2ZvbycpOworZWxlbWVudC5pdGVtUmVmLmFkZCgnRk9PJyk7CitzaG91bGRCZVRydWUo
ImVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMiIpOworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVJl
Zi50b1N0cmluZygpIiwgIidmb28gRk9PJyIpOworLy9zaG91bGRCZSgiZWxlbWVudC5pdGVtUHJv
cFsxXSIsICInRk9PJyIpOworCisvLyBpdGVtUmVmLmFkZCBtdXN0IG5vdCBtYWtlIGFueSBjaGFu
Z2VzIGlmIGFuIGV4aXN0aW5nIHRva2VuIGlzIGFkZGVkCitlbGVtZW50Lml0ZW1SZWYuYWRkKCdm
b28nKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAyIik7CisKKy8v
IGl0ZW1SZWYucmVtb3ZlIG11c3QgcmVmbGVjdCBjb3JyZWN0bHkKK2VsZW1lbnQuaXRlbVJlZi5y
ZW1vdmUoJ2ZvbycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDEi
KTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnZm9vJykiKTsKKwor
Ly8gaXRlbVJlZi5yZW1vdmUgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhIG5vbi1leGlz
dGluZyB0b2tlbiBpcyByZW1vdmVkCitlbGVtZW50Lml0ZW1SZWYucmVtb3ZlKCdmb28nKTsKK3No
b3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAxIik7CisKK2VsZW1lbnQuaXRl
bVJlZi5yZW1vdmUoJ0ZPTycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYubGVuZ3Ro
ID09IDAiKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnZm9vJyki
KTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnRk9PJykiKTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxNy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAxNy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvMDE3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitUaGlzIHRl
c3RzIHRoYXQgaXRlbVJlZiBhbmQgaXRlbVJlZi5sZW5ndGggbXVzdCBiZSByZWFkLW9ubHkuCisK
K1BBU1MgZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgPT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBl
bGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ3Rlc3QnKSBpcyBmYWxzZQorUEFTUyBlbGVtZW50Lml0
ZW1SZWYubGVuZ3RoID09IDEgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS8wMTcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
MDE3Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
MDE3Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpdGVtUmVmIGFuZCBpdGVtUmVmLmxl
bmd0aCBtdXN0IGJlIHJlYWQtb25seS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CisKK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbSgnZGl2Jyx7aXRlbXJlZjonZm9vJ30p
OworZWxlbWVudC5pdGVtcmVmID0gJ3Rlc3QnOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1S
ZWYudG9TdHJpbmcoKSA9PSAnZm9vJyIpOworc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5pdGVtUmVm
LmNvbnRhaW5zKCd0ZXN0JykiKTsKKworZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9IDA7CitzaG91
bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMSIpOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE4LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE4LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTgtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACitUaGlzIHRlc3RzIHRoYXQgaXRl
bVZhbHVlIG11c3QgYmUgbnVsbCBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFuIGl0ZW1w
cm9wIGF0dHJpYnV0ZQorCitQQVNTIGNyZWF0ZUVsZW0oJ21ldGEnLHtjb250ZW50Oid0ZXN0J30p
Lml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKK1BBU1MgY3JlYXRlRWxlbSgnYXVkaW8nLHtzcmM6
J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorUEFTUyBjcmVhdGVFbGVtKCdlbWJl
ZCcse3NyYzondGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCitQQVNTIGNyZWF0ZUVs
ZW0oJ2lmcmFtZScse3NyYzondGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCitQQVNT
IGNyZWF0ZUVsZW0oJ2ltZycse3NyYzondGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVl
CitQQVNTIGNyZWF0ZUVsZW0oJ3NvdXJjZScse3NyYzondGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVs
bCBpcyB0cnVlCitQQVNTIGNyZWF0ZUVsZW0oJ3RyYWNrJyx7c3JjOid0ZXN0J30pLml0ZW1WYWx1
ZSA9PSBudWxsIGlzIHRydWUKK1BBU1MgY3JlYXRlRWxlbSgndmlkZW8nLHtzcmM6J3Rlc3QnfSku
aXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorUEFTUyBjcmVhdGVFbGVtKCdhJyx7aHJlZjondGVz
dCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCitQQVNTIGNyZWF0ZUVsZW0oJ2FyZWEnLHto
cmVmOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKK1BBU1MgY3JlYXRlRWxlbSgn
bGluaycse2hyZWY6J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorUEFTUyBjcmVh
dGVFbGVtKCdvYmplY3QnLHtkYXRhOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUK
K1BBU1MgY3JlYXRlRWxlbSgndGltZScse30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKK1BB
U1MgY3JlYXRlRWxlbSgndGltZScse2RhdGV0aW1lOid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxs
IGlzIHRydWUKK1BBU1MgY3JlYXRlRWxlbSgnZGl2Jyx7fSwndGVzdCcpLml0ZW1WYWx1ZSA9PSBu
dWxsIGlzIHRydWUKK1BBU1MgY3JlYXRlRWxlbSgnbWFkZXVwb250aGVzcG90Jyx7fSwndGVzdCcp
Lml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvMDE4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
LzAxOC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
LzAxOC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgaXRlbVZhbHVlIG11c3QgYmUgbnVs
bCBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFuIGl0ZW1wcm9wIGF0dHJpYnV0ZTwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3Nob3VsZEJlVHJ1ZSgiY3JlYXRl
RWxlbSgnbWV0YScse2NvbnRlbnQ6J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK3Nob3Vs
ZEJlVHJ1ZSgiY3JlYXRlRWxlbSgnYXVkaW8nLHtzcmM6J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51
bGwiKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgnZW1iZWQnLHtzcmM6J3Rlc3QnfSkuaXRl
bVZhbHVlID09IG51bGwiKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgnaWZyYW1lJyx7c3Jj
Oid0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW0o
J2ltZycse3NyYzondGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworc2hvdWxkQmVUcnVlKCJj
cmVhdGVFbGVtKCdzb3VyY2UnLHtzcmM6J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK3No
b3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgndHJhY2snLHtzcmM6J3Rlc3QnfSkuaXRlbVZhbHVlID09
IG51bGwiKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgndmlkZW8nLHtzcmM6J3Rlc3QnfSku
aXRlbVZhbHVlID09IG51bGwiKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgnYScse2hyZWY6
J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgn
YXJlYScse2hyZWY6J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK3Nob3VsZEJlVHJ1ZSgi
Y3JlYXRlRWxlbSgnbGluaycse2hyZWY6J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK3No
b3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgnb2JqZWN0Jyx7ZGF0YTondGVzdCd9KS5pdGVtVmFsdWUg
PT0gbnVsbCIpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtKCd0aW1lJyx7fSkuaXRlbVZhbHVl
ID09IG51bGwiKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbSgndGltZScse2RhdGV0aW1lOid0
ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW0oJ2Rp
dicse30sJ3Rlc3QnKS5pdGVtVmFsdWUgPT0gbnVsbCIpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVF
bGVtKCdtYWRldXBvbnRoZXNwb3QnLHt9LCd0ZXN0JykuaXRlbVZhbHVlID09IG51bGwiKTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE5LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE5LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS8wMTktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitUaGlzIHRl
c3QgZW5zdXJlcyB0aGF0IHdyaXRpbmcgdG8gaXRlbVZhbHVlIG11c3QgdGhyb3cgYW4gSU5WQUxJ
RF9BQ0NFU1NfRVJSIGVycm9yIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gaXRlbXBy
b3AgYXR0cmlidXRlLgorCitQQVNTIGV4Y2VwdGlvbkNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFM
SURfQUNDRVNTX0VSUgorUEFTUyBleGNlcHRpb25Db2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElE
X0FDQ0VTU19FUlIKK1BBU1MgZXhjZXB0aW9uQ29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9B
Q0NFU1NfRVJSCitQQVNTIGV4Y2VwdGlvbkNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfQUND
RVNTX0VSUgorUEFTUyBleGNlcHRpb25Db2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VT
U19FUlIKK1BBU1MgZXhjZXB0aW9uQ29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1Nf
RVJSCitQQVNTIGV4Y2VwdGlvbkNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VS
UgorUEFTUyBleGNlcHRpb25Db2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIK
K1BBU1MgZXhjZXB0aW9uQ29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCitQ
QVNTIGV4Y2VwdGlvbkNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUgorUEFT
UyBleGNlcHRpb25Db2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIKK1BBU1Mg
ZXhjZXB0aW9uQ29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCitQQVNTIGV4
Y2VwdGlvbkNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMTkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDE5Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNv
bW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVz
IHRoYXQgd3JpdGluZyB0byBpdGVtVmFsdWUgbXVzdCB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19F
UlIgZXJyb3IgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBpdGVtcHJvcCBhdHRyaWJ1
dGUuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVu
VGVzdCh0YWdOYW1lKQoreworICAgIHRlc3RFbGVtZW50ID0gY3JlYXRlRWxlbSh0YWdOYW1lLHtj
b250ZW50Oid0ZXN0Q29udGVudCd9KTsKKyAgICB0cnkgeworICAgICAgICB0ZXN0RWxlbWVudC5p
dGVtVmFsdWUgPSAndGVzdCcKKyAgICB9Y2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9uQ29k
ZSA9IGUuY29kZTsKKyAgICB9CisgICAgc2hvdWxkQmUoJ2V4Y2VwdGlvbkNvZGUnLCAnRE9NRXhj
ZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUicpOworfQorCitydW5UZXN0KCdtZXRhJyk7CitydW5U
ZXN0KCdhdWRpbycpOworcnVuVGVzdCgnZW1iZWQnKTsKK3J1blRlc3QoJ2lmcmFtZScpOworcnVu
VGVzdCgnaW1nJyk7CitydW5UZXN0KCdzb3VyY2UnKTsKK3J1blRlc3QoJ3RyYWNrJyk7CitydW5U
ZXN0KCd2aWRlbycpOworcnVuVGVzdCgnYScpOworcnVuVGVzdCgnYXJlYScpOworcnVuVGVzdCgn
bGluaycpOworcnVuVGVzdCgnb2JqZWN0Jyk7CitydW5UZXN0KCdkaXYnKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIwLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIwLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjAtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitUaGlzIHRlc3QgZW5zdXJl
cyB0aGF0IHdyaXRpbmcgdG8gaXRlbVZhbHVlIG11c3QgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1Nf
RVJSIGVycm9yIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gaXRlbXByb3AgYXR0cmli
dXRlLgorCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorUEFTUyB0
ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKK1BBU1MgdGVzdEVsZW1lbnQuaXRl
bVZhbHVlIGlzIHRlc3RFbGVtZW50CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0
RWxlbWVudAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKK1BBU1Mg
dGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CitQQVNTIHRlc3RFbGVtZW50Lml0
ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVz
dEVsZW1lbnQKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CitQQVNT
IHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorUEFTUyB0ZXN0RWxlbWVudC5p
dGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRl
c3RFbGVtZW50CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjAuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIwLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIwLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3cml0aW5nIHRvIGl0ZW1WYWx1ZSBtdXN0IHRo
cm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBlcnJvciBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBo
YXZlIGFuIGl0ZW1wcm9wIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+Cit2YXIgdGVzdEVsZW1lbnQ7CitmdW5jdGlvbiBydW5UZXN0KHRhZ05hbWUpIHsK
KyAgICB0ZXN0RWxlbWVudCA9IGNyZWF0ZUVsZW0odGFnTmFtZSx7aXRlbXNjb3BlOidpdGVtc2Nv
cGUnLGl0ZW1wcm9wOidmb28nLGNvbnRlbnQ6J3Rlc3QnfSk7CisgICAgc2hvdWxkQmUoInRlc3RF
bGVtZW50Lml0ZW1WYWx1ZSIsICJ0ZXN0RWxlbWVudCIpOworfQorCitydW5UZXN0KCdtZXRhJyk7
CitydW5UZXN0KCdhdWRpbycpOworcnVuVGVzdCgnZW1iZWQnKTsKK3J1blRlc3QoJ2lmcmFtZScp
OworcnVuVGVzdCgnaW1nJyk7CitydW5UZXN0KCdzb3VyY2UnKTsKK3J1blRlc3QoJ3RyYWNrJyk7
CitydW5UZXN0KCd2aWRlbycpOworcnVuVGVzdCgnYScpOworcnVuVGVzdCgnYXJlYScpOworcnVu
VGVzdCgnbGluaycpOworcnVuVGVzdCgnb2JqZWN0Jyk7CitydW5UZXN0KCdkaXYnKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIxLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIxLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8w
MjEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBl
bnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgY29udGVudCBhdHRyaWJ1dGUg
b24gbWV0YSBlbGVtZW50LgorCitQQVNTIG1ldGFFbGVtZW50Lml0ZW1WYWx1ZSBpcyAndGVzdCcK
K1BBU1MgbWV0YUVsZW1lbnQuaXRlbVZhbHVlIGlzICdyZXRlc3QnCitQQVNTIG1ldGFFbGVtZW50
LmNvbnRlbnQgaXMgJ2JhcicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDIxLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyMS5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyMS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IHJlZmxlY3Qg
dGhlIGNvbnRlbnQgYXR0cmlidXRlIG9uIG1ldGEgZWxlbWVudC48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgbWV0YUVsZW1lbnQgPSBjcmVhdGVFbGVtKCdtZXRh
Jyx7aXRlbXByb3A6J2ZvbycsY29udGVudDondGVzdCd9KTsKK3Nob3VsZEJlKCdtZXRhRWxlbWVu
dC5pdGVtVmFsdWUnLCAiJ3Rlc3QnIik7CittZXRhRWxlbWVudC5jb250ZW50ID0gJ3JldGVzdCc7
CitzaG91bGRCZSgnbWV0YUVsZW1lbnQuaXRlbVZhbHVlJywgIidyZXRlc3QnIik7CittZXRhRWxl
bWVudC5pdGVtVmFsdWUgPSAnYmFyJzsKK3Nob3VsZEJlKCdtZXRhRWxlbWVudC5jb250ZW50Jywg
IidiYXInIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisK
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
LzAyMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhLzAyMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvMDIyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
NCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBz
cmMgYXR0cmlidXRlIGlmIHRoZSBlbGVtZW50IGlzIGFuIGF1ZGlvLCBlbWJlZCwgaWZyYW1lLCBz
b3VyY2UsIHRyYWNrLCBvciB2aWRlbyBlbGVtZW50LgorCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1W
YWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVl
IGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5zcmMgaXMgJ2h0dHA6
Ly9leGFtcGxlLmNvbS8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4
YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBs
ZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5zcmMgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCitQ
QVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1Mg
dGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0
RWxlbWVudC5zcmMgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCitQQVNTIHRlc3RFbGVtZW50Lml0
ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZh
bHVlIGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5zcmMgaXMgJ2h0
dHA6Ly9leGFtcGxlLmNvbS8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDov
L2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhh
bXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5zcmMgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8n
CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BB
U1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0
ZXN0RWxlbWVudC5zcmMgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAyMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMjIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMjIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBp
dGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBzcmMgYXR0cmlidXRlIGlmIHRoZSBlbGVtZW50IGlz
IGFuIGF1ZGlvLCBlbWJlZCwgaWZyYW1lLCBzb3VyY2UsIHRyYWNrLCBvciB2aWRlbyBlbGVtZW50
LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciB0ZXN0RWxlbWVu
dDsKK2Z1bmN0aW9uIHJ1blRlc3QodGFnTmFtZSkKK3sKKyAgICB0ZXN0RWxlbWVudCA9IGNyZWF0
ZUVsZW0odGFnTmFtZSx7aXRlbXByb3A6J2Zvbycsc3JjOidodHRwOi8vZXhhbXBsZS5vcmcvJ30p
OworICAgIHNob3VsZEJlKCJ0ZXN0RWxlbWVudC5pdGVtVmFsdWUiLCAiJ2h0dHA6Ly9leGFtcGxl
Lm9yZy8nIik7CisgICAgdGVzdEVsZW1lbnQuc3JjID0gJ2h0dHA6Ly9leGFtcGxlLm5ldC8nOwor
ICAgIHNob3VsZEJlKCJ0ZXN0RWxlbWVudC5pdGVtVmFsdWUiLCAiJ2h0dHA6Ly9leGFtcGxlLm5l
dC8nIik7CisgICAgdGVzdEVsZW1lbnQuaXRlbVZhbHVlID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS8n
OworICAgIHNob3VsZEJlKCJ0ZXN0RWxlbWVudC5zcmMiLCAiJ2h0dHA6Ly9leGFtcGxlLmNvbS8n
Iik7Cit9CisKK3J1blRlc3QoJ2F1ZGlvJyk7CitydW5UZXN0KCdlbWJlZCcpOworcnVuVGVzdCgn
aWZyYW1lJyk7CitydW5UZXN0KCdzb3VyY2UnKTsKK3J1blRlc3QoJ3RyYWNrJyk7CitydW5UZXN0
KCd2aWRlbycpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS8wMjMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS8wMjMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAyMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
OSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBz
cmMgYXR0cmlidXRlIG9uIGltZyBlbGVtZW50LgorCitQQVNTIGltZ0VsZW1lbnQuaXRlbVZhbHVl
IGlzIGltZ0VsZW1lbnQuc3JjCitQQVNTIGltZ0VsZW1lbnQuaXRlbVZhbHVlIGlzIGltZ0VsZW1l
bnQuc3JjCitQQVNTIGltZ0VsZW1lbnQuc3JjIGlzIGltZ0VsZW1lbnQuaXRlbVZhbHVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyMy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2Rh
dGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVu
c3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBzcmMgYXR0cmlidXRlIG9uIGlt
ZyBlbGVtZW50LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBp
bWdFbGVtZW50ID0gY3JlYXRlRWxlbSgnaW1nJyx7aXRlbXByb3A6J2Zvbycsc3JjOidncmVlbi5q
cGcnfSk7CitzaG91bGRCZSgnaW1nRWxlbWVudC5pdGVtVmFsdWUnLCAnaW1nRWxlbWVudC5zcmMn
KTsKK2ltZ0VsZW1lbnQuc3JjID0gJ3JlZC5qcGcnOworc2hvdWxkQmUoJ2ltZ0VsZW1lbnQuaXRl
bVZhbHVlJywgImltZ0VsZW1lbnQuc3JjIik7CitpbWdFbGVtZW50Lml0ZW1WYWx1ZSA9ICdibHVl
LmpwZWcnOworc2hvdWxkQmUoJ2ltZ0VsZW1lbnQuc3JjJywgImltZ0VsZW1lbnQuaXRlbVZhbHVl
Iik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyNC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
LzAyNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDI0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAor
VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBocmVmIGF0
dHJpYnV0ZSBpZiB0aGUgZWxlbWVudCBpcyBhbiBhLCBhcmVhLCBvciBsaW5rIGVsZW1lbnQuCisK
K1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5vcmcvJworUEFT
UyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIHRl
c3RFbGVtZW50LmhyZWYgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCitQQVNTIHRlc3RFbGVtZW50
Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1lbnQuaXRl
bVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5ocmVmIGlz
ICdodHRwOi8vZXhhbXBsZS5jb20vJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0
dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDov
L2V4YW1wbGUubmV0LycKK1BBU1MgdGVzdEVsZW1lbnQuaHJlZiBpcyAnaHR0cDovL2V4YW1wbGUu
Y29tLycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDI0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyNC5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyNC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IHJlZmxlY3QgdGhlIGhyZWYgYXR0
cmlidXRlIGlmIHRoZSBlbGVtZW50IGlzIGFuIGEsIGFyZWEsIG9yIGxpbmsgZWxlbWVudC48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgdGVzdEVsZW1lbnQ7Citm
dW5jdGlvbiBydW5UZXN0KHRhZ05hbWUpCit7CisgICAgdGVzdEVsZW1lbnQgPSBjcmVhdGVFbGVt
KHRhZ05hbWUse2l0ZW1wcm9wOidmb28nLGhyZWY6J2h0dHA6Ly9leGFtcGxlLm9yZy8nfSk7Cisg
ICAgc2hvdWxkQmUoInRlc3RFbGVtZW50Lml0ZW1WYWx1ZSIsICInaHR0cDovL2V4YW1wbGUub3Jn
LyciKTsKKyAgICB0ZXN0RWxlbWVudC5ocmVmID0gJ2h0dHA6Ly9leGFtcGxlLm5ldC8nOworICAg
IHNob3VsZEJlKCJ0ZXN0RWxlbWVudC5pdGVtVmFsdWUiLCAiJ2h0dHA6Ly9leGFtcGxlLm5ldC8n
Iik7CisgICAgdGVzdEVsZW1lbnQuaXRlbVZhbHVlID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS8nOwor
ICAgIHNob3VsZEJlKCJ0ZXN0RWxlbWVudC5ocmVmIiwgIidodHRwOi8vZXhhbXBsZS5jb20vJyIp
OworfQorCitydW5UZXN0KCdhJyk7CitydW5UZXN0KCdhcmVhJyk7CitydW5UZXN0KCdsaW5rJyk7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAyNS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAy
NS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDI1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitUaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IHJlZmxlY3QgdGhlIGRhdGEgYXR0cmli
dXRlIG9uIG9iamVjdCBlbGVtZW50LgorCitQQVNTIG9iamVjdEVsZW1lbnQuaXRlbVZhbHVlIGlz
ICdodHRwOi8vZXhhbXBsZS5vcmcvJworUEFTUyBvYmplY3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAn
aHR0cDovL2V4YW1wbGUubmV0LycKK1BBU1Mgb2JqZWN0RWxlbWVudC5kYXRhIGlzICdodHRwOi8v
ZXhhbXBsZS5jb20vJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMjUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDI1Lmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDI1Lmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUg
ZGF0YSBhdHRyaWJ1dGUgb24gb2JqZWN0IGVsZW1lbnQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgordmFyIG9iamVjdEVsZW1lbnQgPSBjcmVhdGVFbGVtKCdvYmplY3Qn
LHtpdGVtcHJvcDonZm9vJyxkYXRhOidodHRwOi8vZXhhbXBsZS5vcmcvJ30pOworc2hvdWxkQmUo
J29iamVjdEVsZW1lbnQuaXRlbVZhbHVlJywgIidodHRwOi8vZXhhbXBsZS5vcmcvJyIpOworb2Jq
ZWN0RWxlbWVudC5kYXRhID0gJ2h0dHA6Ly9leGFtcGxlLm5ldC8nOworc2hvdWxkQmUoJ29iamVj
dEVsZW1lbnQuaXRlbVZhbHVlJywgIidodHRwOi8vZXhhbXBsZS5uZXQvJyIpOworb2JqZWN0RWxl
bWVudC5pdGVtVmFsdWUgPSAnaHR0cDovL2V4YW1wbGUuY29tLyc7CitzaG91bGRCZSgnb2JqZWN0
RWxlbWVudC5kYXRhJywgIidodHRwOi8vZXhhbXBsZS5jb20vJyIpOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWwK
</data>
<flag name="review"
          id="109029"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111460</attachid>
            <date>2011-10-18 10:09:14 -0700</date>
            <delta_ts>2011-10-20 15:02:37 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_69839_updated.diff</filename>
            <type>text/plain</type>
            <size>105729</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTI0IEBACisyMDExLTEwLTE4ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEFkZCBpdGVtcHJv
cCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVBy
b3AtYXR0cmlidXRlLWFkZC1yZW1vdmUtdG9rZW5zLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtUHJvcC1hdHRyaWJ1dGUtZm9yLWFuLWVsZW1lbnQtbXVzdC1iZS1j
b3JyZWN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtUHJvcC1h
dHRyaWJ1dGUtbXVzdC1iZS1yZWFkLW9ubHkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20v
TWljcm9EYXRhL2l0ZW1SZWYtYXR0cmlidXRlLWFkZC1yZW1vdmUtdG9rZW5zLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtUmVmLWF0dHJpYnV0ZS1mb3ItYW4tZWxl
bWVudC1tdXN0LWJlLWNvcnJlY3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW1SZWYtYXR0cmlidXRlLW11c3QtYmUtcmVhZC1vbmx5Lmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC1yZWZsZWN0LXRoZS1jb250ZW50
LWF0dHItb24tbWV0YS1lbGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3Jv
RGF0YS9pdGVtVmFsdWUtbXVzdC1yZWZsZWN0LXRoZS1zcmMtYXR0ci1pZi1lbGVtZW50LWlzLWF1
ZGlvLWVtYmVkLWlmcmFtZS1zb3VyY2UtdHJhY2stdmlkZW8uaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1tdXN0LXJldHVybi0taXRzZWxmLXRoZS1lbGVt
ZW50LWhhcy1pdGVtc2NvcGUtYXR0ci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbVZhbHVlLW11c3QtcmV0dXJuLW51bGwtaWYtZWxlbWVudC1oYXMtbm8taXRlbXBy
b3AtYXR0ci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVl
LW11c3QtdGhyb3ctZXhjcGV0aW9uLW9uc2V0dGluZy1lbGVtZW50LWhhcy1hbi1pdGVtc2NvcGUt
YXR0ci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11
c3QtdGhyb3ctZXhjcGV0aW9uLW9uc2V0dGluZy1pZi1lbGVtZW50LWhhcy1uby1pdGVtcHJvcC1h
dHRyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtcmVm
bGVjdHMtZGF0YS1hdHRyLW9uLW9iamVjdC1lbGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtcmVmbGVjdHMtaHJlZi1hdHRyLWlmLWVsZW1lbnQt
aXMtYW5jaG9yLWFyZWEtaW5rLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0
YS9pdGVtVmFsdWUtcmVmbGVjdHMtc3JjLWF0dHJpYnV0ZS1vbi1pbWctZWxlbWVudC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtYXR0cmlidXRlLXJlZmxl
Y3RlZC1ieS1pdGVtUHJvcC1wcm9wZXJ0eS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9N
aWNyb0RhdGEvaXRlbXJlZi1hdHRyaWJ1dGUtcmVmbGVjdGVkLWJ5LWl0ZW1SZWYtcHJvcGVydHku
aHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pT
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTEVsZW1lbnQ6Oml0ZW1WYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpKU0hUTUxFbGVtZW50OjpzZXRJdGVtVmFsdWUpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvVjhPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MRWxlbWVudDo6aXRlbVZhbHVl
QWNjZXNzb3JHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MRWxlbWVudDo6aXRlbVZh
bHVlQWNjZXNzb3JTZXR0ZXIpOgorICAgICAgICAqIGRvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHA6
CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQW5jaG9yRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQW5jaG9yRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEFyZWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAq
IGh0bWwvSFRNTEFyZWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6Oml0ZW1Qcm9wKTogUmV0dXJucyBlbGVtZW50J3MgaXRlbXByb3AgY29udGVu
dCBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0SXRlbVByb3Ap
OiBTZXRzIGl0ZW1wcm9wIHZhbHVlIG9uIGNoYW5naW5nIGVsZW1ldCdzCisgICAgICAgIGl0ZW1w
cm9wIGF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjppdGVtUmVmKTog
UmV0dXJucyBlbGVtZW50J3MgaXRlbXJlZiBjb250ZW50IGF0dHJpYnV0ZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxFbGVtZW50OjpzZXRJdGVtUmVmKTogU2V0cyBpdGVtcmVmIHZhbHVlIG9uIGNo
YW5naW5nIGVsZW1ldCdzCisgICAgICAgIGl0ZW1yZWYgYXR0cmlidXRlLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZSk6IFNldHMgZWxlbWVudCdzIGl0ZW12YWx1
ZS4gSWYgdGhlIGVsZW1lbnQgaGFzIG5vCisgICAgICAgIGl0ZW1wcm9wIGF0dHJpYnV0ZSBvciBp
ZiBlbGVtZW50IGhhcyBhbiBpdGVtc2NvcGUgYXR0cmlidXRlLCBpdCB0aHJvd3MgSU5WQUxJRF9B
Q0NFU1NfRVJSCisgICAgICAgIGV4Y2VwdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVt
ZW50OjppdGVtVmFsdWUpOiBSZXR1cm5zIHRoZSBlbGVtZW50cyBpdGVtdmFsdWUuCisKKyAgICAg
ICAgSWYgdGhlIGVsZW1lbnQgaGFzIG5vIGl0ZW1wcm9wIGF0dHJpYnV0ZSBpdCByZXR1cm5zIG51
bGwuCisgICAgICAgIElmIHRoZSBlbGVtZW50IGhhcyBhbiBpdGVtc2NvcGUgYXR0cmlidXRlLCBp
dCByZXR1cm5zIHRoZSBlbGVtZW50IGl0c2VsZi4KKyAgICAgICAgSWYgdGhlIGVsZW1lbnQgaXMg
YSBtZXRhIGVsZW1lbnQ6IEl0IGFjdHMgYXMgaXQgd291bGQgaWYgaXQgd2FzIHJlZmxlY3Rpbmcg
dGhlIGVsZW1lbnQncworICAgICAgICBjb250ZW50IGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAg
ICBJZiB0aGUgZWxlbWVudCBpcyBhbiBhdWRpbywgZW1iZWQsIGlmcmFtZSwgaW1nLCBzb3VyY2Us
IHRyYWNrLCBvciB2aWRlbyBlbGVtZW50OiBJdCBhY3RzCisgICAgICAgIGFzIGl0IHdvdWxkIGlm
IGl0IHdhcyByZWZsZWN0aW5nIHRoZSBlbGVtZW50J3Mgc3JjIGNvbnRlbnQgYXR0cmlidXRlLgor
ICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBhbiBhLCBhcmVhLCBvciBsaW5rIGVsZW1lbnQ6IEl0
IGFjdCBhcyBpdCB3b3VsZCBpZiBpdCB3YXMgcmVmbGVjdGluZyB0aGUKKyAgICAgICAgaHJlZiBj
b250ZW50IGF0dHJpYnV0ZS4KKyAgICAgICAgSWYgdGhlIGVsZW1lbnQgaXMgYW4gb2JqZWN0IGVs
ZW1lbnQ6IEl0IGFjdHMgYXMgIGl0IHdvdWxkIGlmIGl0IHdhcyByZWZsZWN0aW5nIHRoZSBlbGVt
ZW50J3MKKyAgICAgICAgZGF0YSBjb250ZW50IGF0dHJpYnV0ZS4KKworICAgICAgICAoV2ViQ29y
ZTo6SFRNTEVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxFbWJl
ZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6aXRlbVZh
bHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjpzZXRJdGVtVmFs
dWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVF
bGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVt
ZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbWFnZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEltYWdlRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1M
SW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICog
aHRtbC9IVE1MTGlua0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxN
ZXRhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6Oml0ZW1W
YWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50OjpzZXRJdGVtVmFs
dWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRhRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVs
ZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1l
bnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTb3VyY2VFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxTb3VyY2VFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hU
TUxTb3VyY2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAg
ICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9NaWNyb0RhdGFJ
dGVtVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1WYWx1
ZTo6TWljcm9EYXRhSXRlbVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1W
YWx1ZTo6Y3JlYXRlRnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpNaWNyb0RhdGFJdGVt
VmFsdWU6OmNyZWF0ZUZyb21Ob2RlKToKKyAgICAgICAgKiBodG1sL01pY3JvRGF0YUl0ZW1WYWx1
ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1WYWx1ZTo6aXNOb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1WYWx1ZTo6Z2V0Tm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNaWNyb0RhdGFJdGVtVmFsdWU6OmdldFN0cmluZyk6CisKIDIwMTEtMTAt
MTggIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBNYWtlIERv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlciBhIENhY2hlZFJlc291cmNlQ2xpZW50LgpJbmRleDogU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTc5NSw2ICs3OTUsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgaHRtbC9MYWJlbHNOb2RlTGlzdC5jcHAKICAgICBodG1sL0xpbmtSZWxBdHRy
aWJ1dGUuY3BwCiAgICAgaHRtbC9NZWRpYURvY3VtZW50LmNwcAorICAgIGh0bWwvTWljcm9EYXRh
SXRlbVZhbHVlLmNwcAogICAgIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9OdW1i
ZXJJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gOTc3NjUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xODQzLDYgKzE4NDMs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1
bWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRXJyb3IuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9NaWNy
b0RhdGFJdGVtVmFsdWUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1W
YWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L011dGFibGVUZXh0VHJhY2suY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk3
NzY1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC01
NTU4LDYgKzU1NTgsOCBAQAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFEb2N1bWVudC5jcHAnLAog
ICAgICAgICAgICAgJ2h0bWwvTWVkaWFEb2N1bWVudC5oJywKICAgICAgICAgICAgICdodG1sL01l
ZGlhRXJyb3IuaCcsCisgICAgICAgICAgICAnaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwJywK
KyAgICAgICAgICAgICdodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oJywKICAgICAgICAgICAgICdo
dG1sL011dGFibGVUZXh0VHJhY2suY3BwJywKICAgICAgICAgICAgICdodG1sL011dGFibGVUZXh0
VHJhY2suaCcsCiAgICAgICAgICAgICAnaHRtbC9Nb250aElucHV0VHlwZS5jcHAnLApJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8JKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8JKHdvcmtpbmcgY29weSkKQEAgLTc2MCw2ICs3NjAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBo
dG1sL0xhYmVsc05vZGVMaXN0LmNwcCBcCiAgICAgaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcCBc
CiAgICAgaHRtbC9NZWRpYURvY3VtZW50LmNwcCBcCisgICAgaHRtbC9NaWNyb0RhdGFJdGVtVmFs
dWUuY3BwIFwKICAgICBodG1sL01vbnRoSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwIFwKICAgICBodG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBcCkBAIC0xNzk5
LDYgKzE4MDAsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuaCBc
CiAgICAgaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oIFwKICAgICBodG1sL01lZGlhRG9jdW1lbnQu
aCBcCisgICAgaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaCBcCiAgICAgaHRtbC9NdXRhYmxlVGV4
dFRyYWNrLmggXAogICAgIGh0bWwvUGx1Z2luRG9jdW1lbnQuaCBcCiAgICAgaHRtbC9TdGVwUmFu
Z2UuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagkocmV2aXNpb24gOTc3NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNTgzNjEsNiArNTgzNjEsMTQgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxNaWNy
b0RhdGFJdGVtVmFsdWUuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxodG1sXE1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxmaWxlYXBpXE1ldGFkYXRhLmgiCiAJ
CQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
RWxlbWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDEwICsyOSwyNSBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TEZvcm1FbGVtZW50LmgiCiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIk1pY3Jv
RGF0YUl0ZW1WYWx1ZS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitzdGF0aWMgSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTWlj
cm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFsdWUpCit7CisgICAgaWYgKCFpdGVtVmFsdWUpCisgICAg
ICAgIHJldHVybiBqc051bGwoKTsKKyAgICBpZiAoaXRlbVZhbHVlLT5pc05vZGUoKSkKKyAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpdGVtVmFsdWUtPmdldE5vZGUoKSk7
CisgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGl0ZW1WYWx1ZS0+Z2V0U3RyaW5nKCkpOworfQor
I2VuZGlmCisKIFNjb3BlQ2hhaW5Ob2RlKiBKU0hUTUxFbGVtZW50OjpwdXNoRXZlbnRIYW5kbGVy
U2NvcGUoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluTm9kZSogc2NvcGUpIGNvbnN0CiB7CiAg
ICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBsKCk7CkBAIC00OCw0ICs2MywyMCBAQCBTY29w
ZUNoYWluTm9kZSogSlNIVE1MRWxlbWVudDo6cHVzaEV2ZW50CiAgICAgcmV0dXJuIHNjb3BlLT5w
dXNoKGFzT2JqZWN0KHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGVsZW1lbnQpKSk7CiB9CiAK
KyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorSlNWYWx1ZSBKU0hUTUxFbGVtZW50OjppdGVtVmFsdWUo
RXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaW1w
bCgpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihl
bGVtZW50LT5pdGVtVmFsdWUoKSkpOworfQorCit2b2lkIEpTSFRNTEVsZW1lbnQ6OnNldEl0ZW1W
YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgSFRNTEVsZW1lbnQq
IGltcCA9IGltcGwoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBpbXAtPnNldEl0
ZW1WYWx1ZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSksIGVjKTsKKyAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxF
bGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhIVE1MRWxlbWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDk3NzY1KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw4ICszMywyNiBAQAogCiAjaW5jbHVkZSAiVjhIVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmgiCiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIk1p
Y3JvRGF0YUl0ZW1WYWx1ZS5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoTWljcm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFsdWUp
Cit7CisgICAgaWYgKCFpdGVtVmFsdWUpCisgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOworCisg
ICAgaWYgKGl0ZW1WYWx1ZS0+aXNOb2RlKCkpCisgICAgICAgIHJldHVybiB0b1Y4KGl0ZW1WYWx1
ZS0+Z2V0Tm9kZSgpKTsKKworICAgIHJldHVybiB2OFN0cmluZyhpdGVtVmFsdWUtPmdldFN0cmlu
ZygpKTsKK30KKyNlbmRpZgorCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChIVE1MRWxlbWVu
dCogaW1wbCwgYm9vbCBmb3JjZU5ld09iamVjdCkKIHsKICAgICBpZiAoIWltcGwpCkBAIC00Miw0
ICs2MCwyMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChIVE1MRWxlbWVudCoKICAgICBy
ZXR1cm4gY3JlYXRlVjhIVE1MV3JhcHBlcihpbXBsLCBmb3JjZU5ld09iamVjdCk7CiB9CiAKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTEVsZW1lbnQ6
Oml0ZW1WYWx1ZUFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIEhUTUxFbGVtZW50KiBpbXBsID0gVjhI
VE1MRWxlbWVudDo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIHRvVjhPYmpl
Y3QoaW1wbC0+aXRlbVZhbHVlKCkuZ2V0KCkpOworfQorCit2b2lkIFY4SFRNTEVsZW1lbnQ6Oml0
ZW1WYWx1ZUFjY2Vzc29yU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9j
YWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAg
ICBIVE1MRWxlbWVudCogaW1wbCA9IFY4SFRNTEVsZW1lbnQ6OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGltcGwtPnNldEl0ZW1WYWx1ZSh0
b1dlYkNvcmVTdHJpbmcodmFsdWUpLCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICBWOFByb3h5
OjpzZXRET01FeGNlcHRpb24oZWMpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNwcAkocmV2aXNp
b24gOTc3NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiwxMCArMzIsMTAgQEAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKIE1p
Y3JvRGF0YUl0ZW1MaXN0OjpNaWNyb0RhdGFJdGVtTGlzdChQYXNzUmVmUHRyPE5vZGU+IHJvb3RO
b2RlLCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lcykKICAgICA6IER5bmFtaWNOb2RlTGlzdChyb290
Tm9kZSkKICAgICAsIG1fdHlwZU5hbWVzKHR5cGVOYW1lcywgbV9yb290Tm9kZS0+ZG9jdW1lbnQo
KS0+aW5RdWlya3NNb2RlKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAkocmV2aXNpb24gOTc3NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTg2LDQgKzU4NiwxNiBAQCB2b2lk
IGhhbmRsZUxpbmtDbGljayhFdmVudCogZXZlbnQsIERvY3VtCiAgICAgZnJhbWUtPmxvYWRlcigp
LT51cmxTZWxlY3RlZChkb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSwgdGFyZ2V0LCBldmVudCwg
ZmFsc2UsIGZhbHNlLCBoaWRlUmVmZXJyZXIgPyBOb1JlZmVycmVyIDogU2VuZFJlZmVycmVyKTsK
IH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJpbmcgSFRNTEFuY2hvckVsZW1lbnQ6Oml0
ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoaHJlZkF0
dHIpOworfQorCit2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0
IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZSho
cmVmQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCShyZXZpc2lvbiA5Nzc2NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYgKzEy
NSwxMSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBFdmVudFR5cGUgZXZlbnRUeXBlKEV2ZW50Kik7
CiAgICAgYm9vbCB0cmVhdExpbmtBc0xpdmVGb3JFdmVudFR5cGUoRXZlbnRUeXBlKSBjb25zdDsK
IAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4
dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNv
bnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyNlbmRpZgorCiAgICAgUmVm
UHRyPEVsZW1lbnQ+IG1fcm9vdEVkaXRhYmxlRWxlbWVudEZvclNlbGVjdGlvbk9uTW91c2VEb3du
OwogICAgIGJvb2wgbV93YXNTaGlmdEtleURvd25Pbk1vdXNlRG93biA6IDE7CiAgICAgdWludDMy
X3QgbV9saW5rUmVsYXRpb25zIDogMzE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
cmVhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5Nzc2NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFyZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ2LDQgKzI0NiwxNiBAQCBTdHJp
bmcgSFRNTEFyZWFFbGVtZW50Ojp0YXJnZXQoKSBjb25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1
dGUodGFyZ2V0QXR0cik7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxB
cmVhRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0
dHJpYnV0ZShocmVmQXR0cik7Cit9CisKK3ZvaWQgSFRNTEFyZWFFbGVtZW50OjpzZXRJdGVtVmFs
dWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNl
dEF0dHJpYnV0ZShocmVmQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgJKHJldmlzaW9uIDk3NzY1KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTgs
NyArNTgsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wgLypyZXN0b3Jl
UHJldmlvdXNTZWxlY3Rpb24qLyk7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpOwot
ICAgIAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFs
dWVUZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRl
eHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworI2VuZGlmCisKICAg
ICBlbnVtIFNoYXBlIHsgRGVmYXVsdCwgUG9seSwgUmVjdCwgQ2lyY2xlLCBVbmtub3duIH07CiAg
ICAgUGF0aCBnZXRSZWdpb24oY29uc3QgTGF5b3V0U2l6ZSYpIGNvbnN0OwogICAgIHZvaWQgaW52
YWxpZGF0ZUNhY2hlZFJlZ2lvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW4JKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsNyBAQCBp
bmRldGVybWluYXRlCiBpc21hcAogaXRlbWlkCiBpdGVtcHJvcAoraXRlbXJlZgogaXRlbXNjb3Bl
CiBpdGVtdHlwZQoga2V5dHlwZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDEwIEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShNSUNS
T0RBVEEpCisjaW5jbHVkZSAiTWljcm9EYXRhSXRlbVZhbHVlLmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtMTk2LDYgKzIw
MCwxMCBAQCB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBCiAgICAgICAg
IH0gZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJmYWxzZSIpKQogICAgICAgICAg
ICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZywgQ1NTVmFs
dWVOb25lKTsKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFt
ZSgpID09IGl0ZW1wcm9wQXR0cikgeworICAgICAgICBzZXRJdGVtUHJvcChhdHRyLT52YWx1ZSgp
KTsKKyAgICB9ICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gaXRlbXJlZkF0dHIpIHsKKyAgICAg
ICAgc2V0SXRlbVJlZihhdHRyLT52YWx1ZSgpKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUo
KSA9PSBpdGVtdHlwZUF0dHIpIHsKICAgICAgICAgaXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKCk7
CiAjZW5kaWYKQEAgLTk3NSw2ICs5ODMsNzEgQEAgdm9pZCBIVE1MRWxlbWVudDo6YWRqdXN0RGly
ZWN0aW9uYWxpdHlJZgogICAgIH0KIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitQYXNzUmVm
UHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVudDo6aXRlbVByb3AoKSBjb25zdAor
eworICAgIGlmICghbV9pdGVtUHJvcCkKKyAgICAgICAgbV9pdGVtUHJvcCA9IERPTVNldHRhYmxl
VG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgIHJldHVybiBtX2l0ZW1Qcm9wOworfQorCit2b2lk
IEhUTUxFbGVtZW50OjpzZXRJdGVtUHJvcChjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlm
ICghbV9pdGVtUHJvcCkKKyAgICAgICAgbV9pdGVtUHJvcCA9IERPTVNldHRhYmxlVG9rZW5MaXN0
OjpjcmVhdGUoKTsKKworICAgIG1faXRlbVByb3AtPnNldFZhbHVlKHZhbHVlKTsKK30KKworUGFz
c1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gSFRNTEVsZW1lbnQ6Oml0ZW1SZWYoKSBjb25z
dAoreworICAgIGlmICghbV9pdGVtUmVmKQorICAgICAgICBtX2l0ZW1SZWYgPSBET01TZXR0YWJs
ZVRva2VuTGlzdDo6Y3JlYXRlKCk7CisKKyAgICByZXR1cm4gbV9pdGVtUmVmOworfQorCit2b2lk
IEhUTUxFbGVtZW50OjpzZXRJdGVtUmVmKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYg
KCFtX2l0ZW1SZWYpCisgICAgICAgIG1faXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0Ojpj
cmVhdGUoKTsKKworICAgIG1faXRlbVJlZi0+c2V0VmFsdWUodmFsdWUpOworfQorCit2b2lkIEhU
TUxFbGVtZW50OjpzZXRJdGVtVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgaWYgKCFoYXNBdHRyaWJ1dGUoaXRlbXByb3BBdHRyKSB8fCBoYXNBdHRy
aWJ1dGUoaXRlbXNjb3BlQXR0cikpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXRJdGVtVmFsdWVUZXh0KHZhbHVlLCBl
Yyk7Cit9CisKK1Bhc3NSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiBIVE1MRWxlbWVudDo6aXRl
bVZhbHVlKCkgY29uc3QKK3sKKyAgICBpZiAoIWhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChoYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikp
CisgICAgICAgIHJldHVybiBNaWNyb0RhdGFJdGVtVmFsdWU6OmNyZWF0ZUZyb21Ob2RlKGNvbnN0
X2Nhc3Q8SFRNTEVsZW1lbnQqIGNvbnN0Pih0aGlzKSk7CisKKyAgICByZXR1cm4gTWljcm9EYXRh
SXRlbVZhbHVlOjpjcmVhdGVGcm9tU3RyaW5nKGl0ZW1WYWx1ZVRleHQoKSk7Cit9CisKK1N0cmlu
ZyBIVE1MRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRleHRD
b250ZW50KHRydWUpOworfQorCit2b2lkIEhUTUxFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNv
bnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldFRleHRDb250
ZW50KHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
aWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNpb24g
OTc3NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDEyICsyNSwyMCBAQAogCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsK
IGNsYXNzIEhUTUxDb2xsZWN0aW9uOwogY2xhc3MgSFRNTEZvcm1FbGVtZW50OwotICAgICAgICAg
ICAgICAgICAgICAgICAKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCitjbGFzcyBNaWNyb0RhdGFJ
dGVtVmFsdWU7CisjZW5kaWYKKwogY2xhc3MgSFRNTEVsZW1lbnQgOiBwdWJsaWMgU3R5bGVkRWxl
bWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwpAQCAtODEsNiArODks
MTQgQEAgcHVibGljOgogCiAgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb25hbGl0eUlmaGFzRGly
QXV0b0F0dHJpYnV0ZShib29sJiBpc0F1dG8pIGNvbnN0OwogCisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKKyAgICBQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBpdGVtUmVmKCkgY29uc3Q7
CisgICAgUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gaXRlbVByb3AoKSBjb25zdDsK
KworICAgIHZvaWQgc2V0SXRlbVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICBQYXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gaXRlbVZhbHVlKCkgY29uc3Q7Cisj
ZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEhUTUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50Kik7CiAKQEAgLTEwNyw2ICsxMjMsMTcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRlckNoaWxkQXR0cmlidXRlQ2hh
bmdlZChFbGVtZW50KiBjaGlsZCk7CiAgICAgdm9pZCBhZGp1c3REaXJlY3Rpb25hbGl0eUlmTmVl
ZGVkQWZ0ZXJDaGlsZHJlbkNoYW5nZWQoTm9kZSogYmVmb3JlQ2hhbmdlLCBpbnQgY2hpbGRDb3Vu
dERlbHRhKTsKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFsaXR5KE5vZGUqKiBzdHJvbmdE
aXJlY3Rpb25hbGl0eVRleHROb2RlPSAwKSBjb25zdDsKKworI2lmIEVOQUJMRShNSUNST0RBVEEp
CisgICAgdm9pZCBzZXRJdGVtUHJvcChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldEl0ZW1S
ZWYoY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkg
Y29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpOworCisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxp
c3Q+IG1faXRlbVByb3A7CisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+
IG1faXRlbVJlZjsKKyNlbmRpZgogfTsKIAogaW5saW5lIEhUTUxFbGVtZW50KiB0b0hUTUxFbGVt
ZW50KE5vZGUqIG5vZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2
aXNpb24gOTc3NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtNzAsNiArNzAsMTIgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVjdF0gRE9NU3RyaW5n
IGl0ZW1UeXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JP
REFUQSwgUmVmbGVjdF0gRE9NU3RyaW5nIGl0ZW1JZDsKIAorICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gRE9NU2V0dGFibGVUb2tlbkxpc3QgaXRlbVJl
ZjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERP
TVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1Qcm9wOworCisgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1NSUNST0RBVEEsIEN1c3RvbV0gY3VzdG9tIGl0ZW1WYWx1ZQorICAgICAg
ICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0aXRsZURpc3BsYXlTdHJpbmc7CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkocmV2aXNpb24g
OTc3NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNzcsNCArMjc3LDE2IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6YWRk
U3VicmVzb3VyY2VBdHQKICAgICBhZGRTdWJyZXNvdXJjZVVSTCh1cmxzLCBkb2N1bWVudCgpLT5j
b21wbGV0ZVVSTChnZXRBdHRyaWJ1dGUoc3JjQXR0cikpKTsKIH0KIAorI2lmIEVOQUJMRShNSUNS
T0RBVEEpCitTdHJpbmcgSFRNTEVtYmVkRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKK30KKwordm9pZCBIVE1MRW1i
ZWRFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShzcmNBdHRyLCB2YWx1ZSwgZWMpOworfQor
I2VuZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCShy
ZXZpc2lvbiA5Nzc2NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1MiwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25z
dDsKIAogICAgIHZvaWQgcGFyYW1ldGVyc0ZvclBsdWdpbihWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKKworI2lmIEVOQUJMRShNSUNST0RB
VEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKSBPVkVSUklERTsKKyNlbmRpZgogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw0
ICsxNjMsMTYgQEAgYm9vbCBIVE1MSUZyYW1lRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQQogICAg
IHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cjsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RB
VEEpCitTdHJpbmcgSFRNTElGcmFtZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAorewor
ICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoc3JjQXR0cik7Cit9CisKK3ZvaWQgSFRNTElGcmFt
ZUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKHNyY0F0dHIsIHZhbHVlLCBlYyk7Cit9Cisj
ZW5kaWYKKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAko
cmV2aXNpb24gOTc3NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDExIEBAIHByaXZhdGU6CiAgICAgCiAgICAg
dmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OwogCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5n
JiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworI2VuZGlmCisKICAgICBBdG9taWNTdHJpbmcg
bV9uYW1lOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA5Nzc2NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMyw0ICs0MDMsMTYgQEAgYm9vbCBIVE1MSW1h
Z2VFbGVtZW50Ojppc1NlcnZlck1hcCgpIGNvbgogICAgIHJldHVybiBkb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXModXNlbWFwKSkuaXNFbXB0
eSgpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MSW1hZ2VFbGVtZW50
OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNy
Y0F0dHIpOworfQorCit2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29u
c3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRl
KHNyY0F0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgJKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw2ICsxMDIs
MTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZShib29sIGRl
ZXApOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKTsKIAorI2lm
IEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyNlbmRpZgorCiAgICAgSFRNTEltYWdl
TG9hZGVyIG1faW1hZ2VMb2FkZXI7CiAgICAgSFRNTEZvcm1FbGVtZW50KiBtX2Zvcm07CiAgICAg
QXRvbWljU3RyaW5nIG1fbmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5jcHAJKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTMsNCArNDUzLDE2IEBAIHZvaWQgSFRN
TExpbmtFbGVtZW50OjpzZXRTaXplcyhjb25zdCBTdHIKICAgICBtX3NpemVzLT5zZXRWYWx1ZSh2
YWx1ZSk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxMaW5rRWxlbWVu
dDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZSho
cmVmQXR0cik7Cit9CisKK3ZvaWQgSFRNTExpbmtFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNv
bnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0
ZShocmVmQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgJKHJldmlzaW9uIDk3
NzY1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtOTQsNiArOTQsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFBlbmRpbmdTaGVl
dChQZW5kaW5nU2hlZXRUeXBlKTsKICAgICB2b2lkIHJlbW92ZVBlbmRpbmdTaGVldCgpOwogCisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3Qg
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgSFRNTExpbmtFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wg
Y3JlYXRlZEJ5UGFyc2VyKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA5Nzc2NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMjUsNiArMzAyNSwxOCBAQCBBdWRp
b1NvdXJjZVByb3ZpZGVyKiBIVE1MTWVkaWFFbGVtZW50OjphCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNSUNST0RBVEEpCitTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKK30KKwordm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShzcmNBdHRyLCB2YWx1ZSwg
ZWMpOworfQorI2VuZGlmCisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gOTc3NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgwLDYgKzM4MCwxMSBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkKiBwcmVEaXNwYXRjaEV2ZW50SGFuZGxlcihFdmVu
dCopOwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFs
dWVUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3Qg
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlmCisKICAgICBUaW1lcjxIVE1MTWVkaWFF
bGVtZW50PiBtX2xvYWRUaW1lcjsKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2FzeW5j
RXZlbnRUaW1lcjsKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3Byb2dyZXNzRXZlbnRU
aW1lcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAJKHJldmlz
aW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05NCw0ICs5NCwxNiBAQCBTdHJpbmcgSFRNTE1ldGFFbGVtZW50Ojpu
YW1lKCkgY29uc3QKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKG5hbWVBdHRyKTsKIH0KIAorI2lm
IEVOQUJMRShNSUNST0RBVEEpCitTdHJpbmcgSFRNTE1ldGFFbGVtZW50OjppdGVtVmFsdWVUZXh0
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGNvbnRlbnRBdHRyKTsKK30KKwor
dm9pZCBIVE1MTWV0YUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKGNvbnRlbnRBdHRyLCB2
YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
YUVsZW1lbnQuaAkocmV2aXNpb24gOTc3NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwxMiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogCiAgICAgdm9pZCBwcm9j
ZXNzKCk7CisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1W
YWx1ZVRleHQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVl
VGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisjZW5kaWYKKwog
fTsKIAogfSAvL25hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5jcHAJKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NCw0ICs1NTQsMTYgQEAgSFRN
TEZvcm1FbGVtZW50KiBIVE1MT2JqZWN0RWxlbWVudDo6dmlydAogICAgIHJldHVybiBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJp
bmcgSFRNTE9iamVjdEVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVy
biBnZXRVUkxBdHRyaWJ1dGUoZGF0YUF0dHIpOworfQorCit2b2lkIEhUTUxPYmplY3RFbGVtZW50
OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIHNldEF0dHJpYnV0ZShkYXRhQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgor
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCShyZXZpc2lv
biA5Nzc2NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiwxMSBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sTmFtZSgpIGNvbnN0OwogCisjaWYgRU5BQkxF
KE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworI2VuZGlmCisKICAgICBBdG9taWNTdHJpbmcgbV9p
ZDsKICAgICBTdHJpbmcgbV9jbGFzc0lkOwogICAgIGJvb2wgbV9kb2NOYW1lZEl0ZW0gOiAxOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEyMSw2ICsxMjEsMTggQEAgYm9vbCBIVE1MU291cmNlRWxlbWVudDo6
aXNVUkxBdHRyaWJ1dGUoQQogICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBzcmNBdHRy
OwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MU291cmNlRWxlbWVudDo6
aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShzcmNB
dHRyKTsKK30KKwordm9pZCBIVE1MU291cmNlRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25z
dCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUo
c3JjQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CiAKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAkocmV2aXNpb24gOTc3NjUpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTU1LDYgKzU1LDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGVycm9yRXZlbnRUaW1lckZpcmVk
KFRpbWVyPEhUTUxTb3VyY2VFbGVtZW50PiopOwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAg
ICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYp
IE9WRVJSSURFOworI2VuZGlmCisKICAgICBUaW1lcjxIVE1MU291cmNlRWxlbWVudD4gbV9lcnJv
ckV2ZW50VGltZXI7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0Vs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxl
bWVudC5jcHAJKHJldmlzaW9uIDk3NzY1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDYgKzEzNywxOCBAQCB2b2lkIEhU
TUxUcmFja0VsZW1lbnQ6OmxvYWQoU2NyaXB0RXhlY3V0CiAgICAgICAgIG1fdHJhY2stPmxvYWQo
Z2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoc3JjQXR0ciksIGNvbnRleHQpOwogfQogCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MVHJhY2tFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNyY0F0dHIpOworfQorCit2b2lk
IEhUTUxUcmFja0VsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKHNyY0F0dHIsIHZhbHVlLCBl
Yyk7Cit9CisjZW5kaWYKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRyYWNrRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRyYWNrRWxlbWVudC5oCShyZXZpc2lvbiA5Nzc2NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRyYWNrRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCwxMiBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKGJvb2wpOwogICAgIHZpcnR1
YWwgdm9pZCB3aWxsUmVtb3ZlKCk7CiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0
dHJpYnV0ZSopIGNvbnN0OwotICAgIAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0
dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJS
SURFOworI2VuZGlmCisKICAgICBSZWZQdHI8TG9hZGFibGVUZXh0VHJhY2s+IG1fdHJhY2s7CiB9
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEx
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICog
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUu
aCIKKworI2luY2x1ZGUgIk5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworTWljcm9EYXRh
SXRlbVZhbHVlOjpNaWNyb0RhdGFJdGVtVmFsdWUoU3RyaW5nIHN0cmluZykKKyAgICA6IG1fdHlw
ZShTVFJJTkcpCisgICAgLCBtX3N0cmluZyhzdHJpbmcpCit7Cit9CisKK01pY3JvRGF0YUl0ZW1W
YWx1ZTo6TWljcm9EYXRhSXRlbVZhbHVlKE5vZGUqIG5vZGUpCisgICAgOiBtX3R5cGUoTk9ERSkK
KyAgICAsIG1fbm9kZShub2RlKQoreworfQorCitQYXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1
ZT4gTWljcm9EYXRhSXRlbVZhbHVlOjpjcmVhdGVGcm9tU3RyaW5nKFN0cmluZyBzdHJpbmcpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNaWNyb0RhdGFJdGVtVmFsdWUoc3RyaW5nKSk7Cit9
CisKK1Bhc3NSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiBNaWNyb0RhdGFJdGVtVmFsdWU6OmNy
ZWF0ZUZyb21Ob2RlKE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNaWNy
b0RhdGFJdGVtVmFsdWUobm9kZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9NaWNy
b0RhdGFJdGVtVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3Jv
RGF0YUl0ZW1WYWx1ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9NaWNy
b0RhdGFJdGVtVmFsdWUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTWljcm9EYXRhSXRlbVZhbHVlX2gKKyNkZWZpbmUgTWljcm9EYXRhSXRlbVZhbHVlX2gK
KworI2lmIEVOQUJMRShNSUNST0RBVEEpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTm9kZTsKKworY2xhc3MgTWljcm9EYXRhSXRl
bVZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8TWljcm9EYXRhSXRlbVZhbHVlPiB7Citwcml2YXRl
OgorICAgIGVudW0gVHlwZSB7U1RSSU5HLCBOT0RFfTsKKworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gY3JlYXRlRnJvbVN0cmluZyhTdHJpbmcpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gY3JlYXRlRnJvbU5vZGUo
Tm9kZSopOworCisgICAgYm9vbCBpc05vZGUoKSB7IHJldHVybiBtX3R5cGUgPT0gTk9ERTsgfQor
ICAgIE5vZGUqIGdldE5vZGUoKSB7IHJldHVybiBtX25vZGU7IH0KKyAgICBTdHJpbmcgZ2V0U3Ry
aW5nKCkgeyByZXR1cm4gbV9zdHJpbmc7IH0KKworcHJpdmF0ZToKKyAgICBNaWNyb0RhdGFJdGVt
VmFsdWUoU3RyaW5nKTsKKyAgICBNaWNyb0RhdGFJdGVtVmFsdWUoTm9kZSopOworCisgICAgVHlw
ZSBtX3R5cGU7CisgICAgU3RyaW5nIG1fc3RyaW5nOworICAgIE5vZGUqIG1fbm9kZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCisK
KyNlbmRpZiAvLyBNaWNyb0RhdGFJdGVtVmFsdWVfaAorCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5Nzc2
NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3
IEBACisyMDExLTEwLTE4ICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAg
ICBNaWNyb2RhdGE6IEFkZCBpdGVtcHJvcCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgzOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRl
c3QtY2FzZXMgZm9yIE1pY3JvZGF0YSBpdGVtcHJvcCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJp
YnV0ZXMuCisKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDAyLmh0bWw6CisgICAgICAgICogZmFzdC9k
b20vTWljcm9EYXRhLzAwMy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhLzAwMy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9NaWNyb0RhdGEvMDA5Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRh
L2l0ZW1Qcm9wLWF0dHJpYnV0ZS1hZGQtcmVtb3ZlLXRva2Vucy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtUHJvcC1hdHRyaWJ1dGUtYWRkLXJl
bW92ZS10b2tlbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW1Qcm9wLWF0dHJpYnV0ZS1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVByb3AtYXR0cmli
dXRlLWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29ycmVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVByb3AtYXR0cmlidXRlLW11c3QtYmUtcmVhZC1vbmx5
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1Q
cm9wLWF0dHJpYnV0ZS1tdXN0LWJlLXJlYWQtb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbVJlZi1hdHRyaWJ1dGUtYWRkLXJlbW92ZS10b2tlbnMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVJlZi1h
dHRyaWJ1dGUtYWRkLXJlbW92ZS10b2tlbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vTWljcm9EYXRhL2l0ZW1SZWYtYXR0cmlidXRlLWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29y
cmVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9p
dGVtUmVmLWF0dHJpYnV0ZS1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1SZWYtYXR0cmlidXRlLW11c3Qt
YmUtcmVhZC1vbmx5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWlj
cm9EYXRhL2l0ZW1SZWYtYXR0cmlidXRlLW11c3QtYmUtcmVhZC1vbmx5Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC1yZWZsZWN0LXRoZS1j
b250ZW50LWF0dHItb24tbWV0YS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1tdXN0LXJlZmxlY3QtdGhlLWNvbnRlbnQt
YXR0ci1vbi1tZXRhLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWlj
cm9EYXRhL2l0ZW1WYWx1ZS1tdXN0LXJlZmxlY3QtdGhlLXNyYy1hdHRyLWlmLWVsZW1lbnQtaXMt
YXVkaW8tZW1iZWQtaWZyYW1lLXNvdXJjZS10cmFjay12aWRlby1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC1yZWZsZWN0LXRo
ZS1zcmMtYXR0ci1pZi1lbGVtZW50LWlzLWF1ZGlvLWVtYmVkLWlmcmFtZS1zb3VyY2UtdHJhY2st
dmlkZW8uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1
ZS1tdXN0LXJldHVybi0taXRzZWxmLXRoZS1lbGVtZW50LWhhcy1pdGVtc2NvcGUtYXR0ci1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUt
bXVzdC1yZXR1cm4tLWl0c2VsZi10aGUtZWxlbWVudC1oYXMtaXRlbXNjb3BlLWF0dHIuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1tdXN0LXJldHVy
bi1udWxsLWlmLWVsZW1lbnQtaGFzLW5vLWl0ZW1wcm9wLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtcmV0dXJuLW51
bGwtaWYtZWxlbWVudC1oYXMtbm8taXRlbXByb3AtYXR0ci5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtdGhyb3ctZXhjcGV0aW9uLW9uc2V0
dGluZy1lbGVtZW50LWhhcy1hbi1pdGVtc2NvcGUtYXR0ci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC10aHJvdy1leGNwZXRp
b24tb25zZXR0aW5nLWVsZW1lbnQtaGFzLWFuLWl0ZW1zY29wZS1hdHRyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC10aHJvdy1leGNwZXRp
b24tb25zZXR0aW5nLWlmLWVsZW1lbnQtaGFzLW5vLWl0ZW1wcm9wLWF0dHItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtdGhy
b3ctZXhjcGV0aW9uLW9uc2V0dGluZy1pZi1lbGVtZW50LWhhcy1uby1pdGVtcHJvcC1hdHRyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtcmVmbGVj
dHMtZGF0YS1hdHRyLW9uLW9iamVjdC1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1yZWZsZWN0cy1kYXRhLWF0dHItb24t
b2JqZWN0LWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRh
L2l0ZW1WYWx1ZS1yZWZsZWN0cy1ocmVmLWF0dHItaWYtZWxlbWVudC1pcy1hbmNob3ItYXJlYS1p
bmstZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRl
bVZhbHVlLXJlZmxlY3RzLWhyZWYtYXR0ci1pZi1lbGVtZW50LWlzLWFuY2hvci1hcmVhLWluay5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLXJlZmxl
Y3RzLXNyYy1hdHRyaWJ1dGUtb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLXJlZmxlY3RzLXNyYy1hdHRyaWJ1
dGUtb24taW1nLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW1wcm9wLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVByb3AtcHJvcGVydHktZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3At
YXR0cmlidXRlLXJlZmxlY3RlZC1ieS1pdGVtUHJvcC1wcm9wZXJ0eS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1hdHRyaWJ1dGUtcmVmbGVjdGVkLWJ5
LWl0ZW1SZWYtcHJvcGVydHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9NaWNyb0RhdGEvaXRlbXJlZi1hdHRyaWJ1dGUtcmVmbGVjdGVkLWJ5LWl0ZW1SZWYtcHJvcGVy
dHkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Jlc291cmNlcy9t
aWNyb2RhdGEtY29tbW9uLmpzOgorICAgICAgICAoY3JlYXRlRWxlbWVudCk6CisgICAgICAgIChy
dW5UZXN0KToKKwogMjAxMS0xMC0xOCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFRlc3QgdXBkYXRlIGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjEyMjUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
MDAyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDAyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTc3NjUpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwx
MiArMSwyMyBAQAogVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBkb2N1bWVudC5nZXRJdGVtcygpLmxl
bmd0aCBtdXN0IHJldHVybiB0aGUgY29ycmVjdCBudW1iZXIgb2YgTWljcm9EYXRhIEl0ZW1zIGlu
IHRoZSBEb2N1bWVudC4gCiBBbHNvIGl0IHRlc3RzIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMgbXVz
dCByZXR1cm4gYSBsaXZlIE5vZGVMaXN0LgogCi1kb2N1bWVudC5nZXRJdGVtcygpIHdpdGhvdXQg
YXVyZ3VtZW50OiBQQVNTCi1kb2N1bWVudC5nZXRJdGVtcygpIHdpdGggZW1wdHkgc3RyaW5nIGlu
IHRoZSBhdXJndW1lbnQ6IFBBU1MKLWRvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4
YW1wbGUuY29tL2ZvbycgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudDogUEFTUwotZG9jdW1lbnQu
Z2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vYmFyJyBpdGVtdHlwZSBpbiB0aGUg
YXVyZ3VtZW50OiBQQVNTCi1kb2N1bWVudC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6Ly9leGFtcGxl
LmNvbS9mMScgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudDogUEFTUwotTmV3bHkgYXBwZW5kZWQg
aXRlbSBzaG91bGQgYmUgbm90aWNlZCBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKLVJlbW92aW5nIGl0
ZW0gc2hvdWxkIGJlIG5vdGljZWQgaW4gdGhlIE5vZGVMaXN0OiBQQVNTCitkb2N1bWVudC5nZXRJ
dGVtcygpIHdpdGhvdXQgYXVyZ3VtZW50CitURVNUIFNVQ0NFRURFRAorZG9jdW1lbnQuZ2V0SXRl
bXMoKSB3aXRoIGVtcHR5IHN0cmluZyBpbiB0aGUgYXVyZ3VtZW50CitURVNUIFNVQ0NFRURFRAor
ZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyBpdGVtdHlw
ZSBpbiB0aGUgYXVyZ3VtZW50CitURVNUIFNVQ0NFRURFRAorZG9jdW1lbnQuZ2V0SXRlbXMoKSB3
aXRoICdodHRwOi8vZXhhbXBsZS5jb20vYmFyJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50CitU
RVNUIFNVQ0NFRURFRAorZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5j
b20vZjEnIGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQKK1RFU1QgU1VDQ0VFREVECitDcmVhdGVk
IGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBp
dGVtc2NvcGUKK05ld2x5IGFwcGVuZGVkIGl0ZW0gc2hvdWxkIGJlIG5vdGljZWQgaW4gdGhlIE5v
ZGVMaXN0CitURVNUIFNVQ0NFRURFRAorUmVtb3ZpbmcgaXRlbSBzaG91bGQgYmUgbm90aWNlZCBp
biB0aGUgTm9kZUxpc3QKK1RFU1QgU1VDQ0VFREVECitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhLzAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS8wMDIuaHRtbAkocmV2aXNpb24gOTc3NjUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvMDAyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9k
YXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTEzLDcgKzE0LDcg
QEAKIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0i
dGhyZWUiPgogPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mMSIg
aWQ9ImZvdXIiPjwvZGl2PgogPC9kaXY+Ci0KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNj
cmlwdD4KIHZhciBvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJyk7CiB2YXIgdHdv
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpOwpAQCAtMjYsNyArMjcsNyBAQCBydW5U
ZXN0KGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsCiBydW5UZXN0KGRvY3VtZW50Lmdl
dEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vYmFyJyksIFt0d29dLCAiZG9jdW1lbnQuZ2V0SXRl
bXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vYmFyJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3Vt
ZW50Iik7CiBydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vZjEn
KSwgW2ZvdXJdLCAiZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20v
ZjEnIGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQiKTsKIAotdmFyIGVsZW1lbnQgPSBjcmVhdGVF
bGVtKCdkaXYnLCB7aXRlbXNjb3BlOidpdGVtc2NvcGUnfSk7Cit2YXIgZWxlbWVudCA9IGNyZWF0
ZUVsZW1lbnQoJ2RpdicsIHtpdGVtc2NvcGU6J2l0ZW1zY29wZSd9KTsKIAogLy8gQXBwZW5kIG5l
d2x5IGNyZWF0ZWQgaXRlbSB0byBib2R5CiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1l
bnQpOwpAQCAtMzYsNyArMzcsOCBAQCBydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCksIFtvbmUs
IHR3bywKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7CiBydW5UZXN0KGRvY3Vt
ZW50LmdldEl0ZW1zKCksIFtvbmUsIHR3bywgdGhyZWUsIGZvdXJdLCAiUmVtb3ZpbmcgaXRlbSBz
aG91bGQgYmUgbm90aWNlZCBpbiB0aGUgTm9kZUxpc3QiKTsKIAotZG9jdW1lbnQud3JpdGUoIjxi
cj5URVNUIENPTVBMRVRFIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhLzAwMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhLzAwMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk3NzY1KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsOSArMSwxNiBAQAogVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBsaXZlIE5vZGVMaXN0IG11
c3Qgbm90aWNlIHdoZW4gaXRlbXNjb3BlIGF0dHJpYnV0ZSBjaGFuZ2VzLgogCi1UaGlzIHRlc3Qg
cGFnZSBjb250YWluIHR3byBtaWNyb2RhdGEgaXRlbXM6IFBBU1MKLVJlbW92aW5nIGl0ZW1zY29w
ZSBhdHRyaWJ1dGUgc2hvdWxkIHJlZmxlY3QgaW4gdGhlIE5vZGVMaXN0OiBQQVNTCi1TZXQgaXRl
bXNjb3BlIGF0dHJpYnV0ZSBzaG91bGQgcmVmbGVjdCBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKLVNl
dCBlbGVtZW50Lml0ZW1TY29wZSB0byBmYWxzZSBzaG91bGQgbm90aWNlIGluIHRoZSBOb2RlTGlz
dDogUEFTUwotU2V0IGVsZW1lbnQuaXRlbVNjb3BlIHRvIHRydWUgc2hvdWxkIG5vdGljZSBpbiB0
aGUgTm9kZUxpc3Q6IFBBU1MKK1RoaXMgdGVzdCBwYWdlIGNvbnRhaW4gdHdvIG1pY3JvZGF0YSBp
dGVtcworVEVTVCBTVUNDRUVERUQKK1JlbW92aW5nIGl0ZW1zY29wZSBhdHRyaWJ1dGUgc2hvdWxk
IHJlZmxlY3QgaW4gdGhlIE5vZGVMaXN0CitURVNUIFNVQ0NFRURFRAorU2V0IGl0ZW1zY29wZSBh
dHRyaWJ1dGUgc2hvdWxkIHJlZmxlY3QgaW4gdGhlIE5vZGVMaXN0CitURVNUIFNVQ0NFRURFRAor
U2V0IGVsZW1lbnQuaXRlbVNjb3BlIHRvIGZhbHNlIHNob3VsZCBub3RpY2UgaW4gdGhlIE5vZGVM
aXN0CitURVNUIFNVQ0NFRURFRAorU2V0IGVsZW1lbnQuaXRlbVNjb3BlIHRvIHRydWUgc2hvdWxk
IG5vdGljZSBpbiB0aGUgTm9kZUxpc3QKK1RFU1QgU1VDQ0VFREVECitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhLzAwMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS8wMDMuaHRtbAkocmV2aXNpb24gOTc3NjUpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDAzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzEsMTQg
QEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHA+
VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBsaXZlIE5vZGVMaXN0IG11c3Qgbm90aWNlIHdoZW4gaXRl
bXNjb3BlIGF0dHJpYnV0ZSBjaGFuZ2VzLjwvcD4KIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJo
dHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0ib25lIj48L2Rpdj4KIDxkaXYgaXRlbXNjb3BlIGl0
ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vYmFyIiBpZD0idHdvIj48L2Rpdj4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIHZhciBvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnb25lJyk7CiB2YXIgdHdvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpOwpA
QCAtMjksNyArMzEsOCBAQCBydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCksIFtvbmVdLCAiU2V0
CiB0d28uaXRlbVNjb3BlID0gdHJ1ZTsKIHJ1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29u
ZSwgdHdvXSwgIlNldCBlbGVtZW50Lml0ZW1TY29wZSB0byB0cnVlIHNob3VsZCBub3RpY2UgaW4g
dGhlIE5vZGVMaXN0Iik7CiAKLWRvY3VtZW50LndyaXRlKCI8YnI+VEVTVCBDT01QTEVURSIpOwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA5Nzc2NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS8wMDUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsMTIgQEAKIFRo
aXMgdGVzdHMgdGhhdCBsaXZlIE5vZGVMaXN0IG11c3Qgbm90aWNlIHdoZW4gaXRlbXR5cGUgY2hh
bmdlcy4KIAotVGhpcyB0ZXN0IHBhZ2UgY29udGFpbiB0d28gbWljcm9kYXRhIGl0ZW1zOiBQQVNT
Ci1Ob2RlTGlzdCBtdXN0IG5vdGljZSBvbiByZW1vdmUgYXR0cmlidXRlIGl0ZW10eXBlOiBQQVNT
Ci1Ob2RlTGlzdCBtdXN0IG5vdGljZSBvbiBzZXQgYXR0cmlidXRlIGl0ZW10eXBlOiBQQVNTCitU
aGlzIHRlc3QgcGFnZSBjb250YWluIHR3byBtaWNyb2RhdGEgaXRlbXMKK1RFU1QgU1VDQ0VFREVE
CitOb2RlTGlzdCBtdXN0IG5vdGljZSBvbiByZW1vdmUgYXR0cmlidXRlIGl0ZW10eXBlCitURVNU
IFNVQ0NFRURFRAorTm9kZUxpc3QgbXVzdCBub3RpY2Ugb24gc2V0IGF0dHJpYnV0ZSBpdGVtdHlw
ZQorVEVTVCBTVUNDRUVERUQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA1Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNS5odG1s
CShyZXZpc2lvbiA5Nzc2NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMSwxNCBAQAogPCFET0NUWVBFIGh0bWw+CiA8
aHRtbD4KIDxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24u
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8cD5UaGlzIHRlc3RzIHRoYXQgbGl2ZSBO
b2RlTGlzdCBtdXN0IG5vdGljZSB3aGVuIGl0ZW10eXBlIGNoYW5nZXMuPC9wPgogPGRpdiBpdGVt
c2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJvbmUiPjwvZGl2Pgog
PGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJ0d28i
PjwvZGl2PgotCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiB2YXIgb25lID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpOwogdmFyIHR3byA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0d28nKTsKQEAgLTIyLDcgKzIzLDggQEAgcnVuVGVzdChkb2N1bWVudC5nZXRJ
dGVtcygnaHR0cDovL2V4YW1wbAogb25lLnNldEF0dHJpYnV0ZSgnaXRlbXR5cGUnLCdodHRwOi8v
ZXhhbXBsZS5jb20vZm9vJyk7CiBydW5UZXN0KGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhh
bXBsZS5jb20vZm9vJyksIFtvbmUsIHR3b10sICJOb2RlTGlzdCBtdXN0IG5vdGljZSBvbiBzZXQg
YXR0cmlidXRlIGl0ZW10eXBlIik7CiAKLWRvY3VtZW50LndyaXRlKCI8YnI+VEVTVCBDT01QTEVU
RSIpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDkuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA5Lmh0bWwJ
KHJldmlzaW9uIDk3NzY1KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVBy
b3AtYXR0cmlidXRlLWFkZC1yZW1vdmUtdG9rZW5zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVByb3AtYXR0cmlidXRlLWFkZC1y
ZW1vdmUtdG9rZW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9pdGVtUHJvcC1hdHRyaWJ1dGUtYWRkLXJlbW92ZS10b2tlbnMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACitUaGlzIHRlc3RzIHRoYXQg
aXRlbVByb3AgYXR0cmlidXRlIG11c3QgdXBkYXRlIGNvcnJlY3RseSB3aGVuIHRva2VuIGhhdmUg
YmVlbiBhZGRlZCBvciByZW1vdmVkLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2Citp
dGVtUHJvcC5hZGQgbXVzdCByZWZsZWN0IGNvcnJlY3RseS4KK1BBU1MgZWxlbWVudC5pdGVtUHJv
cC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSA9
PSAnZm9vIEZPTycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wWzBdIGlzICdmb28nCitQ
QVNTIGVsZW1lbnQuaXRlbVByb3BbMV0gaXMgJ0ZPTycKKworaXRlbVByb3AuYWRkIG11c3Qgbm90
IG1ha2UgYW55IGNoYW5nZXMgaWYgYW4gZXhpc3RpbmcgdG9rZW4gaXMgYWRkZWQuCitQQVNTIGVs
ZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9w
LnRvU3RyaW5nKCkgPT0gJ2ZvbyBGT08nIGlzIHRydWUKKworaXRlbVByb3AucmVtb3ZlIG11c3Qg
cmVmbGVjdCBjb3JyZWN0bHkuCitQQVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDEgaXMg
dHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdmb28nKSBpcyBmYWxzZQorUEFT
UyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ0ZPTycgaXMgdHJ1ZQorCitpdGVtUHJv
cC5yZW1vdmUgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhIG5vbi1leGlzdGluZyB0b2tl
biBpcyByZW1vdmVkLgorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAxIGlzIHRydWUK
K1BBU1MgZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygnZm9vJykgaXMgZmFsc2UKK1BBU1MgZWxl
bWVudC5pdGVtUHJvcC50b1N0cmluZygpID09ICdGT08nIGlzIHRydWUKKworaXRlbVByb3AubGVu
Z3RoIG11c3QgYmUgMCB3aGVuIGFsbCB0b2tlbnMgYXJlIHJlbW92ZWQuCitQQVNTIGVsZW1lbnQu
aXRlbVByb3AubGVuZ3RoID09IDAgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmNvbnRh
aW5zKCdmb28nKSBpcyBmYWxzZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdGT08n
KSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtUHJvcC1hdHRy
aWJ1dGUtYWRkLXJlbW92ZS10b2tlbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbVByb3AtYXR0cmlidXRlLWFkZC1yZW1vdmUtdG9rZW5zLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVBy
b3AtYXR0cmlidXRlLWFkZC1yZW1vdmUtdG9rZW5zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGl0ZW1Qcm9wIGF0dHJpYnV0ZSBtdXN0IHVwZGF0ZSBjb3Jy
ZWN0bHkgd2hlbiB0b2tlbiBoYXZlIGJlZW4gYWRkZWQgb3IgcmVtb3ZlZC48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQo
J2RpdicsIHt9KTsKKworZGVidWcoIml0ZW1Qcm9wLmFkZCBtdXN0IHJlZmxlY3QgY29ycmVjdGx5
LiIpOworZWxlbWVudC5pdGVtUHJvcC5hZGQoJ2ZvbycpOworZWxlbWVudC5pdGVtUHJvcC5hZGQo
J0ZPTycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAyIik7Citz
aG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSA9PSAnZm9vIEZPTyciKTsK
K3Nob3VsZEJlKCJlbGVtZW50Lml0ZW1Qcm9wWzBdIiwgIidmb28nIik7CitzaG91bGRCZSgiZWxl
bWVudC5pdGVtUHJvcFsxXSIsICInRk9PJyIpOworCitkZWJ1ZygiPGJyPml0ZW1Qcm9wLmFkZCBt
dXN0IG5vdCBtYWtlIGFueSBjaGFuZ2VzIGlmIGFuIGV4aXN0aW5nIHRva2VuIGlzIGFkZGVkLiIp
OworZWxlbWVudC5pdGVtUHJvcC5hZGQoJ2ZvbycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0
ZW1Qcm9wLmxlbmd0aCA9PSAyIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AudG9T
dHJpbmcoKSA9PSAnZm9vIEZPTyciKTsKKworZGVidWcoIjxicj5pdGVtUHJvcC5yZW1vdmUgbXVz
dCByZWZsZWN0IGNvcnJlY3RseS4iKTsKK2VsZW1lbnQuaXRlbVByb3AucmVtb3ZlKCdmb28nKTsK
K3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMSIpOworc2hvdWxkQmVG
YWxzZSgiZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygnZm9vJykiKQorc2hvdWxkQmVUcnVlKCJl
bGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ0ZPTyciKTsKKworZGVidWcoIjxicj5pdGVt
UHJvcC5yZW1vdmUgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhIG5vbi1leGlzdGluZyB0
b2tlbiBpcyByZW1vdmVkLiIpOworZWxlbWVudC5pdGVtUHJvcC5yZW1vdmUoJ2ZvbycpOworc2hv
dWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAxIik7CitzaG91bGRCZUZhbHNl
KCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdmb28nKSIpOworc2hvdWxkQmVUcnVlKCJlbGVt
ZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ0ZPTyciKTsKKworZGVidWcoIjxicj5pdGVtUHJv
cC5sZW5ndGggbXVzdCBiZSAwIHdoZW4gYWxsIHRva2VucyBhcmUgcmVtb3ZlZC4iKTsKK2VsZW1l
bnQuaXRlbVByb3AucmVtb3ZlKCdGT08nKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJv
cC5sZW5ndGggPT0gMCIpOworc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5pdGVtUHJvcC5jb250YWlu
cygnZm9vJykiKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ0ZP
TycpIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRl
bVByb3AtYXR0cmlidXRlLWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1Qcm9w
LWF0dHJpYnV0ZS1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1Qcm9wLWF0
dHJpYnV0ZS1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACitUaGlzIHRlc3QgdGhhdCB0aGUgaXRlbVByb3Agc2hv
dWxkIGJlIGNvcnJlY3QgZm9yIGFuIGVsZW1lbnQgdGhhdCBoYXMgaXRlbVByb3AgYXR0cmlidXRl
LgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtcHJv
cCwgdmFsdWU6IGZvbyBiYXIgRk9PCitQQVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDMg
aXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbyBiYXIgRk9P
JyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AuaXRlbSgwKSA9PSAnZm9vJyBpcyB0cnVl
CitQQVNTIGVsZW1lbnQuaXRlbVByb3AuaXRlbSgxKSA9PSAnYmFyJyBpcyB0cnVlCitQQVNTIGVs
ZW1lbnQuaXRlbVByb3BbMF0gPT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9w
WzFdID09ICdiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygnYmFy
JykgaXMgdHJ1ZQorCitpdGVtUHJvcCBzaG91bGQgcmV0dXJuIGNhc2Utc2Vuc2l0aXZlIHN0cmlu
Z3MuCitQQVNTIGVsZW1lbnQuaXRlbVByb3AuaXRlbSgyKSA9PSAnRk9PJyBpcyB0cnVlCitQQVNT
IGVsZW1lbnQuaXRlbVByb3BbMl0gPT0gJ0ZPTycgaXMgdHJ1ZQorCitpdGVtUHJvcCBzaG91bGQg
bm90IGNvbnRhaW4gYW4gdW5kZWZpbmVkIHRva2VuLgorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmNv
bnRhaW5zKCd0ZXN0JykgaXMgZmFsc2UKKworaXRlbVByb3AubGVuZ3RoIHNob3VsZCBiZSAwIGlm
IGVsZW1lbnQgaGFzIG5vdCB0b2tlbnMuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitT
ZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IAorUEFTUyBlbGVtZW50MS5pdGVtUHJvcC5s
ZW5ndGggPT0gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1Q
cm9wLWF0dHJpYnV0ZS1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVByb3AtYXR0cmlidXRl
LWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29ycmVjdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1Qcm9wLWF0dHJpYnV0ZS1mb3ItYW4tZWxl
bWVudC1tdXN0LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgdGhhdCB0aGUgaXRlbVByb3Agc2hvdWxkIGJlIGNvcnJlY3QgZm9yIGFuIGVsZW1lbnQg
dGhhdCBoYXMgaXRlbVByb3AgYXR0cmlidXRlLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1wcm9w
OiAnZm9vIGJhciBGT08nfSk7CisKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5sZW5n
dGggPT0gMyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0g
J2ZvbyBiYXIgRk9PJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLml0ZW0oMCkg
PT0gJ2ZvbyciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5pdGVtKDEpID09ICdi
YXInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3BbMF0gPT0gJ2ZvbyciKTsKK3No
b3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcFsxXSA9PSAnYmFyJyIpOworc2hvdWxkQmVUcnVl
KCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdiYXInKSIpOworCitkZWJ1ZygiPGJyPml0ZW1Q
cm9wIHNob3VsZCByZXR1cm4gY2FzZS1zZW5zaXRpdmUgc3RyaW5ncy4iKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5pdGVtUHJvcC5pdGVtKDIpID09ICdGT08nIik7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQuaXRlbVByb3BbMl0gPT0gJ0ZPTyciKTsKKworZGVidWcoIjxicj5pdGVtUHJvcCBzaG91
bGQgbm90IGNvbnRhaW4gYW4gdW5kZWZpbmVkIHRva2VuLiIpOworc2hvdWxkQmVGYWxzZSgiZWxl
bWVudC5pdGVtUHJvcC5jb250YWlucygndGVzdCcpIik7CisKK2RlYnVnKCI8YnI+aXRlbVByb3Au
bGVuZ3RoIHNob3VsZCBiZSAwIGlmIGVsZW1lbnQgaGFzIG5vdCB0b2tlbnMuIik7Cit2YXIgZWxl
bWVudDEgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbXByb3A6ICcnfSk7CitzaG91bGRCZVRy
dWUoImVsZW1lbnQxLml0ZW1Qcm9wLmxlbmd0aCA9PSAwIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVByb3AtYXR0cmlidXRlLW11c3QtYmUtcmVh
ZC1vbmx5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvaXRlbVByb3AtYXR0cmlidXRlLW11c3QtYmUtcmVhZC1vbmx5LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtUHJv
cC1hdHRyaWJ1dGUtbXVzdC1iZS1yZWFkLW9ubHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDExIEBACitUaGlzIHRlc3RzIHRoYXQgaXRlbVByb3AgYW5kIGl0ZW1Qcm9wLmxl
bmd0aCBtdXN0IGJlIHJlYWQtb25seS4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgor
U2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1BBU1MgZWxlbWVudC5pdGVtUHJv
cCA9ICd0ZXN0JzsgZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygpID09ICdmb28nIGlzIHRydWUK
K1BBU1MgZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygndGVzdCcpIGlzIGZhbHNlCitQQVNTIGVs
ZW1lbnQuaXRlbVByb3AubGVuZ3RoID0gMDsgZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMSBp
cyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1Qcm9wLWF0dHJpYnV0
ZS1tdXN0LWJlLXJlYWQtb25seS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtUHJvcC1hdHRyaWJ1dGUtbXVzdC1iZS1yZWFkLW9ubHkuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtUHJvcC1h
dHRyaWJ1dGUtbXVzdC1iZS1yZWFkLW9ubHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3RzIHRoYXQgaXRlbVByb3AgYW5kIGl0ZW1Qcm9wLmxlbmd0aCBtdXN0IGJlIHJl
YWQtb25seS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxl
bWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtcHJvcDogJ2Zvbyd9KTsKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5pdGVtUHJvcCA9ICd0ZXN0JzsgZWxlbWVudC5pdGVtUHJvcC50b1N0cmlu
ZygpID09ICdmb28nIik7CitzaG91bGRCZUZhbHNlKCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5z
KCd0ZXN0JykiKTsKKworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9IDA7
IGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDEiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtUmVmLWF0dHJpYnV0ZS1hZGQtcmVtb3ZlLXRva2Vu
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW1SZWYtYXR0cmlidXRlLWFkZC1yZW1vdmUtdG9rZW5zLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtUmVmLWF0dHJp
YnV0ZS1hZGQtcmVtb3ZlLXRva2Vucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzEgQEAKK1RoaXMgdGVzdHMgdGhhdCBpdGVtUmVmIGF0dHJpYnV0ZSBtdXN0IHVwZGF0ZSBj
b3JyZWN0bHkgd2hlbiB0b2tlbiBoYXZlIGJlZW4gYWRkZWQgb3IgcmVtb3ZlZC4KKworQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGRpdgoraXRlbVJlZi5hZGQgbXVzdCByZWZsZWN0IGNvcnJlY3Rs
eS4KK1BBU1MgZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1MgZWxlbWVu
dC5pdGVtUmVmLnRvU3RyaW5nKCkgaXMgJ2ZvbyBGT08nCitQQVNTIGVsZW1lbnQuaXRlbVJlZlsw
XSBpcyAnZm9vJworUEFTUyBlbGVtZW50Lml0ZW1SZWZbMV0gaXMgJ0ZPTycKKworaXRlbVJlZi5h
ZGQgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhbiBleGlzdGluZyB0b2tlbiBpcyBhZGRl
ZC4KK1BBU1MgZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1MgZWxlbWVu
dC5pdGVtUmVmLnRvU3RyaW5nKCkgaXMgJ2ZvbyBGT08nCisKK2l0ZW1SZWYucmVtb3ZlIG11c3Qg
cmVmbGVjdCBjb3JyZWN0bHkuCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMSBpcyB0
cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpIGlzICdGT08nCitQQVNTIGVsZW1l
bnQuaXRlbVJlZi5jb250YWlucygnZm9vJykgaXMgZmFsc2UKKworaXRlbVJlZi5yZW1vdmUgbXVz
dCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhIG5vbi1leGlzdGluZyB0b2tlbiBpcyByZW1vdmVk
LgorUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDEgaXMgdHJ1ZQorUEFTUyBlbGVtZW50
Lml0ZW1SZWYudG9TdHJpbmcoKSBpcyAnRk9PJworUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFp
bnMoJ2ZvbycpIGlzIGZhbHNlCisKK2l0ZW1SZWYubGVuZ3RoIG11c3QgYmUgMCB3aGVuIGFsbCB0
b2tlbnMgYXJlIHJlbW92ZWQuCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMCBpcyB0
cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnZm9vJykgaXMgZmFsc2UKK1BBU1Mg
ZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdGT08nKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9pdGVtUmVmLWF0dHJpYnV0ZS1hZGQtcmVtb3ZlLXRva2Vucy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtUmVmLWF0
dHJpYnV0ZS1hZGQtcmVtb3ZlLXRva2Vucy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1SZWYtYXR0cmlidXRlLWFkZC1yZW1vdmUtdG9rZW5z
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGl0ZW1SZWYg
YXR0cmlidXRlIG11c3QgdXBkYXRlIGNvcnJlY3RseSB3aGVuIHRva2VuIGhhdmUgYmVlbiBhZGRl
ZCBvciByZW1vdmVkLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3Zh
ciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge30pOworCitkZWJ1ZygiaXRlbVJlZi5h
ZGQgbXVzdCByZWZsZWN0IGNvcnJlY3RseS4iKTsKK2VsZW1lbnQuaXRlbVJlZi5hZGQoJ2Zvbycp
OworZWxlbWVudC5pdGVtUmVmLmFkZCgnRk9PJyk7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRl
bVJlZi5sZW5ndGggPT0gMiIpOworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygp
IiwgIidmb28gRk9PJyIpOworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVJlZlswXSIsICInZm9vJyIp
Oworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVJlZlsxXSIsICInRk9PJyIpOworCitkZWJ1ZygiPGJy
Pml0ZW1SZWYuYWRkIG11c3Qgbm90IG1ha2UgYW55IGNoYW5nZXMgaWYgYW4gZXhpc3RpbmcgdG9r
ZW4gaXMgYWRkZWQuIik7CitlbGVtZW50Lml0ZW1SZWYuYWRkKCdmb28nKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAyIik7CitzaG91bGRCZSgiZWxlbWVudC5pdGVt
UmVmLnRvU3RyaW5nKCkiLCAiJ2ZvbyBGT08nIik7CisKK2RlYnVnKCI8YnI+aXRlbVJlZi5yZW1v
dmUgbXVzdCByZWZsZWN0IGNvcnJlY3RseS4iKTsKK2VsZW1lbnQuaXRlbVJlZi5yZW1vdmUoJ2Zv
bycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDEiKTsKK3Nob3Vs
ZEJlKCJlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSIsICInRk9PJyIpOworc2hvdWxkQmVGYWxz
ZSgiZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdmb28nKSIpOworCitkZWJ1ZygiPGJyPml0ZW1S
ZWYucmVtb3ZlIG11c3Qgbm90IG1ha2UgYW55IGNoYW5nZXMgaWYgYSBub24tZXhpc3RpbmcgdG9r
ZW4gaXMgcmVtb3ZlZC4iKTsKK2VsZW1lbnQuaXRlbVJlZi5yZW1vdmUoJ2ZvbycpOworc2hvdWxk
QmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDEiKTsKK3Nob3VsZEJlKCJlbGVtZW50
Lml0ZW1SZWYudG9TdHJpbmcoKSIsICInRk9PJyIpOworc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5p
dGVtUmVmLmNvbnRhaW5zKCdmb28nKSIpOworCitkZWJ1ZygiPGJyPml0ZW1SZWYubGVuZ3RoIG11
c3QgYmUgMCB3aGVuIGFsbCB0b2tlbnMgYXJlIHJlbW92ZWQuIik7CitlbGVtZW50Lml0ZW1SZWYu
cmVtb3ZlKCdGT08nKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAw
Iik7CitzaG91bGRCZUZhbHNlKCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIik7Citz
aG91bGRCZUZhbHNlKCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ0ZPTycpIik7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVJlZi1hdHRyaWJ1dGUt
Zm9yLWFuLWVsZW1lbnQtbXVzdC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVJlZi1hdHRyaWJ1dGUtZm9yLWFu
LWVsZW1lbnQtbXVzdC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtUmVmLWF0dHJpYnV0ZS1mb3ItYW4tZWxl
bWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI4IEBACitUaGlzIHRlc3QgdGhhdCB0aGUgaXRlbVJlZiBzaG91bGQgYmUgY29ycmVjdCBmb3Ig
YW4gZWxlbWVudCB0aGF0IGhhcyBpdGVtUmVmIGF0dHJpYnV0ZS4KKworQ3JlYXRlZCBlbGVtZW50
IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXJlZiwgdmFsdWU6IGZvbyBiYXIgRk9P
CitQQVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMyBpcyB0cnVlCitQQVNTIGVsZW1lbnQu
aXRlbVJlZi50b1N0cmluZygpID09ICdmb28gYmFyIEZPTycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50
Lml0ZW1SZWYuaXRlbSgwKSA9PSAnZm9vJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5p
dGVtKDEpID09ICdiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmWzBdID09ICdmb28n
IGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmWzFdID09ICdiYXInIGlzIHRydWUKK1BBU1Mg
ZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdiYXInKSBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRl
bVJlZi5jb250YWlucygnZm9vJykgaXMgdHJ1ZQorCitpdGVtUmVmIHNob3VsZCByZXR1cm4gY2Fz
ZS1zZW5zaXRpdmUgc3RyaW5ncy4KK1BBU1MgZWxlbWVudC5pdGVtUmVmLml0ZW0oMikgPT0gJ0ZP
TycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWZbMl0gPT0gJ0ZPTycgaXMgdHJ1ZQorCitp
dGVtUmVmIHNob3VsZCBub3QgY29udGFpbiBhbiB1bmRlZmluZWQgdG9rZW4uCitQQVNTIGVsZW1l
bnQuaXRlbVJlZi5jb250YWlucygndGVzdCcpIGlzIGZhbHNlCisKK2l0ZW1SZWYubGVuZ3RoIHNo
b3VsZCBiZSAwIGlmIGVsZW1lbnQgaGFzIG5vdCB0b2tlbnMuCitDcmVhdGVkIGVsZW1lbnQgb2Yg
dHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtUmVmLCB2YWx1ZTogCitQQVNTIGVsZW1lbnQx
Lml0ZW1SZWYubGVuZ3RoID09IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9pdGVtUmVmLWF0dHJpYnV0ZS1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVJlZi1h
dHRyaWJ1dGUtZm9yLWFuLWVsZW1lbnQtbXVzdC1iZS1jb3JyZWN0Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVJlZi1hdHRyaWJ1dGUtZm9y
LWFuLWVsZW1lbnQtbXVzdC1iZS1jb3JyZWN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHRoYXQgdGhlIGl0ZW1SZWYgc2hvdWxkIGJlIGNvcnJlY3QgZm9yIGFuIGVs
ZW1lbnQgdGhhdCBoYXMgaXRlbVJlZiBhdHRyaWJ1dGUuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRl
bXJlZjogJ2ZvbyBiYXIgRk9PJ30pOworCitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5s
ZW5ndGggPT0gMyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSA9
PSAnZm9vIGJhciBGT08nIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5pdGVtKDAp
ID09ICdmb28nIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5pdGVtKDEpID09ICdi
YXInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZlswXSA9PSAnZm9vJyIpOworc2hv
dWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWZbMV0gPT0gJ2JhciciKTsKK3Nob3VsZEJlVHJ1ZSgi
ZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdiYXInKSIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50
Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIik7CisKK2RlYnVnKCI8YnI+aXRlbVJlZiBzaG91bGQg
cmV0dXJuIGNhc2Utc2Vuc2l0aXZlIHN0cmluZ3MuIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQu
aXRlbVJlZi5pdGVtKDIpID09ICdGT08nIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJl
ZlsyXSA9PSAnRk9PJyIpOworCitkZWJ1ZygiPGJyPml0ZW1SZWYgc2hvdWxkIG5vdCBjb250YWlu
IGFuIHVuZGVmaW5lZCB0b2tlbi4iKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVJlZi5j
b250YWlucygndGVzdCcpIik7CisKK2RlYnVnKCI8YnI+aXRlbVJlZi5sZW5ndGggc2hvdWxkIGJl
IDAgaWYgZWxlbWVudCBoYXMgbm90IHRva2Vucy4iKTsKK3ZhciBlbGVtZW50MSA9IGNyZWF0ZUVs
ZW1lbnQoJ2RpdicsIHtpdGVtUmVmOiAnJ30pOworc2hvdWxkQmVUcnVlKCJlbGVtZW50MS5pdGVt
UmVmLmxlbmd0aCA9PSAwIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvaXRlbVJlZi1hdHRyaWJ1dGUtbXVzdC1iZS1yZWFkLW9ubHktZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtUmVmLWF0
dHJpYnV0ZS1tdXN0LWJlLXJlYWQtb25seS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVJlZi1hdHRyaWJ1dGUtbXVzdC1iZS1y
ZWFkLW9ubHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACitUaGlz
IHRlc3RzIHRoYXQgaXRlbVJlZiBhbmQgaXRlbVJlZi5sZW5ndGggbXVzdCBiZSByZWFkLW9ubHku
CisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1yZWYs
IHZhbHVlOiBmb28KK1BBU1MgZWxlbWVudC5pdGVtcmVmID0gJ3Rlc3QnOyBlbGVtZW50Lml0ZW1S
ZWYudG9TdHJpbmcoKSA9PSAnZm9vJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5jb250
YWlucygndGVzdCcpIGlzIGZhbHNlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPSAwOyBl
bGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDEgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9pdGVtUmVmLWF0dHJpYnV0ZS1tdXN0LWJlLXJlYWQtb25seS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtUmVmLWF0dHJpYnV0
ZS1tdXN0LWJlLXJlYWQtb25seS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL2l0ZW1SZWYtYXR0cmlidXRlLW11c3QtYmUtcmVhZC1vbmx5Lmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGl0ZW1SZWYgYW5kIGl0
ZW1SZWYubGVuZ3RoIG11c3QgYmUgcmVhZC1vbmx5LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1y
ZWY6ICdmb28nfSk7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbXJlZiA9ICd0ZXN0JzsgZWxl
bWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgPT0gJ2ZvbyciKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1l
bnQuaXRlbVJlZi5jb250YWlucygndGVzdCcpIik7CisKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5p
dGVtUmVmLmxlbmd0aCA9IDA7IGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMSIpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1tdXN0LXJl
ZmxlY3QtdGhlLWNvbnRlbnQtYXR0ci1vbi1tZXRhLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC1y
ZWZsZWN0LXRoZS1jb250ZW50LWF0dHItb24tbWV0YS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVz
dC1yZWZsZWN0LXRoZS1jb250ZW50LWF0dHItb24tbWV0YS1lbGVtZW50LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVt
VmFsdWUgbXVzdCByZWZsZWN0IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBvbiBtZXRhIGVsZW1lbnQu
CisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBtZXRhCitTZXQgYXR0cmlidXRlOiBpdGVtcHJv
cCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1Mg
bWV0YUVsZW1lbnQuaXRlbVZhbHVlIGlzICd0ZXN0JworUEFTUyBtZXRhRWxlbWVudC5pdGVtVmFs
dWUgaXMgJ3JldGVzdCcKK1BBU1MgbWV0YUVsZW1lbnQuY29udGVudCBpcyAnYmFyJworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC1yZWZsZWN0LXRoZS1jb250
ZW50LWF0dHItb24tbWV0YS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1tdXN0LXJlZmxlY3QtdGhlLWNvbnRlbnQtYXR0
ci1vbi1tZXRhLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC1yZWZsZWN0LXRoZS1jb250ZW50LWF0dHItb24t
bWV0YS1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2Rh
dGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVu
c3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBv
biBtZXRhIGVsZW1lbnQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
dmFyIG1ldGFFbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnbWV0YScsIHtpdGVtcHJvcDogJ2Zvbycs
Y29udGVudDogJ3Rlc3QnfSk7CitzaG91bGRCZSgnbWV0YUVsZW1lbnQuaXRlbVZhbHVlJywgIid0
ZXN0JyIpOworbWV0YUVsZW1lbnQuY29udGVudCA9ICdyZXRlc3QnOworc2hvdWxkQmUoJ21ldGFF
bGVtZW50Lml0ZW1WYWx1ZScsICIncmV0ZXN0JyIpOworbWV0YUVsZW1lbnQuaXRlbVZhbHVlID0g
J2Jhcic7CitzaG91bGRCZSgnbWV0YUVsZW1lbnQuY29udGVudCcsICInYmFyJyIpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtcmVm
bGVjdC10aGUtc3JjLWF0dHItaWYtZWxlbWVudC1pcy1hdWRpby1lbWJlZC1pZnJhbWUtc291cmNl
LXRyYWNrLXZpZGVvLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtcmVmbGVjdC10aGUtc3JjLWF0dHItaWYtZWxl
bWVudC1pcy1hdWRpby1lbWJlZC1pZnJhbWUtc291cmNlLXRyYWNrLXZpZGVvLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFs
dWUtbXVzdC1yZWZsZWN0LXRoZS1zcmMtYXR0ci1pZi1lbGVtZW50LWlzLWF1ZGlvLWVtYmVkLWlm
cmFtZS1zb3VyY2UtdHJhY2stdmlkZW8tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDU0IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IHJlZmxlY3Qg
dGhlIHNyYyBhdHRyaWJ1dGUgaWYgdGhlIGVsZW1lbnQgaXMgYW4gYXVkaW8sIGVtYmVkLCBpZnJh
bWUsIHNvdXJjZSwgdHJhY2ssIG9yIHZpZGVvIGVsZW1lbnQuCisKK1Rlc3RpbmcgJ2F1ZGlvJyBl
bGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYXVkaW8KK1NldCBh
dHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVl
OiBodHRwOi8vZXhhbXBsZS5vcmcvCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0
cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8v
ZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5zcmMgaXMgJ2h0dHA6Ly9leGFtcGxlLmNv
bS8nCisKK1Rlc3RpbmcgJ2VtYmVkJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1l
bnQgb2YgdHlwZTogZW1iZWQKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitT
ZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5vcmcvCitQQVNTIHRlc3RF
bGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1l
bnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5z
cmMgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCisKK1Rlc3RpbmcgJ2lmcmFtZScgZWxlbWVudCdz
IGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGlmcmFtZQorU2V0IGF0dHJpYnV0
ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IGh0dHA6
Ly9leGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhh
bXBsZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxl
Lm5ldC8nCitQQVNTIHRlc3RFbGVtZW50LnNyYyBpcyAnaHR0cDovL2V4YW1wbGUuY29tLycKKwor
VGVzdGluZyAnc291cmNlJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2Yg
dHlwZTogc291cmNlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0
dHJpYnV0ZTogc3JjLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUub3JnLworUEFTUyB0ZXN0RWxlbWVu
dC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0
ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUubmV0LycKK1BBU1MgdGVzdEVsZW1lbnQuc3JjIGlz
ICdodHRwOi8vZXhhbXBsZS5jb20vJworCitUZXN0aW5nICd0cmFjaycgZWxlbWVudCdzIGJlaGF2
aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHRyYWNrCitTZXQgYXR0cmlidXRlOiBpdGVt
cHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogaHR0cDovL2V4YW1w
bGUub3JnLworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9y
Zy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUubmV0LycK
K1BBU1MgdGVzdEVsZW1lbnQuc3JjIGlzICdodHRwOi8vZXhhbXBsZS5jb20vJworCitUZXN0aW5n
ICd2aWRlbycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHZp
ZGVvCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTog
c3JjLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUub3JnLworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFs
dWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBp
cyAnaHR0cDovL2V4YW1wbGUubmV0LycKK1BBU1MgdGVzdEVsZW1lbnQuc3JjIGlzICdodHRwOi8v
ZXhhbXBsZS5jb20vJworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1
ZS1tdXN0LXJlZmxlY3QtdGhlLXNyYy1hdHRyLWlmLWVsZW1lbnQtaXMtYXVkaW8tZW1iZWQtaWZy
YW1lLXNvdXJjZS10cmFjay12aWRlby5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC1yZWZsZWN0LXRoZS1zcmMtYXR0ci1pZi1l
bGVtZW50LWlzLWF1ZGlvLWVtYmVkLWlmcmFtZS1zb3VyY2UtdHJhY2stdmlkZW8uaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVz
dC1yZWZsZWN0LXRoZS1zcmMtYXR0ci1pZi1lbGVtZW50LWlzLWF1ZGlvLWVtYmVkLWlmcmFtZS1z
b3VyY2UtdHJhY2stdmlkZW8uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBp
dGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBzcmMgYXR0cmlidXRlIGlmIHRoZSBlbGVtZW50IGlz
IGFuIGF1ZGlvLCBlbWJlZCwgaWZyYW1lLCBzb3VyY2UsIHRyYWNrLCBvciB2aWRlbyBlbGVtZW50
LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciB0ZXN0RWxlbWVu
dDsKK2Z1bmN0aW9uIHJ1blRlc3QodGFnTmFtZSkKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyAnIiAr
IHRhZ05hbWUgKyAiJyBlbGVtZW50J3MgYmVoYXZpb3IuIik7CisgICAgdGVzdEVsZW1lbnQgPSBj
cmVhdGVFbGVtZW50KHRhZ05hbWUsIHtpdGVtcHJvcDogJ2ZvbycsIHNyYzogJ2h0dHA6Ly9leGFt
cGxlLm9yZy8nfSk7CisgICAgc2hvdWxkQmUoInRlc3RFbGVtZW50Lml0ZW1WYWx1ZSIsICInaHR0
cDovL2V4YW1wbGUub3JnLyciKTsKKyAgICB0ZXN0RWxlbWVudC5zcmMgPSAnaHR0cDovL2V4YW1w
bGUubmV0Lyc7CisgICAgc2hvdWxkQmUoInRlc3RFbGVtZW50Lml0ZW1WYWx1ZSIsICInaHR0cDov
L2V4YW1wbGUubmV0LyciKTsKKyAgICB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgPSAnaHR0cDovL2V4
YW1wbGUuY29tLyc7CisgICAgc2hvdWxkQmUoInRlc3RFbGVtZW50LnNyYyIsICInaHR0cDovL2V4
YW1wbGUuY29tLyciKTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK3J1blRlc3QoJ2F1ZGlvJyk7City
dW5UZXN0KCdlbWJlZCcpOworcnVuVGVzdCgnaWZyYW1lJyk7CitydW5UZXN0KCdzb3VyY2UnKTsK
K3J1blRlc3QoJ3RyYWNrJyk7CitydW5UZXN0KCd2aWRlbycpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtcmV0dXJuLS1pdHNlbGYt
dGhlLWVsZW1lbnQtaGFzLWl0ZW1zY29wZS1hdHRyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtcmV0dXJuLS1p
dHNlbGYtdGhlLWVsZW1lbnQtaGFzLWl0ZW1zY29wZS1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC1y
ZXR1cm4tLWl0c2VsZi10aGUtZWxlbWVudC1oYXMtaXRlbXNjb3BlLWF0dHItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk3IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0
ZW1WYWx1ZSBtdXN0IHJldHVybiB0aGUgZWxlbWVudCBpdHNlbGYgaWYgdGhlIGVsZW1lbnQgaGFz
IGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUKKworVGVzdGluZyAnbWV0YScgZWxlbWVudCdzIGJlaGF2
aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IG1ldGEKK1NldCBhdHRyaWJ1dGU6IGl0ZW1z
Y29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBm
b28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50
Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorCitUZXN0aW5nICdhdWRpbycgZWxlbWVudCdzIGJl
aGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGF1ZGlvCitTZXQgYXR0cmlidXRlOiBp
dGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1
ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxl
bWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKKworVGVzdGluZyAnZW1iZWQnIGVsZW1lbnQn
cyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBlbWJlZAorU2V0IGF0dHJpYnV0
ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwg
dmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVz
dEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CisKK1Rlc3RpbmcgJ2lmcmFtZScgZWxl
bWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGlmcmFtZQorU2V0IGF0
dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVt
cHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BB
U1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CisKK1Rlc3RpbmcgJ2ltZycg
ZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGltZworU2V0IGF0
dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVt
cHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BB
U1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CisKK1Rlc3RpbmcgJ3NvdXJj
ZScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHNvdXJjZQor
U2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRl
OiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRl
c3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CisKK1Rlc3Rpbmcg
J3RyYWNrJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdHJh
Y2sKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJp
YnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVl
OiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorCitUZXN0
aW5nICd2aWRlbycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6
IHZpZGVvCitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBh
dHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2
YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKKwor
VGVzdGluZyAnYScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6
IGEKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJp
YnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVl
OiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorCitUZXN0
aW5nICdhcmVhJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTog
YXJlYQorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0
cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFs
dWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CisKK1Rl
c3RpbmcgJ2xpbmsnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBl
OiBsaW5rCitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBh
dHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2
YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKKwor
VGVzdGluZyAnb2JqZWN0JyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2Yg
dHlwZTogb2JqZWN0CitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUK
K1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250
ZW50LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1l
bnQKKworVGVzdGluZyAnZGl2JyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQg
b2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUK
K1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250
ZW50LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1l
bnQKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC1yZXR1
cm4tLWl0c2VsZi10aGUtZWxlbWVudC1oYXMtaXRlbXNjb3BlLWF0dHIuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtcmV0dXJu
LS1pdHNlbGYtdGhlLWVsZW1lbnQtaGFzLWl0ZW1zY29wZS1hdHRyLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtcmV0dXJu
LS1pdHNlbGYtdGhlLWVsZW1lbnQtaGFzLWl0ZW1zY29wZS1hdHRyLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZXR1
cm4gdGhlIGVsZW1lbnQgaXRzZWxmIGlmIHRoZSBlbGVtZW50IGhhcyBhbiBpdGVtc2NvcGUgYXR0
cmlidXRlPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHRlc3RF
bGVtZW50OworZnVuY3Rpb24gcnVuVGVzdCh0YWdOYW1lKSB7CisgICAgZGVidWcoIlRlc3Rpbmcg
JyIgKyB0YWdOYW1lICsgIicgZWxlbWVudCdzIGJlaGF2aW9yLiIpOworICAgIHRlc3RFbGVtZW50
ID0gY3JlYXRlRWxlbWVudCh0YWdOYW1lLCB7aXRlbXNjb3BlOiAnaXRlbXNjb3BlJywgaXRlbXBy
b3A6ICdmb28nLCBjb250ZW50OiAndGVzdCd9KTsKKyAgICBzaG91bGRCZSgidGVzdEVsZW1lbnQu
aXRlbVZhbHVlIiwgInRlc3RFbGVtZW50Iik7CisgICAgZGVidWcoJycpOworfQorCitydW5UZXN0
KCdtZXRhJyk7CitydW5UZXN0KCdhdWRpbycpOworcnVuVGVzdCgnZW1iZWQnKTsKK3J1blRlc3Qo
J2lmcmFtZScpOworcnVuVGVzdCgnaW1nJyk7CitydW5UZXN0KCdzb3VyY2UnKTsKK3J1blRlc3Qo
J3RyYWNrJyk7CitydW5UZXN0KCd2aWRlbycpOworcnVuVGVzdCgnYScpOworcnVuVGVzdCgnYXJl
YScpOworcnVuVGVzdCgnbGluaycpOworcnVuVGVzdCgnb2JqZWN0Jyk7CitydW5UZXN0KCdkaXYn
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1
ZS1tdXN0LXJldHVybi1udWxsLWlmLWVsZW1lbnQtaGFzLW5vLWl0ZW1wcm9wLWF0dHItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVt
VmFsdWUtbXVzdC1yZXR1cm4tbnVsbC1pZi1lbGVtZW50LWhhcy1uby1pdGVtcHJvcC1hdHRyLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9pdGVtVmFsdWUtbXVzdC1yZXR1cm4tbnVsbC1pZi1lbGVtZW50LWhhcy1uby1pdGVtcHJvcC1h
dHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NiBAQAorVGhpcyB0ZXN0
cyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IGJlIG51bGwgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2
ZSBhbiBpdGVtcHJvcCBhdHRyaWJ1dGUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IG1ldGEK
K1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQo
J21ldGEnLCB7Y29udGVudDogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorCitD
cmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYXVkaW8KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6
IHRlc3QKK1BBU1MgY3JlYXRlRWxlbWVudCgnYXVkaW8nLCB7c3JjOiAndGVzdCd9KS5pdGVtVmFs
dWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBlbWJlZAorU2V0
IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdAorUEFTUyBjcmVhdGVFbGVtZW50KCdlbWJlZCcs
IHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKKworQ3JlYXRlZCBlbGVt
ZW50IG9mIHR5cGU6IGlmcmFtZQorU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdAorUEFT
UyBjcmVhdGVFbGVtZW50KCdpZnJhbWUnLCB7c3JjOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVs
bCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBpbWcKK1NldCBhdHRyaWJ1dGU6
IHNyYywgdmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRlRWxlbWVudCgnaW1nJywge3NyYzogJ3Rlc3Qn
fSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTog
c291cmNlCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1l
bnQoJ3NvdXJjZScsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKKwor
Q3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHRyYWNrCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVl
OiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3RyYWNrJywge3NyYzogJ3Rlc3QnfSkuaXRlbVZh
bHVlID09IG51bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdmlkZW8KK1Nl
dCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRlRWxlbWVudCgndmlkZW8n
LCB7c3JjOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxl
bWVudCBvZiB0eXBlOiBhCitTZXQgYXR0cmlidXRlOiBocmVmLCB2YWx1ZTogdGVzdAorUEFTUyBj
cmVhdGVFbGVtZW50KCdhJywge2hyZWY6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRy
dWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGFyZWEKK1NldCBhdHRyaWJ1dGU6IGhyZWYs
IHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2FyZWEnLCB7aHJlZjogJ3Rlc3QnfSku
aXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogbGlu
aworU2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRlRWxlbWVudCgn
bGluaycsIHtocmVmOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0
ZWQgZWxlbWVudCBvZiB0eXBlOiBvYmplY3QKK1NldCBhdHRyaWJ1dGU6IGRhdGEsIHZhbHVlOiB0
ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ29iamVjdCcsIHtkYXRhOiAndGVzdCd9KS5pdGVtVmFs
dWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiB0aW1lCitQQVNT
IGNyZWF0ZUVsZW1lbnQoJ3RpbWUnLCB7fSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorCitD
cmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdGltZQorU2V0IGF0dHJpYnV0ZTogZGF0ZXRpbWUsIHZh
bHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3RpbWUnLCB7ZGF0ZXRpbWU6ICd0ZXN0J30p
Lml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRp
dgorUEFTUyBjcmVhdGVFbGVtZW50KCdkaXYnLCB7fSwgJ3Rlc3QnKS5pdGVtVmFsdWUgPT0gbnVs
bCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBtYWRldXBvbnRoZXNwb3QKK1BB
U1MgY3JlYXRlRWxlbWVudCgnbWFkZXVwb250aGVzcG90Jywge30sICd0ZXN0JykuaXRlbVZhbHVl
ID09IG51bGwgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFs
dWUtbXVzdC1yZXR1cm4tbnVsbC1pZi1lbGVtZW50LWhhcy1uby1pdGVtcHJvcC1hdHRyLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1t
dXN0LXJldHVybi1udWxsLWlmLWVsZW1lbnQtaGFzLW5vLWl0ZW1wcm9wLWF0dHIuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVz
dC1yZXR1cm4tbnVsbC1pZi1lbGVtZW50LWhhcy1uby1pdGVtcHJvcC1hdHRyLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IGJlIG51
bGwgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBpdGVtcHJvcCBhdHRyaWJ1dGU8L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitzaG91bGRCZVRydWUoImNyZWF0
ZUVsZW1lbnQoJ21ldGEnLCB7Y29udGVudDogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsK
K2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnYXVkaW8nLCB7c3JjOiAn
dGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJj
cmVhdGVFbGVtZW50KCdlbWJlZCcsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7
CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScsIHtzcmM6
ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUo
ImNyZWF0ZUVsZW1lbnQoJ2ltZycsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7
CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ3NvdXJjZScsIHtzcmM6
ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUo
ImNyZWF0ZUVsZW1lbnQoJ3RyYWNrJywge3NyYzogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwi
KTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgndmlkZW8nLCB7c3Jj
OiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVl
KCJjcmVhdGVFbGVtZW50KCdhJywge2hyZWY6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7
CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2FyZWEnLCB7aHJlZjog
J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgi
Y3JlYXRlRWxlbWVudCgnbGluaycsIHtocmVmOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIp
OworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdvYmplY3QnLCB7ZGF0
YTogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1
ZSgiY3JlYXRlRWxlbWVudCgndGltZScsIHt9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWco
JycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCd0aW1lJywge2RhdGV0aW1lOiAndGVz
dCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVh
dGVFbGVtZW50KCdkaXYnLCB7fSwgJ3Rlc3QnKS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWco
JycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdtYWRldXBvbnRoZXNwb3QnLCB7fSwg
J3Rlc3QnKS5pdGVtVmFsdWUgPT0gbnVsbCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtdGhyb3ctZXhjcGV0aW9uLW9uc2V0dGlu
Zy1lbGVtZW50LWhhcy1hbi1pdGVtc2NvcGUtYXR0ci1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1tdXN0LXRocm93LWV4
Y3BldGlvbi1vbnNldHRpbmctZWxlbWVudC1oYXMtYW4taXRlbXNjb3BlLWF0dHItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1W
YWx1ZS1tdXN0LXRocm93LWV4Y3BldGlvbi1vbnNldHRpbmctZWxlbWVudC1oYXMtYW4taXRlbXNj
b3BlLWF0dHItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk3IEBACitUaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IHdyaXRpbmcgdG8gaXRlbVZhbHVlIG11c3QgdGhyb3cgYW4gSU5W
QUxJRF9BQ0NFU1NfRVJSIGVycm9yIGlmIHRoZSBlbGVtZW50IGhhcyBhbiBpdGVtc2NvcGUgYXR0
cmlidXRlLgorCitUZXN0aW5nICdtZXRhJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVs
ZW1lbnQgb2YgdHlwZTogbWV0YQorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRl
bXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0
ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVk
IGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnYXVkaW8nIGVs
ZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhdWRpbworU2V0IGF0
dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVt
cHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RF
U1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUND
RVNTX0VSUi4KKworVGVzdGluZyAnZW1iZWQnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQg
ZWxlbWVudCBvZiB0eXBlOiBlbWJlZAorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTog
aXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJp
YnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVj
dGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnaWZyYW1l
JyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaWZyYW1lCitT
ZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6
IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVz
dAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJ
RF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICdpbWcnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0
ZWQgZWxlbWVudCBvZiB0eXBlOiBpbWcKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6
IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRy
aWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBl
Y3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ3NvdXJj
ZScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHNvdXJjZQor
U2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRl
OiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRl
c3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFM
SURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAndHJhY2snIGVsZW1lbnQncyBiZWhhdmlvci4KK0Ny
ZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiB0cmFjaworU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2
YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0
IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhl
IGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAn
dmlkZW8nIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiB2aWRl
bworU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmli
dXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6
IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElO
VkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnYScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3Jl
YXRlZCBlbGVtZW50IG9mIHR5cGU6IGEKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6
IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRy
aWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBl
Y3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ2FyZWEn
IGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhcmVhCitTZXQg
YXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0
ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAor
VEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9B
Q0NFU1NfRVJSLgorCitUZXN0aW5nICdsaW5rJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVk
IGVsZW1lbnQgb2YgdHlwZTogbGluaworU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTog
aXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJp
YnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVj
dGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnb2JqZWN0
JyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogb2JqZWN0CitT
ZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6
IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVz
dAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJ
RF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICdkaXYnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0
ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6
IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRy
aWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBl
Y3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtdGhyb3ctZXhjcGV0aW9uLW9uc2V0dGlu
Zy1lbGVtZW50LWhhcy1hbi1pdGVtc2NvcGUtYXR0ci5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC10aHJvdy1leGNwZXRpb24t
b25zZXR0aW5nLWVsZW1lbnQtaGFzLWFuLWl0ZW1zY29wZS1hdHRyLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtdGhyb3ct
ZXhjcGV0aW9uLW9uc2V0dGluZy1lbGVtZW50LWhhcy1hbi1pdGVtc2NvcGUtYXR0ci5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgd3JpdGluZyB0
byBpdGVtVmFsdWUgbXVzdCB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19FUlIgZXJyb3IgaWYgdGhl
IGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUuPC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGV4Y2VwdGlvbkNvZGU7CitmdW5jdGlvbiBydW5UZXN0
KHRhZ05hbWUpCit7CisgICAgZGVidWcoIlRlc3RpbmcgJyIgKyB0YWdOYW1lICsgIicgZWxlbWVu
dCdzIGJlaGF2aW9yLiIpOworICAgIGV4Y2VwdGlvbkNvZGUgPSB1bmRlZmluZWQ7CisgICAgdGVz
dEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIHtpdGVtc2NvcGU6ICdpdGVtc2NvcGUn
LCBpdGVtcHJvcDogJ2ZvbycsIGNvbnRlbnQ6ICd0ZXN0J30pOworICAgIHRyeSB7CisgICAgICAg
IHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSA9ICd0ZXN0JworICAgIH1jYXRjaCAoZSkgeworICAgICAg
ICBleGNlcHRpb25Db2RlID0gZS5jb2RlOworICAgIH0KKworICAgIGlmIChleGNlcHRpb25Db2Rl
ID09IERPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIpCisgICAgICAgIGRlYnVnKCJURVNU
IFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKCIgKyBleGNlcHRpb25Db2Rl
ICsgIikgSU5WQUxJRF9BQ0NFU1NfRVJSLjxicj4iKTsKKyAgICBlbHNlCisgICAgICAgIGRlYnVn
KCJURVNUIEZBSUxFRDogU2hvdWxkJ3ZlIHRocm93biBJTlZBTElEX0FDQ0VTU19FUlIgYnV0IHRo
cmV3ICIgKyBleGNlcHRpb25Db2RlICsgIi48YnI+Iik7Cit9CisKK3J1blRlc3QoJ21ldGEnKTsK
K3J1blRlc3QoJ2F1ZGlvJyk7CitydW5UZXN0KCdlbWJlZCcpOworcnVuVGVzdCgnaWZyYW1lJyk7
CitydW5UZXN0KCdpbWcnKTsKK3J1blRlc3QoJ3NvdXJjZScpOworcnVuVGVzdCgndHJhY2snKTsK
K3J1blRlc3QoJ3ZpZGVvJyk7CitydW5UZXN0KCdhJyk7CitydW5UZXN0KCdhcmVhJyk7CitydW5U
ZXN0KCdsaW5rJyk7CitydW5UZXN0KCdvYmplY3QnKTsKK3J1blRlc3QoJ2RpdicpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLW11c3QtdGhy
b3ctZXhjcGV0aW9uLW9uc2V0dGluZy1pZi1lbGVtZW50LWhhcy1uby1pdGVtcHJvcC1hdHRyLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
aXRlbVZhbHVlLW11c3QtdGhyb3ctZXhjcGV0aW9uLW9uc2V0dGluZy1pZi1lbGVtZW50LWhhcy1u
by1pdGVtcHJvcC1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC10aHJvdy1leGNwZXRpb24tb25zZXR0
aW5nLWlmLWVsZW1lbnQtaGFzLW5vLWl0ZW1wcm9wLWF0dHItZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDcxIEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHdyaXRpbmcgdG8g
aXRlbVZhbHVlIG11c3QgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGVycm9yIGlmIHRoZSBl
bGVtZW50IGRvZXMgbm90IGhhdmUgYW4gaXRlbXByb3AgYXR0cmlidXRlLgorCitUZXN0aW5nICdt
ZXRhJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogbWV0YQor
U2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50CitURVNUIFNVQ0NFRURF
RDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisK
K1Rlc3RpbmcgJ2F1ZGlvJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2Yg
dHlwZTogYXVkaW8KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0Q29udGVudAor
VEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9B
Q0NFU1NfRVJSLgorCitUZXN0aW5nICdlbWJlZCcgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGVtYmVkCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTog
dGVzdENvbnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAo
MTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnaWZyYW1lJyBlbGVtZW50J3MgYmVo
YXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaWZyYW1lCitTZXQgYXR0cmlidXRlOiBj
b250ZW50LCB2YWx1ZTogdGVzdENvbnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVj
dGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnaW1nJyBl
bGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaW1nCitTZXQgYXR0
cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdENvbnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3Qg
dGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGlu
ZyAnc291cmNlJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTog
c291cmNlCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdENvbnRlbnQKK1RFU1Qg
U1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNT
X0VSUi4KKworVGVzdGluZyAndHJhY2snIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxl
bWVudCBvZiB0eXBlOiB0cmFjaworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RD
b250ZW50CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJ
TlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ3ZpZGVvJyBlbGVtZW50J3MgYmVoYXZpb3Iu
CitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdmlkZW8KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQs
IHZhbHVlOiB0ZXN0Q29udGVudAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhj
ZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICdhJyBlbGVtZW50J3Mg
YmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYQorU2V0IGF0dHJpYnV0ZTogY29u
dGVudCwgdmFsdWU6IHRlc3RDb250ZW50CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3Rl
ZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ2FyZWEnIGVs
ZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhcmVhCitTZXQgYXR0
cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdENvbnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3Qg
dGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGlu
ZyAnbGluaycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGxp
bmsKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0Q29udGVudAorVEVTVCBTVUND
RUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJS
LgorCitUZXN0aW5nICdvYmplY3QnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVu
dCBvZiB0eXBlOiBvYmplY3QKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0Q29u
dGVudAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5W
QUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICdkaXYnIGVsZW1lbnQncyBiZWhhdmlvci4KK0Ny
ZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVl
OiB0ZXN0Q29udGVudAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9u
ICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW1WYWx1ZS1tdXN0LXRocm93LWV4Y3BldGlvbi1vbnNldHRpbmctaWYtZWxlbWVudC1o
YXMtbm8taXRlbXByb3AtYXR0ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC10aHJvdy1leGNwZXRpb24tb25zZXR0aW5nLWlm
LWVsZW1lbnQtaGFzLW5vLWl0ZW1wcm9wLWF0dHIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtbXVzdC10aHJvdy1leGNwZXRpb24t
b25zZXR0aW5nLWlmLWVsZW1lbnQtaGFzLW5vLWl0ZW1wcm9wLWF0dHIuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHdyaXRpbmcgdG8gaXRlbVZh
bHVlIG11c3QgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGVycm9yIGlmIHRoZSBlbGVtZW50
IGRvZXMgbm90IGhhdmUgYW4gaXRlbXByb3AgYXR0cmlidXRlLjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBleGNlcHRpb25Db2RlOworZnVuY3Rpb24gcnVuVGVz
dCh0YWdOYW1lKQoreworICAgIGRlYnVnKCJUZXN0aW5nICciICsgdGFnTmFtZSArICInIGVsZW1l
bnQncyBiZWhhdmlvci4iKTsKKyAgICBleGNlcHRpb25Db2RlID0gdW5kZWZpbmVkOworICAgIHRl
c3RFbGVtZW50ID0gY3JlYXRlRWxlbWVudCh0YWdOYW1lLCB7Y29udGVudDogJ3Rlc3RDb250ZW50
J30pOworICAgIHRyeSB7CisgICAgICAgIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSA9ICd0ZXN0Jwor
ICAgIH1jYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb25Db2RlID0gZS5jb2RlOworICAgIH0K
KworICAgIGlmIChleGNlcHRpb25Db2RlID09IERPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19F
UlIpCisgICAgICAgIGRlYnVnKCJURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNl
cHRpb24gKCIgKyBleGNlcHRpb25Db2RlICsgIikgSU5WQUxJRF9BQ0NFU1NfRVJSLjxicj4iKTsK
KyAgICBlbHNlCisgICAgICAgIGRlYnVnKCJURVNUIEZBSUxFRDogU2hvdWxkJ3ZlIHRocm93biBJ
TlZBTElEX0FDQ0VTU19FUlIgYnV0IHRocmV3ICIgKyBleGNlcHRpb25Db2RlICsgIi48YnI+Iik7
Cit9CisKK3J1blRlc3QoJ21ldGEnKTsKK3J1blRlc3QoJ2F1ZGlvJyk7CitydW5UZXN0KCdlbWJl
ZCcpOworcnVuVGVzdCgnaWZyYW1lJyk7CitydW5UZXN0KCdpbWcnKTsKK3J1blRlc3QoJ3NvdXJj
ZScpOworcnVuVGVzdCgndHJhY2snKTsKK3J1blRlc3QoJ3ZpZGVvJyk7CitydW5UZXN0KCdhJyk7
CitydW5UZXN0KCdhcmVhJyk7CitydW5UZXN0KCdsaW5rJyk7CitydW5UZXN0KCdvYmplY3QnKTsK
K3J1blRlc3QoJ2RpdicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbVZhbHVlLXJlZmxlY3RzLWRhdGEtYXR0ci1vbi1vYmplY3QtZWxlbWVudC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW1WYWx1ZS1yZWZsZWN0cy1kYXRhLWF0dHItb24tb2JqZWN0LWVsZW1lbnQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1
ZS1yZWZsZWN0cy1kYXRhLWF0dHItb24tb2JqZWN0LWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1
ZSBtdXN0IHJlZmxlY3QgdGhlIGRhdGEgYXR0cmlidXRlIG9uIG9iamVjdCBlbGVtZW50LgorCitD
cmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogb2JqZWN0CitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwg
dmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogZGF0YSwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLm9y
Zy8KK1BBU1Mgb2JqZWN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9yZy8n
CitQQVNTIG9iamVjdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJwor
UEFTUyBvYmplY3RFbGVtZW50LmRhdGEgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1yZWZsZWN0cy1kYXRhLWF0dHItb24t
b2JqZWN0LWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvaXRlbVZhbHVlLXJlZmxlY3RzLWRhdGEtYXR0ci1vbi1vYmplY3QtZWxlbWVudC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1W
YWx1ZS1yZWZsZWN0cy1kYXRhLWF0dHItb24tb2JqZWN0LWVsZW1lbnQuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IHJl
ZmxlY3QgdGhlIGRhdGEgYXR0cmlidXRlIG9uIG9iamVjdCBlbGVtZW50LjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBvYmplY3RFbGVtZW50ID0gY3JlYXRlRWxl
bWVudCgnb2JqZWN0Jywge2l0ZW1wcm9wOiAnZm9vJywgZGF0YTogJ2h0dHA6Ly9leGFtcGxlLm9y
Zy8nfSk7CitzaG91bGRCZSgnb2JqZWN0RWxlbWVudC5pdGVtVmFsdWUnLCAiJ2h0dHA6Ly9leGFt
cGxlLm9yZy8nIik7CitvYmplY3RFbGVtZW50LmRhdGEgPSAnaHR0cDovL2V4YW1wbGUubmV0Lyc7
CitzaG91bGRCZSgnb2JqZWN0RWxlbWVudC5pdGVtVmFsdWUnLCAiJ2h0dHA6Ly9leGFtcGxlLm5l
dC8nIik7CitvYmplY3RFbGVtZW50Lml0ZW1WYWx1ZSA9ICdodHRwOi8vZXhhbXBsZS5jb20vJzsK
K3Nob3VsZEJlKCdvYmplY3RFbGVtZW50LmRhdGEnLCAiJ2h0dHA6Ly9leGFtcGxlLmNvbS8nIik7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUt
cmVmbGVjdHMtaHJlZi1hdHRyLWlmLWVsZW1lbnQtaXMtYW5jaG9yLWFyZWEtaW5rLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZh
bHVlLXJlZmxlY3RzLWhyZWYtYXR0ci1pZi1lbGVtZW50LWlzLWFuY2hvci1hcmVhLWluay1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
aXRlbVZhbHVlLXJlZmxlY3RzLWhyZWYtYXR0ci1pZi1lbGVtZW50LWlzLWFuY2hvci1hcmVhLWlu
ay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKK1RoaXMgdGVzdCBl
bnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgaHJlZiBhdHRyaWJ1dGUgaWYg
dGhlIGVsZW1lbnQgaXMgYW4gYSwgYXJlYSwgb3IgbGluayBlbGVtZW50LgorCitUZXN0aW5nICdh
JyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYQorU2V0IGF0
dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGhyZWYsIHZhbHVl
OiBodHRwOi8vZXhhbXBsZS5vcmcvCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0
cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8v
ZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5ocmVmIGlzICdodHRwOi8vZXhhbXBsZS5j
b20vJworCitUZXN0aW5nICdhcmVhJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1l
bnQgb2YgdHlwZTogYXJlYQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1Nl
dCBhdHRyaWJ1dGU6IGhyZWYsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5vcmcvCitQQVNTIHRlc3RF
bGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVsZW1l
bnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVudC5o
cmVmIGlzICdodHRwOi8vZXhhbXBsZS5jb20vJworCitUZXN0aW5nICdsaW5rJyBlbGVtZW50J3Mg
YmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogbGluaworU2V0IGF0dHJpYnV0ZTog
aXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGhyZWYsIHZhbHVlOiBodHRwOi8v
ZXhhbXBsZS5vcmcvCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1w
bGUub3JnLycKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5u
ZXQvJworUEFTUyB0ZXN0RWxlbWVudC5ocmVmIGlzICdodHRwOi8vZXhhbXBsZS5jb20vJworCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1yZWZsZWN0cy1ocmVmLWF0
dHItaWYtZWxlbWVudC1pcy1hbmNob3ItYXJlYS1pbmsuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbVZhbHVlLXJlZmxlY3RzLWhyZWYtYXR0ci1p
Zi1lbGVtZW50LWlzLWFuY2hvci1hcmVhLWluay5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1yZWZsZWN0cy1ocmVmLWF0dHItaWYt
ZWxlbWVudC1pcy1hbmNob3ItYXJlYS1pbmsuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IHJlZmxlY3QgdGhlIGhyZWYg
YXR0cmlidXRlIGlmIHRoZSBlbGVtZW50IGlzIGFuIGEsIGFyZWEsIG9yIGxpbmsgZWxlbWVudC48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgdGVzdEVsZW1lbnQ7
CitmdW5jdGlvbiBydW5UZXN0KHRhZ05hbWUpCit7CisgICAgZGVidWcoIlRlc3RpbmcgJyIgKyB0
YWdOYW1lICsgIicgZWxlbWVudCdzIGJlaGF2aW9yLiIpOworICAgIHRlc3RFbGVtZW50ID0gY3Jl
YXRlRWxlbWVudCh0YWdOYW1lLCB7aXRlbXByb3A6ICdmb28nLCBocmVmOiAnaHR0cDovL2V4YW1w
bGUub3JnLyd9KTsKKyAgICBzaG91bGRCZSgidGVzdEVsZW1lbnQuaXRlbVZhbHVlIiwgIidodHRw
Oi8vZXhhbXBsZS5vcmcvJyIpOworICAgIHRlc3RFbGVtZW50LmhyZWYgPSAnaHR0cDovL2V4YW1w
bGUubmV0Lyc7CisgICAgc2hvdWxkQmUoInRlc3RFbGVtZW50Lml0ZW1WYWx1ZSIsICInaHR0cDov
L2V4YW1wbGUubmV0LyciKTsKKyAgICB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgPSAnaHR0cDovL2V4
YW1wbGUuY29tLyc7CisgICAgc2hvdWxkQmUoInRlc3RFbGVtZW50LmhyZWYiLCAiJ2h0dHA6Ly9l
eGFtcGxlLmNvbS8nIik7CisgICAgZGVidWcoJycpOworfQorCitydW5UZXN0KCdhJyk7CitydW5U
ZXN0KCdhcmVhJyk7CitydW5UZXN0KCdsaW5rJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWwKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtcmVmbGVjdHMtc3JjLWF0dHJpYnV0ZS1vbi1p
bWctZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmlidXRlLW9uLWltZy1lbGVt
ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtVmFsdWUtcmVmbGVjdHMtc3JjLWF0dHJpYnV0ZS1vbi1pbWctZWxlbWVudC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdCBlbnN1
cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgc3JjIGF0dHJpYnV0ZSBvbiBpbWcg
ZWxlbWVudC4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGltZworU2V0IGF0dHJpYnV0ZTog
aXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IGdyZWVuLmpw
ZworUEFTUyBpbWdFbGVtZW50Lml0ZW1WYWx1ZSBpcyBpbWdFbGVtZW50LnNyYworUEFTUyBpbWdF
bGVtZW50Lml0ZW1WYWx1ZSBpcyBpbWdFbGVtZW50LnNyYworUEFTUyBpbWdFbGVtZW50LnNyYyBp
cyBpbWdFbGVtZW50Lml0ZW1WYWx1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9p
dGVtVmFsdWUtcmVmbGVjdHMtc3JjLWF0dHJpYnV0ZS1vbi1pbWctZWxlbWVudC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtVmFsdWUtcmVmbGVj
dHMtc3JjLWF0dHJpYnV0ZS1vbi1pbWctZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1WYWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmli
dXRlLW9uLWltZy1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9t
aWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBzcmMgYXR0cmlidXRl
IG9uIGltZyBlbGVtZW50LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4K
K3ZhciBpbWdFbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnaW1nJywge2l0ZW1wcm9wOiAnZm9vJywg
c3JjOiAnZ3JlZW4uanBnJ30pOworc2hvdWxkQmUoJ2ltZ0VsZW1lbnQuaXRlbVZhbHVlJywgJ2lt
Z0VsZW1lbnQuc3JjJyk7CitpbWdFbGVtZW50LnNyYyA9ICdyZWQuanBnJzsKK3Nob3VsZEJlKCdp
bWdFbGVtZW50Lml0ZW1WYWx1ZScsICJpbWdFbGVtZW50LnNyYyIpOworaW1nRWxlbWVudC5pdGVt
VmFsdWUgPSAnYmx1ZS5qcGVnJzsKK3Nob3VsZEJlKCdpbWdFbGVtZW50LnNyYycsICJpbWdFbGVt
ZW50Lml0ZW1WYWx1ZSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbXByb3AtYXR0cmlidXRlLXJlZmxlY3RlZC1ieS1pdGVtUHJvcC1wcm9wZXJ0eS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L2l0ZW1wcm9wLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVByb3AtcHJvcGVydHktZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW1wcm9wLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVByb3AtcHJvcGVydHktZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0
IHRoZSBpdGVtcHJvcCBhdHRyaWJ1dGUgbXVzdCBiZSByZWZsZWN0ZWQgYnkgdGhlIC5pdGVtUHJv
cCBwcm9wZXJ0eS4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0
ZTogaXRlbXByb3AsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitQQVNTIGVsZW1lbnQu
aXRlbVByb3AgaXMgZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygpIGlz
ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJworUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5n
KCkgaXMgJycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtYXR0cmli
dXRlLXJlZmxlY3RlZC1ieS1pdGVtUHJvcC1wcm9wZXJ0eS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1hdHRyaWJ1dGUtcmVmbGVjdGVk
LWJ5LWl0ZW1Qcm9wLXByb3BlcnR5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtYXR0cmlidXRlLXJlZmxlY3RlZC1ieS1pdGVtUHJv
cC1wcm9wZXJ0eS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRh
LWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1
cmVzIHRoYXQgdGhlIGl0ZW1wcm9wIGF0dHJpYnV0ZSBtdXN0IGJlIHJlZmxlY3RlZCBieSB0aGUg
Lml0ZW1Qcm9wIHByb3BlcnR5LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1wcm9wOiAnaHR0cDov
L2V4YW1wbGUuY29tL2Zvbyd9KTsKKworc2hvdWxkQmVEZWZpbmVkKCJlbGVtZW50Lml0ZW1Qcm9w
Iik7CitzaG91bGRCZSgiZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygpIiwgIidodHRwOi8vZXhh
bXBsZS5jb20vZm9vJyIpOworCitlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnaXRlbVByb3AnKTsK
K3Nob3VsZEJlKCJlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkiLCAiJyciKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLWF0dHJpYnV0ZS1y
ZWZsZWN0ZWQtYnktaXRlbVJlZi1wcm9wZXJ0eS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtYXR0cmlidXRlLXJlZmxlY3Rl
ZC1ieS1pdGVtUmVmLXByb3BlcnR5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnkt
aXRlbVJlZi1wcm9wZXJ0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIg
QEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIGl0ZW1yZWYgYXR0cmlidXRlIG11c3QgYmUg
cmVmbGVjdGVkIGJ5IHRoZSAuaXRlbVJlZiBwcm9wZXJ0eS4KKworQ3JlYXRlZCBlbGVtZW50IG9m
IHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXJlZiwgdmFsdWU6IGZvbyBiYXIKK1BBU1Mg
ZWxlbWVudC5pdGVtUmVmIGlzIGRlZmluZWQuCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGgg
PT0gMiBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpID09ICdmb28gYmFy
JyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpID09ICcnIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1hdHRyaWJ1dGUtcmVmbGVj
dGVkLWJ5LWl0ZW1SZWYtcHJvcGVydHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1hdHRyaWJ1dGUtcmVmbGVjdGVkLWJ5LWl0ZW1SZWYt
cHJvcGVydHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9pdGVtcmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVJlZi1wcm9wZXJ0eS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIGl0
ZW1yZWYgYXR0cmlidXRlIG11c3QgYmUgcmVmbGVjdGVkIGJ5IHRoZSAuaXRlbVJlZiBwcm9wZXJ0
eS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9
IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtcmVmOiAnZm9vIGJhcid9KTsKK3Nob3VsZEJlRGVm
aW5lZCgiZWxlbWVudC5pdGVtUmVmIik7CisKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVm
Lmxlbmd0aCA9PSAyIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygp
ID09ICdmb28gYmFyJyIpOworCitlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXJlZicpOwor
c2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSA9PSAnJyIpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Jlc291cmNlcy9taWNyb2Rh
dGEtY29tbW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9yZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcwkocmV2aXNpb24gOTc3NjUpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzEsMjEgQEAKIC8vIHRoaXMgZnVuY3Rpb24gY3JlYXRl
cyBlbGVtZW50IHdpdGggc3BlY2lmaWVkIHByb3BlcnR5IGFuZCBjb250ZW50cy4KLWZ1bmN0aW9u
IGNyZWF0ZUVsZW0odHlwZSxwcm9wcyxjb250ZW50cykgeworZnVuY3Rpb24gY3JlYXRlRWxlbWVu
dCh0eXBlLCBwcm9wcywgY29udGVudHMpIHsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogCi0gICAg
dmFyIGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpOworICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKTsKIAotICAgIGZvciggdmFyIGkgaW4gcHJv
cHMgKSB7Ci0gICAgICBpZiggcHJvcHMuaGFzT3duUHJvcGVydHkoaSkgKSB7Ci0gICAgICAgIGVs
ZW0uc2V0QXR0cmlidXRlKGkscHJvcHNbaV0pOworICAgIGRlYnVnKCdDcmVhdGVkIGVsZW1lbnQg
b2YgdHlwZTogJyArIHR5cGUpOworICAgIGZvciAodmFyIGkgaW4gcHJvcHMpIHsKKyAgICAgIGlm
IChwcm9wcy5oYXNPd25Qcm9wZXJ0eShpKSkgeworICAgICAgICBkZWJ1ZygnU2V0IGF0dHJpYnV0
ZTogJyArIGkgKyAnLCB2YWx1ZTogJyArIHByb3BzW2ldKTsKKyAgICAgICAgZWxlbWVudC5zZXRB
dHRyaWJ1dGUoaSxwcm9wc1tpXSk7CiAgICAgICB9CiAgICAgfQotICAgIGlmKCBjb250ZW50cyAp
IHsKLSAgICAgIGVsZW0uaW5uZXJIVE1MID0gY29udGVudHM7CisgICAgaWYgKGNvbnRlbnRzKSB7
CisgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGNvbnRlbnRzOwogICAgIH0KLSAgICByZXR1cm4g
ZWxlbTsKKyAgICByZXR1cm4gZWxlbWVudDsKIH0KIAogCkBAIC0yMiwyMSArMjQsMjAgQEAgZnVu
Y3Rpb24gcnVuVGVzdChjb2xsZWN0aW9uLCBlbGVtZW50cywgdAogICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
IAotICBkb2N1bWVudC53cml0ZSh0aXRsZSArICc6ICcpOworICBkZWJ1Zyh0aXRsZSk7CiAgIHBh
c3MgPSB0cnVlOwogCiAgIGlmIChjb2xsZWN0aW9uLmxlbmd0aCAhPSBlbGVtZW50cy5sZW5ndGgp
IHsKICAgICBwYXNzID0gZmFsc2UKLSAgICBkb2N1bWVudC53cml0ZSgnRkFJTCAtIGV4cGVjdGVk
ICcgKyBlbGVtZW50cy5sZW5ndGggKyAnIGVsZW1lbnRzIGJ1dCBnb3QgJyArIGNvbGxlY3Rpb24u
bGVuZ3RoICsgIiBlbGVtZW50cy4gIik7CisgICAgZGVidWcoJ0ZBSUwgLSBleHBlY3RlZCAnICsg
ZWxlbWVudHMubGVuZ3RoICsgJyBlbGVtZW50cyBidXQgZ290ICcgKyBjb2xsZWN0aW9uLmxlbmd0
aCArICIgZWxlbWVudHMuICIpOwogICB9CiAgIGZvcih2YXIgaSA9IDAsIG1heCA9IGNvbGxlY3Rp
b24ubGVuZ3RoID4gZWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMubGVuZ3RoIDogY29sbGVjdGlv
bi5sZW5ndGg7IGkgPCBtYXg7IGkrKykgewogICAgIGlmKGNvbGxlY3Rpb25baV0gIT0gZWxlbWVu
dHNbaV0pIHsKICAgICAgIHBhc3MgPSBmYWxzZQotICAgICAgZG9jdW1lbnQud3JpdGUoJ0ZBSUwg
LSBleHBlY3RlZCBlbGVtZW50IDogJyArIGVsZW1lbnRzW2ldLnRhZ05hbWUgKyAiIGJ1dCBnb3Qg
ZWxlbWVudCA6IiArIGNvbGxlY3Rpb25baV0udGFnTmFtZSk7Ci0gICAgICBkb2N1bWVudC53cml0
ZSgnRkFJTCAtIGV4cGVjdGVkIGVsZW1lbnQgd2l0aCBpZDogJyArIGVsZW1lbnRzW2ldLmlkICsg
IiBidXQgZ290IGVsZW1lbnQgd2l0aCBpZDoiICsgY29sbGVjdGlvbltpXS5pZCk7CisgICAgICBk
ZWJ1ZygnRkFJTCAtIGV4cGVjdGVkIGVsZW1lbnQgOiAnICsgZWxlbWVudHNbaV0udGFnTmFtZSAr
ICIgYnV0IGdvdCBlbGVtZW50IDoiICsgY29sbGVjdGlvbltpXS50YWdOYW1lKTsKKyAgICAgIGRl
YnVnKCdGQUlMIC0gZXhwZWN0ZWQgZWxlbWVudCB3aXRoIGlkOiAnICsgZWxlbWVudHNbaV0uaWQg
KyAiIGJ1dCBnb3QgZWxlbWVudCB3aXRoIGlkOiIgKyBjb2xsZWN0aW9uW2ldLmlkKTsKICAgICB9
CiAgIH0KICAgaWYgKHBhc3MpCi0gICAgZG9jdW1lbnQud3JpdGUoJ1BBU1MnKTsKLSAgZG9jdW1l
bnQud3JpdGUoJzxicj4nKTsKKyAgICBkZWJ1ZygnVEVTVCBTVUNDRUVERUQnKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111854</attachid>
            <date>2011-10-20 15:02:37 -0700</date>
            <delta_ts>2011-10-24 04:25:17 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>104238</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4MDIzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTI0IEBACisyMDExLTEwLTIwICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEFkZCBpdGVtcHJv
cCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXBy
b3AtYWRkLXJlbW92ZS10b2tlbnMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW1wcm9wLWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29ycmVjdC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtbXVzdC1iZS1yZWFkLW9ubHkuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLXJlZmxlY3RlZC1i
eS1pdGVtUHJvcC1wcm9wZXJ0eS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0Rh
dGEvaXRlbXJlZi1hZGQtcmVtb3ZlLXRva2Vucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9NaWNyb0RhdGEvaXRlbXJlZi1hdHRyaWJ1dGUtcmVmbGVjdGVkLWJ5LWl0ZW1SZWYtcHJvcGVy
dHkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtZm9yLWFu
LWVsZW1lbnQtbXVzdC1iZS1jb3JyZWN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtcmVmLW11c3QtYmUtcmVhZC1vbmx5Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtZGF0YS1hdHRyLW9uLW9iamVjdC1l
bGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUt
cmVmbGVjdHMtaHJlZi1hdHRyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0
YS9pdGVtdmFsdWUtcmVmbGVjdHMtc3JjLWF0dHJpYnV0ZS1vbi1pbWctZWxlbWVudC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLXRoZS1j
b250ZW50LWF0dHItb24tbWV0YS1lbGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1hdHRyLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmV0dXJucy1lbGVtZW50LWl0c2Vs
Zi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJldHVy
bnMtbnVsbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVl
LXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMi5o
dG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRWxlbWVudDo6aXRlbVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9WOE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxFbGVtZW50OjppdGVtVmFsdWVB
Y2Nlc3NvckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxFbGVtZW50OjppdGVtVmFs
dWVBY2Nlc3NvclNldHRlcik6CisgICAgICAgICogZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNwcDoK
KyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxBbmNob3JFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxB
bmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEFyZWFFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICog
aHRtbC9IVE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6aXRlbVByb3ApOiBSZXR1cm5zIGVsZW1lbnQncyBpdGVtcHJvcCBjb250ZW50
IGF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRJdGVtUHJvcCk6
IFNldHMgaXRlbXByb3AgdmFsdWUgb24gY2hhbmdpbmcgZWxlbWV0J3MKKyAgICAgICAgaXRlbXBy
b3AgYXR0cmlidXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6Oml0ZW1SZWYpOiBS
ZXR1cm5zIGVsZW1lbnQncyBpdGVtcmVmIGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEVsZW1lbnQ6OnNldEl0ZW1SZWYpOiBTZXRzIGl0ZW1yZWYgdmFsdWUgb24gY2hh
bmdpbmcgZWxlbWV0J3MKKyAgICAgICAgaXRlbXJlZiBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MRWxlbWVudDo6c2V0SXRlbVZhbHVlKTogU2V0cyBlbGVtZW50J3MgaXRlbXZhbHVl
LiBJZiB0aGUgZWxlbWVudCBoYXMgbm8KKyAgICAgICAgaXRlbXByb3AgYXR0cmlidXRlIG9yIGlm
IGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUsIGl0IHRocm93cyBJTlZBTElEX0FD
Q0VTU19FUlIKKyAgICAgICAgZXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1l
bnQ6Oml0ZW1WYWx1ZSk6IFJldHVybnMgdGhlIGVsZW1lbnRzIGl0ZW12YWx1ZS4KKworICAgICAg
ICBJZiB0aGUgZWxlbWVudCBoYXMgbm8gaXRlbXByb3AgYXR0cmlidXRlIGl0IHJldHVybnMgbnVs
bC4KKyAgICAgICAgSWYgdGhlIGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUsIGl0
IHJldHVybnMgdGhlIGVsZW1lbnQgaXRzZWxmLgorICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBh
IG1ldGEgZWxlbWVudDogSXQgYWN0cyBhcyBpdCB3b3VsZCBpZiBpdCB3YXMgcmVmbGVjdGluZyB0
aGUgZWxlbWVudCdzCisgICAgICAgIGNvbnRlbnQgY29udGVudCBhdHRyaWJ1dGUuCisgICAgICAg
IElmIHRoZSBlbGVtZW50IGlzIGFuIGF1ZGlvLCBlbWJlZCwgaWZyYW1lLCBpbWcsIHNvdXJjZSwg
dHJhY2ssIG9yIHZpZGVvIGVsZW1lbnQ6IEl0IGFjdHMKKyAgICAgICAgYXMgaXQgd291bGQgaWYg
aXQgd2FzIHJlZmxlY3RpbmcgdGhlIGVsZW1lbnQncyBzcmMgY29udGVudCBhdHRyaWJ1dGUuCisg
ICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGFuIGEsIGFyZWEsIG9yIGxpbmsgZWxlbWVudDogSXQg
YWN0IGFzIGl0IHdvdWxkIGlmIGl0IHdhcyByZWZsZWN0aW5nIHRoZQorICAgICAgICBocmVmIGNv
bnRlbnQgYXR0cmlidXRlLgorICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBhbiBvYmplY3QgZWxl
bWVudDogSXQgYWN0cyBhcyAgaXQgd291bGQgaWYgaXQgd2FzIHJlZmxlY3RpbmcgdGhlIGVsZW1l
bnQncworICAgICAgICBkYXRhIGNvbnRlbnQgYXR0cmlidXRlLgorCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxl
bWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVk
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjppdGVtVmFs
dWVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OnNldEl0ZW1WYWx1
ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVs
ZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1l
bnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxMaW5rRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjppdGVtVmFsdWVUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1l
dGFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRhRWxlbWVudDo6aXRlbVZh
bHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6OnNldEl0ZW1WYWx1
ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxl
bWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVu
dDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNvdXJjZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNvdXJjZUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRN
TFNvdXJjZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAg
ICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL01pY3JvRGF0YUl0
ZW1WYWx1ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZhbHVl
OjpNaWNyb0RhdGFJdGVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZh
bHVlOjpjcmVhdGVGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1W
YWx1ZTo6Y3JlYXRlRnJvbU5vZGUpOgorICAgICAgICAqIGh0bWwvTWljcm9EYXRhSXRlbVZhbHVl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZhbHVlOjppc05vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZhbHVlOjpnZXROb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1WYWx1ZTo6Z2V0U3RyaW5nKToKKwogMjAxMS0xMC0y
MCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEZsaXBwZWQtYmxv
Y2tzIHdyaXRpbmcgbW9kZSBibG9ja3MgZG8gbm90IGhpdCB0ZXN0IHRoZWlyIG92ZXJmbG93Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODA2LDYgKzgwNiw3IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL0xhYmVsc05vZGVMaXN0LmNwcAogICAgIGh0bWwvTGlu
a1JlbEF0dHJpYnV0ZS5jcHAKICAgICBodG1sL01lZGlhRG9jdW1lbnQuY3BwCisgICAgaHRtbC9N
aWNyb0RhdGFJdGVtVmFsdWUuY3BwCiAgICAgaHRtbC9Nb250aElucHV0VHlwZS5jcHAKICAgICBo
dG1sL051bWJlcklucHV0VHlwZS5jcHAKICAgICBodG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcApJ
bmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiA5ODAyMykKKysrIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTE4NjMs
NiArMTg2Myw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYURvY3VtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFcnJvci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9o
dG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9E
YXRhSXRlbVZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvTXV0YWJsZVRleHRUcmFjay5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2
aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29w
eSkKQEAgLTU1NjEsNiArNTU2MSw4IEBACiAgICAgICAgICAgICAnaHRtbC9NZWRpYURvY3VtZW50
LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9NZWRpYURvY3VtZW50LmgnLAogICAgICAgICAgICAg
J2h0bWwvTWVkaWFFcnJvci5oJywKKyAgICAgICAgICAgICdodG1sL01pY3JvRGF0YUl0ZW1WYWx1
ZS5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmgnLAogICAgICAg
ICAgICAgJ2h0bWwvTXV0YWJsZVRleHRUcmFjay5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvTXV0
YWJsZVRleHRUcmFjay5oJywKICAgICAgICAgICAgICdodG1sL01vbnRoSW5wdXRUeXBlLmNwcCcs
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNzU5LDYgKzc1OSw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGh0bWwvTGFiZWxzTm9kZUxpc3QuY3BwIFwKICAgICBodG1sL0xpbmtSZWxBdHRyaWJ1
dGUuY3BwIFwKICAgICBodG1sL01lZGlhRG9jdW1lbnQuY3BwIFwKKyAgICBodG1sL01pY3JvRGF0
YUl0ZW1WYWx1ZS5jcHAgXAogICAgIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwIFwKICAgICBodG1s
L051bWJlcklucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwIFwK
QEAgLTE4MTIsNiArMTgxMyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvTGlua1JlbEF0dHJp
YnV0ZS5oIFwKICAgICBodG1sL0xvYWRhYmxlVGV4dFRyYWNrLmggXAogICAgIGh0bWwvTWVkaWFE
b2N1bWVudC5oIFwKKyAgICBodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oIFwKICAgICBodG1sL011
dGFibGVUZXh0VHJhY2suaCBcCiAgICAgaHRtbC9QbHVnaW5Eb2N1bWVudC5oIFwKICAgICBodG1s
L1N0ZXBSYW5nZS5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCShyZXZpc2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01ODM2Niw2ICs1ODM2Niwx
NCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxo
dG1sXE1pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcTWljcm9EYXRhSXRlbVZhbHVlLmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGZpbGVhcGlcTWV0YWRh
dGEuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gOTgwMjMpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksMTAgKzI5LDI1IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVk
ZSAiTWljcm9EYXRhSXRlbVZhbHVlLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK3N0YXRpYyBK
U1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBNaWNyb0RhdGFJdGVtVmFsdWUqIGl0ZW1WYWx1ZSkKK3sKKyAgICBpZiAoIWl0ZW1WYWx1
ZSkKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworICAgIGlmIChpdGVtVmFsdWUtPmlzTm9kZSgp
KQorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGl0ZW1WYWx1ZS0+Z2V0
Tm9kZSgpKTsKKyAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgaXRlbVZhbHVlLT5nZXRTdHJpbmco
KSk7Cit9CisjZW5kaWYKKwogU2NvcGVDaGFpbk5vZGUqIEpTSFRNTEVsZW1lbnQ6OnB1c2hFdmVu
dEhhbmRsZXJTY29wZShFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZSkgY29u
c3QKIHsKICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGltcGwoKTsKQEAgLTQ4LDQgKzYzLDIw
IEBAIFNjb3BlQ2hhaW5Ob2RlKiBKU0hUTUxFbGVtZW50OjpwdXNoRXZlbnQKICAgICByZXR1cm4g
c2NvcGUtPnB1c2goYXNPYmplY3QodG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgZWxlbWVudCkp
KTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitKU1ZhbHVlIEpTSFRNTEVsZW1lbnQ6Oml0
ZW1WYWx1ZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgSFRNTEVsZW1lbnQqIGVsZW1l
bnQgPSBpbXBsKCk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIFdURjo6
Z2V0UHRyKGVsZW1lbnQtPml0ZW1WYWx1ZSgpKSk7Cit9CisKK3ZvaWQgSlNIVE1MRWxlbWVudDo6
c2V0SXRlbVZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBIVE1M
RWxlbWVudCogaW1wID0gaW1wbCgpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGlt
cC0+c2V0SXRlbVZhbHVlKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSwg
ZWMpOworICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Cit9CisjZW5kaWYKKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gOTgwMjMp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRWxlbWVudEN1c3Rv
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDggKzMzLDI2IEBACiAKICNpbmNsdWRlICJWOEhU
TUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5j
bHVkZSAiTWljcm9EYXRhSXRlbVZhbHVlLmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK3N0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChNaWNyb0RhdGFJdGVtVmFsdWUqIGl0
ZW1WYWx1ZSkKK3sKKyAgICBpZiAoIWl0ZW1WYWx1ZSkKKyAgICAgICAgcmV0dXJuIHY4OjpOdWxs
KCk7CisKKyAgICBpZiAoaXRlbVZhbHVlLT5pc05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvVjgo
aXRlbVZhbHVlLT5nZXROb2RlKCkpOworCisgICAgcmV0dXJuIHY4U3RyaW5nKGl0ZW1WYWx1ZS0+
Z2V0U3RyaW5nKCkpOworfQorI2VuZGlmCisKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KEhU
TUxFbGVtZW50KiBpbXBsLCBib29sIGZvcmNlTmV3T2JqZWN0KQogewogICAgIGlmICghaW1wbCkK
QEAgLTQyLDQgKzYwLDIxIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KEhUTUxFbGVtZW50
KgogICAgIHJldHVybiBjcmVhdGVWOEhUTUxXcmFwcGVyKGltcGwsIGZvcmNlTmV3T2JqZWN0KTsK
IH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1M
RWxlbWVudDo6aXRlbVZhbHVlQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSFRNTEVsZW1lbnQqIGlt
cGwgPSBWOEhUTUxFbGVtZW50Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4g
dG9WOE9iamVjdChpbXBsLT5pdGVtVmFsdWUoKS5nZXQoKSk7Cit9CisKK3ZvaWQgVjhIVE1MRWxl
bWVudDo6aXRlbVZhbHVlQWNjZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZv
KQoreworICAgIEhUTUxFbGVtZW50KiBpbXBsID0gVjhIVE1MRWxlbWVudDo6dG9OYXRpdmUoaW5m
by5Ib2xkZXIoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgaW1wbC0+c2V0SXRl
bVZhbHVlKHRvV2ViQ29yZVN0cmluZyh2YWx1ZSksIGVjKTsKKyAgICBpZiAoZWMpCisgICAgICAg
IFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3Bw
CShyZXZpc2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlz
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwxMCBAQAogI2luY2x1ZGUgIkhUTUxF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKKwogTWljcm9EYXRhSXRlbUxpc3Q6Ok1pY3JvRGF0YUl0ZW1MaXN0KFBhc3NSZWZQdHI8Tm9k
ZT4gcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYgdHlwZU5hbWVzKQogICAgIDogRHluYW1pY05vZGVM
aXN0KHJvb3ROb2RlKQogICAgICwgbV90eXBlTmFtZXModHlwZU5hbWVzLCBtX3Jvb3ROb2RlLT5k
b2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwCShyZXZpc2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODYsNCArNTg2LDE2
IEBAIHZvaWQgaGFuZGxlTGlua0NsaWNrKEV2ZW50KiBldmVudCwgRG9jdW0KICAgICBmcmFtZS0+
bG9hZGVyKCktPnVybFNlbGVjdGVkKGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCB0YXJnZXQs
IGV2ZW50LCBmYWxzZSwgZmFsc2UsIGhpZGVSZWZlcnJlciA/IE5vUmVmZXJyZXIgOiBTZW5kUmVm
ZXJyZXIpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MQW5jaG9yRWxl
bWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0
ZShocmVmQXR0cik7Cit9CisKK3ZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRl
eHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0
cmlidXRlKGhyZWZBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgJKHJldmlzaW9uIDk4MDIzKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjUsNiArMTI1LDExIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEV2ZW50VHlwZSBldmVudFR5cGUo
RXZlbnQqKTsKICAgICBib29sIHRyZWF0TGlua0FzTGl2ZUZvckV2ZW50VHlwZShFdmVudFR5cGUp
IGNvbnN0OwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVt
VmFsdWVUZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1
ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworI2VuZGlmCisK
ICAgICBSZWZQdHI8RWxlbWVudD4gbV9yb290RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0aW9uT25N
b3VzZURvd247CiAgICAgYm9vbCBtX3dhc1NoaWZ0S2V5RG93bk9uTW91c2VEb3duIDogMTsKICAg
ICB1aW50MzJfdCBtX2xpbmtSZWxhdGlvbnMgOiAzMTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFyZWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDk4MDIzKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNCArMjQ2LDE2
IEBAIFN0cmluZyBIVE1MQXJlYUVsZW1lbnQ6OnRhcmdldCgpIGNvbnN0CiAgICAgcmV0dXJuIGdl
dEF0dHJpYnV0ZSh0YXJnZXRBdHRyKTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJp
bmcgSFRNTEFyZWFFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
Z2V0VVJMQXR0cmlidXRlKGhyZWZBdHRyKTsKK30KKwordm9pZCBIVE1MQXJlYUVsZW1lbnQ6OnNl
dEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgc2V0QXR0cmlidXRlKGhyZWZBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAkocmV2aXNpb24gOTgwMjMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC01OCw3ICs1OCwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0ZvY3VzYWJs
ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1c0FwcGVhcmFuY2UoYm9vbCAv
KnJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiovKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMo
Ym9vbCk7Ci0gICAgCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5n
IGl0ZW1WYWx1ZVRleHQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRl
bVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisjZW5k
aWYKKwogICAgIGVudW0gU2hhcGUgeyBEZWZhdWx0LCBQb2x5LCBSZWN0LCBDaXJjbGUsIFVua25v
d24gfTsKICAgICBQYXRoIGdldFJlZ2lvbihjb25zdCBMYXlvdXRTaXplJikgY29uc3Q7CiAgICAg
dm9pZCBpbnZhbGlkYXRlQ2FjaGVkUmVnaW9uKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTIzLDYgKzEy
Myw3IEBAIGluZGV0ZXJtaW5hdGUKIGlzbWFwCiBpdGVtaWQKIGl0ZW1wcm9wCitpdGVtcmVmCiBp
dGVtc2NvcGUKIGl0ZW10eXBlCiBrZXl0eXBlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAkocmV2aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsMTAgQEAKICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC0x
OTYsNiArMjAwLDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEEK
ICAgICAgICAgfSBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZhbHNlIikpCiAg
ICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFn
LCBDU1NWYWx1ZU5vbmUpOwogI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgfSBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gaXRlbXByb3BBdHRyKSB7CisgICAgICAgIHNldEl0ZW1Qcm9wKGF0dHIt
PnZhbHVlKCkpOworICAgIH0gIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBpdGVtcmVmQXR0cikg
eworICAgICAgICBzZXRJdGVtUmVmKGF0dHItPnZhbHVlKCkpOwogICAgIH0gZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IGl0ZW10eXBlQXR0cikgewogICAgICAgICBpdGVtVHlwZUF0dHJpYnV0ZUNo
YW5nZWQoKTsKICNlbmRpZgpAQCAtOTc1LDYgKzk4Myw3MSBAQCB2b2lkIEhUTUxFbGVtZW50Ojph
ZGp1c3REaXJlY3Rpb25hbGl0eUlmCiAgICAgfQogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
K1Bhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVtZW50OjppdGVtUHJvcCgp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2l0ZW1Qcm9wKQorICAgICAgICBtX2l0ZW1Qcm9wID0gRE9N
U2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgcmV0dXJuIG1faXRlbVByb3A7Cit9
CisKK3ZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7
CisgICAgaWYgKCFtX2l0ZW1Qcm9wKQorICAgICAgICBtX2l0ZW1Qcm9wID0gRE9NU2V0dGFibGVU
b2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgbV9pdGVtUHJvcC0+c2V0VmFsdWUodmFsdWUpOwor
fQorCitQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVudDo6aXRlbVJl
ZigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2l0ZW1SZWYpCisgICAgICAgIG1faXRlbVJlZiA9IERP
TVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgIHJldHVybiBtX2l0ZW1SZWY7Cit9
CisKK3ZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1SZWYoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sK
KyAgICBpZiAoIW1faXRlbVJlZikKKyAgICAgICAgbV9pdGVtUmVmID0gRE9NU2V0dGFibGVUb2tl
bkxpc3Q6OmNyZWF0ZSgpOworCisgICAgbV9pdGVtUmVmLT5zZXRWYWx1ZSh2YWx1ZSk7Cit9CisK
K3ZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpIHx8
IGhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNldEl0ZW1WYWx1ZVRleHQo
dmFsdWUsIGVjKTsKK30KKworUGFzc1JlZlB0cjxNaWNyb0RhdGFJdGVtVmFsdWU+IEhUTUxFbGVt
ZW50OjppdGVtVmFsdWUoKSBjb25zdAoreworICAgIGlmICghaGFzQXR0cmlidXRlKGl0ZW1wcm9w
QXR0cikpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGhhc0F0dHJpYnV0ZShpdGVtc2Nv
cGVBdHRyKSkKKyAgICAgICAgcmV0dXJuIE1pY3JvRGF0YUl0ZW1WYWx1ZTo6Y3JlYXRlRnJvbU5v
ZGUoY29uc3RfY2FzdDxIVE1MRWxlbWVudCogY29uc3Q+KHRoaXMpKTsKKworICAgIHJldHVybiBN
aWNyb0RhdGFJdGVtVmFsdWU6OmNyZWF0ZUZyb21TdHJpbmcoaXRlbVZhbHVlVGV4dCgpKTsKK30K
KworU3RyaW5nIEhUTUxFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gdGV4dENvbnRlbnQodHJ1ZSk7Cit9CisKK3ZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1
ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0
VGV4dENvbnRlbnQodmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNpZm5kZWYgTkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShy
ZXZpc2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjUsMTIgKzI1LDIwIEBACiAKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50
LmgiCiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5M
aXN0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudEZy
YWdtZW50OwogY2xhc3MgSFRNTENvbGxlY3Rpb247CiBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7Ci0g
ICAgICAgICAgICAgICAgICAgICAgIAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK2NsYXNzIE1p
Y3JvRGF0YUl0ZW1WYWx1ZTsKKyNlbmRpZgorCiBjbGFzcyBIVE1MRWxlbWVudCA6IHB1YmxpYyBT
dHlsZWRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CkBAIC04
MSw2ICs4OSwxNCBAQCBwdWJsaWM6CiAKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFsaXR5
SWZoYXNEaXJBdXRvQXR0cmlidXRlKGJvb2wmIGlzQXV0bykgY29uc3Q7CiAKKyNpZiBFTkFCTEUo
TUlDUk9EQVRBKQorICAgIFBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IGl0ZW1SZWYo
KSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBpdGVtUHJvcCgp
IGNvbnN0OworCisgICAgdm9pZCBzZXRJdGVtVmFsdWUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFBhc3NSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiBpdGVtVmFsdWUoKSBj
b25zdDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIApAQCAtMTA3LDYgKzEyMywxNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgYWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRBdHRy
aWJ1dGVDaGFuZ2VkKEVsZW1lbnQqIGNoaWxkKTsKICAgICB2b2lkIGFkanVzdERpcmVjdGlvbmFs
aXR5SWZOZWVkZWRBZnRlckNoaWxkcmVuQ2hhbmdlZChOb2RlKiBiZWZvcmVDaGFuZ2UsIGludCBj
aGlsZENvdW50RGVsdGEpOwogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uYWxpdHkoTm9kZSoq
IHN0cm9uZ0RpcmVjdGlvbmFsaXR5VGV4dE5vZGU9IDApIGNvbnN0OworCisjaWYgRU5BQkxFKE1J
Q1JPREFUQSkKKyAgICB2b2lkIHNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
c2V0SXRlbVJlZihjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1
ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJs
ZVRva2VuTGlzdD4gbV9pdGVtUHJvcDsKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRv
a2VuTGlzdD4gbV9pdGVtUmVmOworI2VuZGlmCiB9OwogCiBpbmxpbmUgSFRNTEVsZW1lbnQqIHRv
SFRNTEVsZW1lbnQoTm9kZSogbm9kZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aWRsCShyZXZpc2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCwxMiBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBE
T01TdHJpbmcgaXRlbVR5cGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9u
YWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBET01TdHJpbmcgaXRlbUlkOwogCisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0YWJsZVRva2VuTGlz
dCBpdGVtUmVmOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JP
REFUQV0gRE9NU2V0dGFibGVUb2tlbkxpc3QgaXRlbVByb3A7CisKKyAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgQ3VzdG9tXSBjdXN0b20gaXRlbVZhbHVl
CisgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKICNp
ZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlRGlzcGxheVN0cmluZzsK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Nyw0ICsyNzcsMTYgQEAgdm9pZCBIVE1MRW1iZWRFbGVt
ZW50OjphZGRTdWJyZXNvdXJjZUF0dAogICAgIGFkZFN1YnJlc291cmNlVVJMKHVybHMsIGRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKGdldEF0dHJpYnV0ZShzcmNBdHRyKSkpOwogfQogCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MRW1iZWRFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNyY0F0dHIpOworfQorCit2b2lk
IEhUTUxFbWJlZEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKHNyY0F0dHIsIHZhbHVlLCBl
Yyk7Cit9CisjZW5kaWYKKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVt
ZW50LmgJKHJldmlzaW9uIDk4MDIzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDExIEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxLVVJM
PiYpIGNvbnN0OwogCiAgICAgdm9pZCBwYXJhbWV0ZXJzRm9yUGx1Z2luKFZlY3RvcjxTdHJpbmc+
JiBwYXJhbU5hbWVzLCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOworCisjaWYgRU5BQkxF
KE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworI2VuZGlmCiB9OwogCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAkocmV2aXNpb24gOTgwMjMpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTYzLDQgKzE2MywxNiBAQCBib29sIEhUTUxJRnJhbWVFbGVtZW50Ojppc1VSTEF0dHJpYnV0
ZShBCiAgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBzcmNBdHRyOwogfQogCisjaWYgRU5BQkxF
KE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MSUZyYW1lRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKK30KKwordm9pZCBI
VE1MSUZyYW1lRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoc3JjQXR0ciwgdmFsdWUsIGVj
KTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5oCShyZXZpc2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFt
ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTEgQEAgcHJpdmF0ZToKICAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CiAK
KyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25z
dCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisjZW5kaWYKKwogICAgIEF0b21p
Y1N0cmluZyBtX25hbWU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAJKHJldmlzaW9uIDk4MDIzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAzLDQgKzQwMywxNiBAQCBib29s
IEhUTUxJbWFnZUVsZW1lbnQ6OmlzU2VydmVyTWFwKCkgY29uCiAgICAgcmV0dXJuIGRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh1c2VtYXAp
KS5pc0VtcHR5KCk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxJbWFn
ZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRy
aWJ1dGUoc3JjQXR0cik7Cit9CisKK3ZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0SXRlbVZhbHVl
VGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRB
dHRyaWJ1dGUoc3JjQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAkocmV2aXNpb24gOTgwMjMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAy
LDYgKzEwMiwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVl
KGJvb2wgZGVlcCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRlZXAp
OwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVU
ZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQo
Y29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworI2VuZGlmCisKICAgICBI
VE1MSW1hZ2VMb2FkZXIgbV9pbWFnZUxvYWRlcjsKICAgICBIVE1MRm9ybUVsZW1lbnQqIG1fZm9y
bTsKICAgICBBdG9taWNTdHJpbmcgbV9uYW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAkocmV2aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1Myw0ICs0NTMsMTYgQEAg
dm9pZCBIVE1MTGlua0VsZW1lbnQ6OnNldFNpemVzKGNvbnN0IFN0cgogICAgIG1fc2l6ZXMtPnNl
dFZhbHVlKHZhbHVlKTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJpbmcgSFRNTExp
bmtFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0
cmlidXRlKGhyZWZBdHRyKTsKK30KKwordm9pZCBIVE1MTGlua0VsZW1lbnQ6OnNldEl0ZW1WYWx1
ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0
QXR0cmlidXRlKGhyZWZBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAkocmV2
aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC05NCw2ICs5NCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkUGVu
ZGluZ1NoZWV0KFBlbmRpbmdTaGVldFR5cGUpOwogICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1NoZWV0
KCk7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1
ZVRleHQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4
dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICBIVE1MTGlua0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDk4MDIzKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA3MCw2ICszMDcwLDE4
IEBAIEF1ZGlvU291cmNlUHJvdmlkZXIqIEhUTUxNZWRpYUVsZW1lbnQ6OmEKIH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MTWVkaWFFbGVtZW50OjppdGVtVmFs
dWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNyY0F0dHIpOwor
fQorCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5n
JiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKHNyY0F0dHIs
IHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDUsNiArNDA1
LDExIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQqIHByZURpc3BhdGNoRXZlbnRIYW5k
bGVyKEV2ZW50Kik7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5n
IGl0ZW1WYWx1ZVRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4
dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYKKwogICAgIFRpbWVyPEhU
TUxNZWRpYUVsZW1lbnQ+IG1fbG9hZFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+
IG1fYXN5bmNFdmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fcHJvZ3Jl
c3NFdmVudFRpbWVyOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNw
cAkocmV2aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDQgKzk0LDE2IEBAIFN0cmluZyBIVE1MTWV0YUVs
ZW1lbnQ6Om5hbWUoKSBjb25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUobmFtZUF0dHIpOwog
fQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MTWV0YUVsZW1lbnQ6Oml0ZW1W
YWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoY29udGVudEF0dHIp
OworfQorCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJp
bmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoY29udGVu
dEF0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWV0YUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZXRhRWxlbWVudC5oCShyZXZpc2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDEyIEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAKICAgICB2
b2lkIHByb2Nlc3MoKTsKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJp
bmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRJ
dGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyNl
bmRpZgorCiB9OwogCiB9IC8vbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPYmplY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPYmplY3RFbGVtZW50LmNwcAkocmV2aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU0LDQgKzU1NCwx
NiBAQCBIVE1MRm9ybUVsZW1lbnQqIEhUTUxPYmplY3RFbGVtZW50Ojp2aXJ0CiAgICAgcmV0dXJu
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKK1N0cmluZyBIVE1MT2JqZWN0RWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShkYXRhQXR0cik7Cit9CisKK3ZvaWQgSFRNTE9iamVj
dEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKGRhdGFBdHRyLCB2YWx1ZSwgZWMpOworfQor
I2VuZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgJ
KHJldmlzaW9uIDk4MDIzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNiArMTAyLDExIEBAIHByaXZhdGU6CiAKICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xOYW1lKCkgY29uc3Q7CiAKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisjZW5kaWYKKwogICAgIEF0b21pY1N0
cmluZyBtX2lkOwogICAgIFN0cmluZyBtX2NsYXNzSWQ7CiAgICAgYm9vbCBtX2RvY05hbWVkSXRl
bSA6IDE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAko
cmV2aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDYgKzEyMSwxOCBAQCBib29sIEhUTUxTb3VyY2VF
bGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBCiAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09
IHNyY0F0dHI7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxTb3VyY2VF
bGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0cmli
dXRlKHNyY0F0dHIpOworfQorCit2b2lkIEhUTUxTb3VyY2VFbGVtZW50OjpzZXRJdGVtVmFsdWVU
ZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0
dHJpYnV0ZShzcmNBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0KIAogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCShyZXZpc2lvbiA5ODAy
MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtNTUsNiArNTUsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZXJyb3JFdmVudFRp
bWVyRmlyZWQoVGltZXI8SFRNTFNvdXJjZUVsZW1lbnQ+Kik7CiAKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJikgT1ZFUlJJREU7CisjZW5kaWYKKwogICAgIFRpbWVyPEhUTUxTb3VyY2VFbGVtZW50
PiBtX2Vycm9yRXZlbnRUaW1lcjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRyYWNrRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VHJhY2tFbGVtZW50LmNwcAkocmV2aXNpb24gOTgwMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAsNyArMTUwLDE5IEBA
IHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTG9hZGluZ0MKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUobG9hZGluZ0ZhaWxl
ZCA/IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50IDogZXZlbnROYW1lcygpLmxvYWRFdmVudCwgZmFs
c2UsIGZhbHNlKSwgZWMpOwogfQotICAgIAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmlu
ZyBIVE1MVHJhY2tFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
Z2V0VVJMQXR0cmlidXRlKHNyY0F0dHIpOworfQorCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnNl
dEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgc2V0QXR0cmlidXRlKHNyY0F0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQog
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCShyZXZp
c2lvbiA5ODAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2MywxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBpbnNlcnRlZEludG9UcmVlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKCk7
CiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OwotICAg
IAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVU
ZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQo
Y29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworI2VuZGlmCisKICAgICBS
ZWZQdHI8TG9hZGFibGVUZXh0VHJhY2s+IG1fdHJhY2s7CiB9OwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24s
CisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Us
CisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9y
b2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkK
KyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JP
REFUQSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKworI2luY2x1ZGUgIk5vZGUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworTWljcm9EYXRhSXRlbVZhbHVlOjpNaWNyb0RhdGFJ
dGVtVmFsdWUoU3RyaW5nIHN0cmluZykKKyAgICA6IG1fdHlwZShTVFJJTkcpCisgICAgLCBtX3N0
cmluZyhzdHJpbmcpCit7Cit9CisKK01pY3JvRGF0YUl0ZW1WYWx1ZTo6TWljcm9EYXRhSXRlbVZh
bHVlKE5vZGUqIG5vZGUpCisgICAgOiBtX3R5cGUoTk9ERSkKKyAgICAsIG1fbm9kZShub2RlKQor
eworfQorCitQYXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gTWljcm9EYXRhSXRlbVZhbHVl
OjpjcmVhdGVGcm9tU3RyaW5nKFN0cmluZyBzdHJpbmcpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBNaWNyb0RhdGFJdGVtVmFsdWUoc3RyaW5nKSk7Cit9CisKK1Bhc3NSZWZQdHI8TWljcm9E
YXRhSXRlbVZhbHVlPiBNaWNyb0RhdGFJdGVtVmFsdWU6OmNyZWF0ZUZyb21Ob2RlKE5vZGUqIG5v
ZGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNaWNyb0RhdGFJdGVtVmFsdWUobm9kZSkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9E
QVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBNb3Rv
cm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0
aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBj
b250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWljcm9EYXRhSXRlbVZh
bHVlX2gKKyNkZWZpbmUgTWljcm9EYXRhSXRlbVZhbHVlX2gKKworI2lmIEVOQUJMRShNSUNST0RB
VEEpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgTm9kZTsKKworY2xhc3MgTWljcm9EYXRhSXRlbVZhbHVlIDogcHVibGljIFJlZkNv
dW50ZWQ8TWljcm9EYXRhSXRlbVZhbHVlPiB7Citwcml2YXRlOgorICAgIGVudW0gVHlwZSB7U1RS
SU5HLCBOT0RFfTsKKworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1pY3JvRGF0YUl0
ZW1WYWx1ZT4gY3JlYXRlRnJvbVN0cmluZyhTdHJpbmcpOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE1pY3JvRGF0YUl0ZW1WYWx1ZT4gY3JlYXRlRnJvbU5vZGUoTm9kZSopOworCisgICAgYm9vbCBp
c05vZGUoKSB7IHJldHVybiBtX3R5cGUgPT0gTk9ERTsgfQorICAgIE5vZGUqIGdldE5vZGUoKSB7
IHJldHVybiBtX25vZGU7IH0KKyAgICBTdHJpbmcgZ2V0U3RyaW5nKCkgeyByZXR1cm4gbV9zdHJp
bmc7IH0KKworcHJpdmF0ZToKKyAgICBNaWNyb0RhdGFJdGVtVmFsdWUoU3RyaW5nKTsKKyAgICBN
aWNyb0RhdGFJdGVtVmFsdWUoTm9kZSopOworCisgICAgVHlwZSBtX3R5cGU7CisgICAgU3RyaW5n
IG1fc3RyaW5nOworICAgIE5vZGUqIG1fbm9kZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCisKKyNlbmRpZiAvLyBNaWNyb0RhdGFJ
dGVtVmFsdWVfaAorCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5ODAyMykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDExLTEwLTIwICBBcmtv
IFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEFkZCBpdGVt
cHJvcCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3QtY2FzZXMgZm9yIE1pY3JvZGF0
YSBpdGVtcHJvcCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9N
aWNyb0RhdGEvMDAyLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwMy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sOgorICAgICAg
ICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL01pY3JvRGF0YS8wMDUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA2
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA5Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLWFkZC1yZW1vdmUtdG9rZW5zLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9w
LWFkZC1yZW1vdmUtdG9rZW5zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3Jv
RGF0YS9pdGVtcHJvcC1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtZm9yLWFuLWVs
ZW1lbnQtbXVzdC1iZS1jb3JyZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtcHJvcC1tdXN0LWJlLXJlYWQtb25seS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1tdXN0LWJlLXJlYWQtb25seS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtcmVmbGVj
dGVkLWJ5LWl0ZW1Qcm9wLXByb3BlcnR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLXJlZmxlY3RlZC1ieS1pdGVtUHJvcC1wcm9wZXJ0
eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1hZGQt
cmVtb3ZlLXRva2Vucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtcmVmLWFkZC1yZW1vdmUtdG9rZW5zLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVJl
Zi1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3Jv
RGF0YS9pdGVtcmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVJlZi1wcm9wZXJ0eS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1mb3ItYW4tZWxl
bWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtbXVzdC1iZS1y
ZWFkLW9ubHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvaXRlbXJlZi1tdXN0LWJlLXJlYWQtb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLWRhdGEtYXR0ci1vbi1vYmplY3QtZWxl
bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9p
dGVtdmFsdWUtcmVmbGVjdHMtZGF0YS1hdHRyLW9uLW9iamVjdC1lbGVtZW50Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtaHJlZi1h
dHRyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW12YWx1ZS1yZWZsZWN0cy1ocmVmLWF0dHIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmlidXRlLW9uLWltZy1lbGVt
ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW12YWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmlidXRlLW9uLWltZy1lbGVtZW50Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLWNv
bnRlbnQtYXR0ci1vbi1tZXRhLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLXRoZS1jb250ZW50LWF0dHIt
b24tbWV0YS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0
YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1hdHRyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy10aGUtc3JjLWF0
dHIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1y
ZXR1cm5zLWVsZW1lbnQtaXRzZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZXR1cm5zLWVsZW1lbnQtaXRzZWxmLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmV0dXJucy1udWxs
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12
YWx1ZS1yZXR1cm5zLW51bGwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW12YWx1ZS10aHJvd3MtZXhjcGV0aW9uLW9uc2V0dGluZy0wMDEtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRocm93cy1l
eGNwZXRpb24tb25zZXR0aW5nLTAwMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9N
aWNyb0RhdGEvaXRlbXZhbHVlLXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtdGhy
b3dzLWV4Y3BldGlvbi1vbnNldHRpbmctMDAyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL01pY3JvRGF0YS9yZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qczoKKyAgICAgICAgKGNy
ZWF0ZUVsZW1lbnQpOgorICAgICAgICAocnVuVGVzdCk6CisKIDIwMTEtMTAtMjAgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBGbGlwcGVkLWJsb2NrcyB3cml0aW5n
IG1vZGUgYmxvY2tzIGRvIG5vdCBoaXQgdGVzdCB0aGVpciBvdmVyZmxvdwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDk4MDIzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzEsMjMgQEAKIFRoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgZG9jdW1lbnQuZ2V0SXRlbXMoKS5sZW5ndGggbXVzdCByZXR1cm4gdGhlIGNvcnJlY3QgbnVt
YmVyIG9mIE1pY3JvRGF0YSBJdGVtcyBpbiB0aGUgRG9jdW1lbnQuIAogQWxzbyBpdCB0ZXN0cyB0
aGF0IGRvY3VtZW50LmdldEl0ZW1zIG11c3QgcmV0dXJuIGEgbGl2ZSBOb2RlTGlzdC4KIAotZG9j
dW1lbnQuZ2V0SXRlbXMoKSB3aXRob3V0IGF1cmd1bWVudDogUEFTUwotZG9jdW1lbnQuZ2V0SXRl
bXMoKSB3aXRoIGVtcHR5IHN0cmluZyBpbiB0aGUgYXVyZ3VtZW50OiBQQVNTCi1kb2N1bWVudC5n
ZXRJdGVtcygpIHdpdGggJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nIGl0ZW10eXBlIGluIHRoZSBh
dXJndW1lbnQ6IFBBU1MKLWRvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUu
Y29tL2JhcicgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudDogUEFTUwotZG9jdW1lbnQuZ2V0SXRl
bXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vZjEnIGl0ZW10eXBlIGluIHRoZSBhdXJndW1l
bnQ6IFBBU1MKLU5ld2x5IGFwcGVuZGVkIGl0ZW0gc2hvdWxkIGJlIG5vdGljZWQgaW4gdGhlIE5v
ZGVMaXN0OiBQQVNTCi1SZW1vdmluZyBpdGVtIHNob3VsZCBiZSBub3RpY2VkIGluIHRoZSBOb2Rl
TGlzdDogUEFTUworZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRob3V0IGF1cmd1bWVudAorVEVTVCBT
VUNDRUVERUQKK2RvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCBlbXB0eSBzdHJpbmcgaW4gdGhlIGF1
cmd1bWVudAorVEVTVCBTVUNDRUVERUQKK2RvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDov
L2V4YW1wbGUuY29tL2ZvbycgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudAorVEVTVCBTVUNDRUVE
RUQKK2RvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2JhcicgaXRl
bXR5cGUgaW4gdGhlIGF1cmd1bWVudAorVEVTVCBTVUNDRUVERUQKK2RvY3VtZW50LmdldEl0ZW1z
KCkgd2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2YxJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50
CitURVNUIFNVQ0NFRURFRAorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJp
YnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitOZXdseSBhcHBlbmRlZCBpdGVtIHNo
b3VsZCBiZSBub3RpY2VkIGluIHRoZSBOb2RlTGlzdAorVEVTVCBTVUNDRUVERUQKK1JlbW92aW5n
IGl0ZW0gc2hvdWxkIGJlIG5vdGljZWQgaW4gdGhlIE5vZGVMaXN0CitURVNUIFNVQ0NFRURFRAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAyLmh0bWwJKHJldmlzaW9uIDk4MDIzKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+CkBAIC0xMyw3ICsxNCw3IEBACiA8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0
cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9InRocmVlIj4KIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBl
PSJodHRwOi8vZXhhbXBsZS5jb20vZjEiIGlkPSJmb3VyIj48L2Rpdj4KIDwvZGl2PgotCis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiB2YXIgb25lID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ29uZScpOwogdmFyIHR3byA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28n
KTsKQEAgLTI2LDcgKzI3LDcgQEAgcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4
YW1wbAogcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2Jhcicp
LCBbdHdvXSwgImRvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2Jh
cicgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudCIpOwogcnVuVGVzdChkb2N1bWVudC5nZXRJdGVt
cygnaHR0cDovL2V4YW1wbGUuY29tL2YxJyksIFtmb3VyXSwgImRvY3VtZW50LmdldEl0ZW1zKCkg
d2l0aCAnaHR0cDovL2V4YW1wbGUuY29tL2YxJyBpdGVtdHlwZSBpbiB0aGUgYXVyZ3VtZW50Iik7
CiAKLXZhciBlbGVtZW50ID0gY3JlYXRlRWxlbSgnZGl2Jywge2l0ZW1zY29wZTonaXRlbXNjb3Bl
J30pOwordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbXNjb3BlOidpdGVt
c2NvcGUnfSk7CiAKIC8vIEFwcGVuZCBuZXdseSBjcmVhdGVkIGl0ZW0gdG8gYm9keQogZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKQEAgLTM2LDcgKzM3LDggQEAgcnVuVGVzdChk
b2N1bWVudC5nZXRJdGVtcygpLCBbb25lLCB0d28sCiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KGVsZW1lbnQpOwogcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygpLCBbb25lLCB0d28sIHRocmVl
LCBmb3VyXSwgIlJlbW92aW5nIGl0ZW0gc2hvdWxkIGJlIG5vdGljZWQgaW4gdGhlIE5vZGVMaXN0
Iik7CiAKLWRvY3VtZW50LndyaXRlKCI8YnI+VEVTVCBDT01QTEVURSIpOwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA5ODAyMykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsMTYgQEAKIFRoaXMgdGVzdCBlbnN1
cmVzIHRoYXQgbGl2ZSBOb2RlTGlzdCBtdXN0IG5vdGljZSB3aGVuIGl0ZW1zY29wZSBhdHRyaWJ1
dGUgY2hhbmdlcy4KIAotVGhpcyB0ZXN0IHBhZ2UgY29udGFpbiB0d28gbWljcm9kYXRhIGl0ZW1z
OiBQQVNTCi1SZW1vdmluZyBpdGVtc2NvcGUgYXR0cmlidXRlIHNob3VsZCByZWZsZWN0IGluIHRo
ZSBOb2RlTGlzdDogUEFTUwotU2V0IGl0ZW1zY29wZSBhdHRyaWJ1dGUgc2hvdWxkIHJlZmxlY3Qg
aW4gdGhlIE5vZGVMaXN0OiBQQVNTCi1TZXQgZWxlbWVudC5pdGVtU2NvcGUgdG8gZmFsc2Ugc2hv
dWxkIG5vdGljZSBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKLVNldCBlbGVtZW50Lml0ZW1TY29wZSB0
byB0cnVlIHNob3VsZCBub3RpY2UgaW4gdGhlIE5vZGVMaXN0OiBQQVNTCitUaGlzIHRlc3QgcGFn
ZSBjb250YWluIHR3byBtaWNyb2RhdGEgaXRlbXMKK1RFU1QgU1VDQ0VFREVECitSZW1vdmluZyBp
dGVtc2NvcGUgYXR0cmlidXRlIHNob3VsZCByZWZsZWN0IGluIHRoZSBOb2RlTGlzdAorVEVTVCBT
VUNDRUVERUQKK1NldCBpdGVtc2NvcGUgYXR0cmlidXRlIHNob3VsZCByZWZsZWN0IGluIHRoZSBO
b2RlTGlzdAorVEVTVCBTVUNDRUVERUQKK1NldCBlbGVtZW50Lml0ZW1TY29wZSB0byBmYWxzZSBz
aG91bGQgbm90aWNlIGluIHRoZSBOb2RlTGlzdAorVEVTVCBTVUNDRUVERUQKK1NldCBlbGVtZW50
Lml0ZW1TY29wZSB0byB0cnVlIHNob3VsZCBub3RpY2UgaW4gdGhlIE5vZGVMaXN0CitURVNUIFNV
Q0NFRURFRAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLmh0bWwJKHJldmlzaW9u
IDk4MDIzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDEyICsxLDE0IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgbGl2ZSBOb2Rl
TGlzdCBtdXN0IG5vdGljZSB3aGVuIGl0ZW1zY29wZSBhdHRyaWJ1dGUgY2hhbmdlcy48L3A+CiA8
ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgaWQ9Im9uZSI+
PC9kaXY+CiA8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2JhciIg
aWQ9InR3byI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiB2YXIg
b25lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpOwogdmFyIHR3byA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0d28nKTsKQEAgLTI5LDcgKzMxLDggQEAgcnVuVGVzdChkb2N1bWVu
dC5nZXRJdGVtcygpLCBbb25lXSwgIlNldAogdHdvLml0ZW1TY29wZSA9IHRydWU7CiBydW5UZXN0
KGRvY3VtZW50LmdldEl0ZW1zKCksIFtvbmUsIHR3b10sICJTZXQgZWxlbWVudC5pdGVtU2NvcGUg
dG8gdHJ1ZSBzaG91bGQgbm90aWNlIGluIHRoZSBOb2RlTGlzdCIpOwogCi1kb2N1bWVudC53cml0
ZSgiPGJyPlRFU1QgQ09NUExFVEUiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwog
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvMDA1LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDA1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTgwMjMpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA1LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSw3ICsxLDEyIEBACiBUaGlzIHRlc3RzIHRoYXQgbGl2ZSBOb2RlTGlzdCBtdXN0
IG5vdGljZSB3aGVuIGl0ZW10eXBlIGNoYW5nZXMuCiAKLVRoaXMgdGVzdCBwYWdlIGNvbnRhaW4g
dHdvIG1pY3JvZGF0YSBpdGVtczogUEFTUwotTm9kZUxpc3QgbXVzdCBub3RpY2Ugb24gcmVtb3Zl
IGF0dHJpYnV0ZSBpdGVtdHlwZTogUEFTUwotTm9kZUxpc3QgbXVzdCBub3RpY2Ugb24gc2V0IGF0
dHJpYnV0ZSBpdGVtdHlwZTogUEFTUworVGhpcyB0ZXN0IHBhZ2UgY29udGFpbiB0d28gbWljcm9k
YXRhIGl0ZW1zCitURVNUIFNVQ0NFRURFRAorTm9kZUxpc3QgbXVzdCBub3RpY2Ugb24gcmVtb3Zl
IGF0dHJpYnV0ZSBpdGVtdHlwZQorVEVTVCBTVUNDRUVERUQKK05vZGVMaXN0IG11c3Qgbm90aWNl
IG9uIHNldCBhdHRyaWJ1dGUgaXRlbXR5cGUKK1RFU1QgU1VDQ0VFREVECitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhLzAwNS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbAkocmV2aXNpb24gOTgwMjMpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA1Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzEs
MTQgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5Pgog
PHA+VGhpcyB0ZXN0cyB0aGF0IGxpdmUgTm9kZUxpc3QgbXVzdCBub3RpY2Ugd2hlbiBpdGVtdHlw
ZSBjaGFuZ2VzLjwvcD4KIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5j
b20vZm9vIiBpZD0ib25lIj48L2Rpdj4KIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8v
ZXhhbXBsZS5jb20vZm9vIiBpZD0idHdvIj48L2Rpdj4KLQorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CiA8c2NyaXB0PgogdmFyIG9uZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUnKTsK
IHZhciB0d28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJyk7CkBAIC0yMiw3ICsyMyw4
IEBAIHJ1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGwKIG9uZS5zZXRBdHRy
aWJ1dGUoJ2l0ZW10eXBlJywnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpOwogcnVuVGVzdChkb2N1
bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycpLCBbb25lLCB0d29dLCAiTm9k
ZUxpc3QgbXVzdCBub3RpY2Ugb24gc2V0IGF0dHJpYnV0ZSBpdGVtdHlwZSIpOwogCi1kb2N1bWVu
dC53cml0ZSgiPGJyPlRFU1QgQ09NUExFVEUiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvMDA2LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTgwMjMp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA2LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAgVGhpcyB0ZXN0cyB0aGF0IGRvY3VtZW50LmdldEl0
ZW1zIG11c3QgbAogVGhpcyB0ZXN0IGFsc28gZW5zdXJlIHRoYXQgZG9jdW1lbnQuZ2V0SXRlbXMg
bXVzdCBpZ25vcmUgZHVwbGljYXRlZCB0b2tlbnMuCiAKIFBBU1MgZG9jdW1lbnQuZ2V0SXRlbXMo
JyBodHRwOi8vZXhhbXBsZS5jb20vZm9vIGh0dHA6Ly9leGFtcGxlLmNvbS9iYXIgJykubGVuZ3Ro
ID09IDIgaXMgdHJ1ZQotUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnIGh0dHA6Ly9leGFtcGxlLmNv
bS9mb28gZGF0YTp0ZXh0L3BsYWluICcpLmxlbmd0aCA9PSAyIGlzIHRydWUKLVBBU1MgZG9jdW1l
bnQuZ2V0SXRlbXMoJyBodHRwOi8vZXhhbXBsZS5jb20vZm9vIGRhdGE6dGV4dC9wbGFpbiBodHRw
Oi8vZXhhbXBsZS5jb20vZm9vJykubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5n
ZXRJdGVtcygnIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28gIGRhdGE6dGV4dC9wbGFpbiAgJykubGVu
Z3RoID09IDIgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5nZXRJdGVtcygnICBodHRwOi8vZXhhbXBs
ZS5jb20vZm9vICBkYXRhOnRleHQvcGxhaW4gIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28nKS5sZW5n
dGggPT0gMiBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDkuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA5Lmh0bWwJKHJl
dmlzaW9uIDk4MDIzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwOS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4K
IDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3At
YWRkLXJlbW92ZS10b2tlbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1hZGQtcmVtb3ZlLXRva2Vucy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXBy
b3AtYWRkLXJlbW92ZS10b2tlbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDMxIEBACitUaGlzIHRlc3RzIHRoYXQgaXRlbVByb3AgYXR0cmlidXRlIG11c3QgdXBkYXRlIGNv
cnJlY3RseSB3aGVuIHRva2VuIGhhdmUgYmVlbiBhZGRlZCBvciByZW1vdmVkLgorCitDcmVhdGVk
IGVsZW1lbnQgb2YgdHlwZTogZGl2CitpdGVtUHJvcC5hZGQgbXVzdCByZWZsZWN0IGNvcnJlY3Rs
eS4KK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIGVsZW1l
bnQuaXRlbVByb3AudG9TdHJpbmcoKSA9PSAnZm9vIEZPTycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50
Lml0ZW1Qcm9wWzBdIGlzICdmb28nCitQQVNTIGVsZW1lbnQuaXRlbVByb3BbMV0gaXMgJ0ZPTycK
KworaXRlbVByb3AuYWRkIG11c3Qgbm90IG1ha2UgYW55IGNoYW5nZXMgaWYgYW4gZXhpc3Rpbmcg
dG9rZW4gaXMgYWRkZWQuCitQQVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDIgaXMgdHJ1
ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbyBGT08nIGlzIHRydWUK
KworaXRlbVByb3AucmVtb3ZlIG11c3QgcmVmbGVjdCBjb3JyZWN0bHkuCitQQVNTIGVsZW1lbnQu
aXRlbVByb3AubGVuZ3RoID09IDEgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmNvbnRh
aW5zKCdmb28nKSBpcyBmYWxzZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0g
J0ZPTycgaXMgdHJ1ZQorCitpdGVtUHJvcC5yZW1vdmUgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdl
cyBpZiBhIG5vbi1leGlzdGluZyB0b2tlbiBpcyByZW1vdmVkLgorUEFTUyBlbGVtZW50Lml0ZW1Q
cm9wLmxlbmd0aCA9PSAxIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygn
Zm9vJykgaXMgZmFsc2UKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygpID09ICdGT08n
IGlzIHRydWUKKworaXRlbVByb3AubGVuZ3RoIG11c3QgYmUgMCB3aGVuIGFsbCB0b2tlbnMgYXJl
IHJlbW92ZWQuCitQQVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDAgaXMgdHJ1ZQorUEFT
UyBlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdmb28nKSBpcyBmYWxzZQorUEFTUyBlbGVtZW50
Lml0ZW1Qcm9wLmNvbnRhaW5zKCdGT08nKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9pdGVtcHJvcC1hZGQtcmVtb3ZlLXRva2Vucy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1hZGQtcmVtb3ZlLXRva2Vu
cy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW1wcm9wLWFkZC1yZW1vdmUtdG9rZW5zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0cyB0aGF0IGl0ZW1Qcm9wIGF0dHJpYnV0ZSBtdXN0IHVwZGF0ZSBjb3JyZWN0bHkg
d2hlbiB0b2tlbiBoYXZlIGJlZW4gYWRkZWQgb3IgcmVtb3ZlZC48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2Rpdics
IHt9KTsKKworZGVidWcoIml0ZW1Qcm9wLmFkZCBtdXN0IHJlZmxlY3QgY29ycmVjdGx5LiIpOwor
ZWxlbWVudC5pdGVtUHJvcC5hZGQoJ2ZvbycpOworZWxlbWVudC5pdGVtUHJvcC5hZGQoJ0ZPTycp
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAyIik7CitzaG91bGRC
ZVRydWUoImVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSA9PSAnZm9vIEZPTyciKTsKK3Nob3Vs
ZEJlKCJlbGVtZW50Lml0ZW1Qcm9wWzBdIiwgIidmb28nIik7CitzaG91bGRCZSgiZWxlbWVudC5p
dGVtUHJvcFsxXSIsICInRk9PJyIpOworCitkZWJ1ZygiPGJyPml0ZW1Qcm9wLmFkZCBtdXN0IG5v
dCBtYWtlIGFueSBjaGFuZ2VzIGlmIGFuIGV4aXN0aW5nIHRva2VuIGlzIGFkZGVkLiIpOworZWxl
bWVudC5pdGVtUHJvcC5hZGQoJ2ZvbycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9w
Lmxlbmd0aCA9PSAyIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmco
KSA9PSAnZm9vIEZPTyciKTsKKworZGVidWcoIjxicj5pdGVtUHJvcC5yZW1vdmUgbXVzdCByZWZs
ZWN0IGNvcnJlY3RseS4iKTsKK2VsZW1lbnQuaXRlbVByb3AucmVtb3ZlKCdmb28nKTsKK3Nob3Vs
ZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMSIpOworc2hvdWxkQmVGYWxzZSgi
ZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygnZm9vJykiKQorc2hvdWxkQmVUcnVlKCJlbGVtZW50
Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ0ZPTyciKTsKKworZGVidWcoIjxicj5pdGVtUHJvcC5y
ZW1vdmUgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhIG5vbi1leGlzdGluZyB0b2tlbiBp
cyByZW1vdmVkLiIpOworZWxlbWVudC5pdGVtUHJvcC5yZW1vdmUoJ2ZvbycpOworc2hvdWxkQmVU
cnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAxIik7CitzaG91bGRCZUZhbHNlKCJlbGVt
ZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdmb28nKSIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0
ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ0ZPTyciKTsKKworZGVidWcoIjxicj5pdGVtUHJvcC5sZW5n
dGggbXVzdCBiZSAwIHdoZW4gYWxsIHRva2VucyBhcmUgcmVtb3ZlZC4iKTsKK2VsZW1lbnQuaXRl
bVByb3AucmVtb3ZlKCdGT08nKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5sZW5n
dGggPT0gMCIpOworc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygnZm9v
JykiKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ0ZPTycpIik7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3At
Zm9yLWFuLWVsZW1lbnQtbXVzdC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtZm9yLWFuLWVsZW1lbnQt
bXVzdC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJl
Y3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACitUaGlzIHRlc3Qg
dGhhdCB0aGUgaXRlbVByb3Agc2hvdWxkIGJlIGNvcnJlY3QgZm9yIGFuIGVsZW1lbnQgdGhhdCBo
YXMgaXRlbVByb3AgYXR0cmlidXRlLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitT
ZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbyBiYXIgRk9PCitQQVNTIGVsZW1lbnQu
aXRlbVByb3AubGVuZ3RoID09IDMgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3Ry
aW5nKCkgPT0gJ2ZvbyBiYXIgRk9PJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AuaXRl
bSgwKSA9PSAnZm9vJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AuaXRlbSgxKSA9PSAn
YmFyJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3BbMF0gPT0gJ2ZvbycgaXMgdHJ1ZQor
UEFTUyBlbGVtZW50Lml0ZW1Qcm9wWzFdID09ICdiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5p
dGVtUHJvcC5jb250YWlucygnYmFyJykgaXMgdHJ1ZQorCitpdGVtUHJvcCBzaG91bGQgcmV0dXJu
IGNhc2Utc2Vuc2l0aXZlIHN0cmluZ3MuCitQQVNTIGVsZW1lbnQuaXRlbVByb3AuaXRlbSgyKSA9
PSAnRk9PJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3BbMl0gPT0gJ0ZPTycgaXMgdHJ1
ZQorCitpdGVtUHJvcCBzaG91bGQgbm90IGNvbnRhaW4gYW4gdW5kZWZpbmVkIHRva2VuLgorUEFT
UyBlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCd0ZXN0JykgaXMgZmFsc2UKKworaXRlbVByb3Au
bGVuZ3RoIHNob3VsZCBiZSAwIGlmIGVsZW1lbnQgaGFzIG5vdCB0b2tlbnMuCitDcmVhdGVkIGVs
ZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IAorUEFT
UyBlbGVtZW50MS5pdGVtUHJvcC5sZW5ndGggPT0gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29ycmVjdC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJv
cC1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1mb3ItYW4tZWxlbWVudC1tdXN0
LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0
YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgdGhh
dCB0aGUgaXRlbVByb3Agc2hvdWxkIGJlIGNvcnJlY3QgZm9yIGFuIGVsZW1lbnQgdGhhdCBoYXMg
aXRlbVByb3AgYXR0cmlidXRlLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1wcm9wOiAnZm9vIGJh
ciBGT08nfSk7CisKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMyIp
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbyBiYXIg
Rk9PJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLml0ZW0oMCkgPT0gJ2Zvbyci
KTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC5pdGVtKDEpID09ICdiYXInIik7Citz
aG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3BbMF0gPT0gJ2ZvbyciKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5pdGVtUHJvcFsxXSA9PSAnYmFyJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50
Lml0ZW1Qcm9wLmNvbnRhaW5zKCdiYXInKSIpOworCitkZWJ1ZygiPGJyPml0ZW1Qcm9wIHNob3Vs
ZCByZXR1cm4gY2FzZS1zZW5zaXRpdmUgc3RyaW5ncy4iKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVu
dC5pdGVtUHJvcC5pdGVtKDIpID09ICdGT08nIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRl
bVByb3BbMl0gPT0gJ0ZPTyciKTsKKworZGVidWcoIjxicj5pdGVtUHJvcCBzaG91bGQgbm90IGNv
bnRhaW4gYW4gdW5kZWZpbmVkIHRva2VuLiIpOworc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5pdGVt
UHJvcC5jb250YWlucygndGVzdCcpIik7CisKK2RlYnVnKCI8YnI+aXRlbVByb3AubGVuZ3RoIHNo
b3VsZCBiZSAwIGlmIGVsZW1lbnQgaGFzIG5vdCB0b2tlbnMuIik7Cit2YXIgZWxlbWVudDEgPSBj
cmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbXByb3A6ICcnfSk7CitzaG91bGRCZVRydWUoImVsZW1l
bnQxLml0ZW1Qcm9wLmxlbmd0aCA9PSAwIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtbXVzdC1iZS1yZWFkLW9ubHktZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1t
dXN0LWJlLXJlYWQtb25seS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtbXVzdC1iZS1yZWFkLW9ubHktZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3RzIHRoYXQgaXRlbVBy
b3AgYW5kIGl0ZW1Qcm9wLmxlbmd0aCBtdXN0IGJlIHJlYWQtb25seS4KKworQ3JlYXRlZCBlbGVt
ZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1BB
U1MgZWxlbWVudC5pdGVtUHJvcCA9ICd0ZXN0JzsgZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygp
ID09ICdmb28nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygndGVzdCcp
IGlzIGZhbHNlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID0gMDsgZWxlbWVudC5pdGVt
UHJvcC5sZW5ndGggPT0gMSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L2l0ZW1wcm9wLW11c3QtYmUtcmVhZC1vbmx5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLW11c3QtYmUtcmVhZC1vbmx5Lmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtbXVz
dC1iZS1yZWFkLW9ubHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3Jv
ZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Rz
IHRoYXQgaXRlbVByb3AgYW5kIGl0ZW1Qcm9wLmxlbmd0aCBtdXN0IGJlIHJlYWQtb25seS48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0
ZUVsZW1lbnQoJ2RpdicsIHtpdGVtcHJvcDogJ2Zvbyd9KTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVu
dC5pdGVtUHJvcCA9ICd0ZXN0JzsgZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygpID09ICdmb28n
Iik7CitzaG91bGRCZUZhbHNlKCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCd0ZXN0JykiKTsK
Kworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9IDA7IGVsZW1lbnQuaXRl
bVByb3AubGVuZ3RoID09IDEiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9pdGVtcHJvcC1yZWZsZWN0ZWQtYnktaXRlbVByb3AtcHJvcGVydHktZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVt
cHJvcC1yZWZsZWN0ZWQtYnktaXRlbVByb3AtcHJvcGVydHktZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLXJlZmxlY3Rl
ZC1ieS1pdGVtUHJvcC1wcm9wZXJ0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTEgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIGl0ZW1wcm9wIGF0dHJpYnV0ZSBt
dXN0IGJlIHJlZmxlY3RlZCBieSB0aGUgLml0ZW1Qcm9wIHByb3BlcnR5LgorCitDcmVhdGVkIGVs
ZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGh0dHA6
Ly9leGFtcGxlLmNvbS9mb28KK1BBU1MgZWxlbWVudC5pdGVtUHJvcCBpcyBkZWZpbmVkLgorUEFT
UyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28n
CitQQVNTIGVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSBpcyAnJworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1yZWZsZWN0ZWQtYnktaXRlbVByb3AtcHJvcGVydHku
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXBy
b3AtcmVmbGVjdGVkLWJ5LWl0ZW1Qcm9wLXByb3BlcnR5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtcmVmbGVjdGVkLWJ5LWl0ZW1Q
cm9wLXByb3BlcnR5Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2Rh
dGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVu
c3VyZXMgdGhhdCB0aGUgaXRlbXByb3AgYXR0cmlidXRlIG11c3QgYmUgcmVmbGVjdGVkIGJ5IHRo
ZSAuaXRlbVByb3AgcHJvcGVydHkuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbXByb3A6ICdodHRw
Oi8vZXhhbXBsZS5jb20vZm9vJ30pOworCitzaG91bGRCZURlZmluZWQoImVsZW1lbnQuaXRlbVBy
b3AiKTsKK3Nob3VsZEJlKCJlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkiLCAiJ2h0dHA6Ly9l
eGFtcGxlLmNvbS9mb28nIik7CisKK2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdpdGVtUHJvcCcp
Oworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSIsICInJyIpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtYWRkLXJlbW92
ZS10b2tlbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9pdGVtcmVmLWFkZC1yZW1vdmUtdG9rZW5zLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLWFkZC1yZW1v
dmUtdG9rZW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorVGhp
cyB0ZXN0cyB0aGF0IGl0ZW1SZWYgYXR0cmlidXRlIG11c3QgdXBkYXRlIGNvcnJlY3RseSB3aGVu
IHRva2VuIGhhdmUgYmVlbiBhZGRlZCBvciByZW1vdmVkLgorCitDcmVhdGVkIGVsZW1lbnQgb2Yg
dHlwZTogZGl2CitpdGVtUmVmLmFkZCBtdXN0IHJlZmxlY3QgY29ycmVjdGx5LgorUEFTUyBlbGVt
ZW50Lml0ZW1SZWYubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYudG9T
dHJpbmcoKSBpcyAnZm9vIEZPTycKK1BBU1MgZWxlbWVudC5pdGVtUmVmWzBdIGlzICdmb28nCitQ
QVNTIGVsZW1lbnQuaXRlbVJlZlsxXSBpcyAnRk9PJworCitpdGVtUmVmLmFkZCBtdXN0IG5vdCBt
YWtlIGFueSBjaGFuZ2VzIGlmIGFuIGV4aXN0aW5nIHRva2VuIGlzIGFkZGVkLgorUEFTUyBlbGVt
ZW50Lml0ZW1SZWYubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYudG9T
dHJpbmcoKSBpcyAnZm9vIEZPTycKKworaXRlbVJlZi5yZW1vdmUgbXVzdCByZWZsZWN0IGNvcnJl
Y3RseS4KK1BBU1MgZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAxIGlzIHRydWUKK1BBU1MgZWxl
bWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgaXMgJ0ZPTycKK1BBU1MgZWxlbWVudC5pdGVtUmVmLmNv
bnRhaW5zKCdmb28nKSBpcyBmYWxzZQorCitpdGVtUmVmLnJlbW92ZSBtdXN0IG5vdCBtYWtlIGFu
eSBjaGFuZ2VzIGlmIGEgbm9uLWV4aXN0aW5nIHRva2VuIGlzIHJlbW92ZWQuCitQQVNTIGVsZW1l
bnQuaXRlbVJlZi5sZW5ndGggPT0gMSBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi50b1N0
cmluZygpIGlzICdGT08nCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnZm9vJykgaXMg
ZmFsc2UKKworaXRlbVJlZi5sZW5ndGggbXVzdCBiZSAwIHdoZW4gYWxsIHRva2VucyBhcmUgcmVt
b3ZlZC4KK1BBU1MgZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAwIGlzIHRydWUKK1BBU1MgZWxl
bWVudC5pdGVtUmVmLmNvbnRhaW5zKCdmb28nKSBpcyBmYWxzZQorUEFTUyBlbGVtZW50Lml0ZW1S
ZWYuY29udGFpbnMoJ0ZPTycpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW1yZWYtYWRkLXJlbW92ZS10b2tlbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1hZGQtcmVtb3ZlLXRva2Vucy5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtYWRk
LXJlbW92ZS10b2tlbnMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3Jv
ZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Rz
IHRoYXQgaXRlbVJlZiBhdHRyaWJ1dGUgbXVzdCB1cGRhdGUgY29ycmVjdGx5IHdoZW4gdG9rZW4g
aGF2ZSBiZWVuIGFkZGVkIG9yIHJlbW92ZWQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7fSk7CisKK2Rl
YnVnKCJpdGVtUmVmLmFkZCBtdXN0IHJlZmxlY3QgY29ycmVjdGx5LiIpOworZWxlbWVudC5pdGVt
UmVmLmFkZCgnZm9vJyk7CitlbGVtZW50Lml0ZW1SZWYuYWRkKCdGT08nKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAyIik7CitzaG91bGRCZSgiZWxlbWVudC5pdGVt
UmVmLnRvU3RyaW5nKCkiLCAiJ2ZvbyBGT08nIik7CitzaG91bGRCZSgiZWxlbWVudC5pdGVtUmVm
WzBdIiwgIidmb28nIik7CitzaG91bGRCZSgiZWxlbWVudC5pdGVtUmVmWzFdIiwgIidGT08nIik7
CisKK2RlYnVnKCI8YnI+aXRlbVJlZi5hZGQgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBh
biBleGlzdGluZyB0b2tlbiBpcyBhZGRlZC4iKTsKK2VsZW1lbnQuaXRlbVJlZi5hZGQoJ2Zvbycp
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJl
KCJlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSIsICInZm9vIEZPTyciKTsKKworZGVidWcoIjxi
cj5pdGVtUmVmLnJlbW92ZSBtdXN0IHJlZmxlY3QgY29ycmVjdGx5LiIpOworZWxlbWVudC5pdGVt
UmVmLnJlbW92ZSgnZm9vJyk7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5sZW5ndGgg
PT0gMSIpOworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpIiwgIidGT08nIik7
CitzaG91bGRCZUZhbHNlKCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIik7CisKK2Rl
YnVnKCI8YnI+aXRlbVJlZi5yZW1vdmUgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhIG5v
bi1leGlzdGluZyB0b2tlbiBpcyByZW1vdmVkLiIpOworZWxlbWVudC5pdGVtUmVmLnJlbW92ZSgn
Zm9vJyk7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMSIpOworc2hv
dWxkQmUoImVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpIiwgIidGT08nIik7CitzaG91bGRCZUZh
bHNlKCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIik7CisKK2RlYnVnKCI8YnI+aXRl
bVJlZi5sZW5ndGggbXVzdCBiZSAwIHdoZW4gYWxsIHRva2VucyBhcmUgcmVtb3ZlZC4iKTsKK2Vs
ZW1lbnQuaXRlbVJlZi5yZW1vdmUoJ0ZPTycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1S
ZWYubGVuZ3RoID09IDAiKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVJlZi5jb250YWlu
cygnZm9vJykiKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnRk9P
JykiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVt
cmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVJlZi1wcm9wZXJ0eS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtYXR0
cmlidXRlLXJlZmxlY3RlZC1ieS1pdGVtUmVmLXByb3BlcnR5LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLWF0dHJpYnV0
ZS1yZWZsZWN0ZWQtYnktaXRlbVJlZi1wcm9wZXJ0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIGl0ZW1yZWYgYXR0
cmlidXRlIG11c3QgYmUgcmVmbGVjdGVkIGJ5IHRoZSAuaXRlbVJlZiBwcm9wZXJ0eS4KKworQ3Jl
YXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXJlZiwgdmFsdWU6
IGZvbyBiYXIKK1BBU1MgZWxlbWVudC5pdGVtUmVmIGlzIGRlZmluZWQuCitQQVNTIGVsZW1lbnQu
aXRlbVJlZi5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi50b1N0cmlu
ZygpID09ICdmb28gYmFyJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygp
ID09ICcnIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1h
dHRyaWJ1dGUtcmVmbGVjdGVkLWJ5LWl0ZW1SZWYtcHJvcGVydHkuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1hdHRyaWJ1dGUtcmVmbGVj
dGVkLWJ5LWl0ZW1SZWYtcHJvcGVydHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVJl
Zi1wcm9wZXJ0eS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRh
LWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1
cmVzIHRoYXQgdGhlIGl0ZW1yZWYgYXR0cmlidXRlIG11c3QgYmUgcmVmbGVjdGVkIGJ5IHRoZSAu
aXRlbVJlZiBwcm9wZXJ0eS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtcmVmOiAnZm9vIGJhcid9
KTsKK3Nob3VsZEJlRGVmaW5lZCgiZWxlbWVudC5pdGVtUmVmIik7CisKK3Nob3VsZEJlVHJ1ZSgi
ZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAyIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRl
bVJlZi50b1N0cmluZygpID09ICdmb28gYmFyJyIpOworCitlbGVtZW50LnJlbW92ZUF0dHJpYnV0
ZSgnaXRlbXJlZicpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSA9
PSAnJyIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW1yZWYtZm9yLWFuLWVsZW1lbnQtbXVzdC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1mb3ItYW4tZWxl
bWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtZm9yLWFuLWVsZW1lbnQtbXVzdC1iZS1j
b3JyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorVGhpcyB0
ZXN0IHRoYXQgdGhlIGl0ZW1SZWYgc2hvdWxkIGJlIGNvcnJlY3QgZm9yIGFuIGVsZW1lbnQgdGhh
dCBoYXMgaXRlbVJlZiBhdHRyaWJ1dGUuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYK
K1NldCBhdHRyaWJ1dGU6IGl0ZW1yZWYsIHZhbHVlOiBmb28gYmFyIEZPTworUEFTUyBlbGVtZW50
Lml0ZW1SZWYubGVuZ3RoID09IDMgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYudG9TdHJp
bmcoKSA9PSAnZm9vIGJhciBGT08nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmLml0ZW0o
MCkgPT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuaXRlbSgxKSA9PSAnYmFy
JyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZlswXSA9PSAnZm9vJyBpcyB0cnVlCitQQVNT
IGVsZW1lbnQuaXRlbVJlZlsxXSA9PSAnYmFyJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJl
Zi5jb250YWlucygnYmFyJykgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMo
J2ZvbycpIGlzIHRydWUKKworaXRlbVJlZiBzaG91bGQgcmV0dXJuIGNhc2Utc2Vuc2l0aXZlIHN0
cmluZ3MuCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5pdGVtKDIpID09ICdGT08nIGlzIHRydWUKK1BB
U1MgZWxlbWVudC5pdGVtUmVmWzJdID09ICdGT08nIGlzIHRydWUKKworaXRlbVJlZiBzaG91bGQg
bm90IGNvbnRhaW4gYW4gdW5kZWZpbmVkIHRva2VuLgorUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29u
dGFpbnMoJ3Rlc3QnKSBpcyBmYWxzZQorCitpdGVtUmVmLmxlbmd0aCBzaG91bGQgYmUgMCBpZiBl
bGVtZW50IGhhcyBub3QgdG9rZW5zLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0
IGF0dHJpYnV0ZTogaXRlbVJlZiwgdmFsdWU6IAorUEFTUyBlbGVtZW50MS5pdGVtUmVmLmxlbmd0
aCA9PSAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1m
b3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNv
cnJlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9pdGVtcmVmLWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29ycmVjdC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCB0aGF0IHRoZSBpdGVtUmVmIHNob3VsZCBiZSBjb3Jy
ZWN0IGZvciBhbiBlbGVtZW50IHRoYXQgaGFzIGl0ZW1SZWYgYXR0cmlidXRlLjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVu
dCgnZGl2Jywge2l0ZW1yZWY6ICdmb28gYmFyIEZPTyd9KTsKKworc2hvdWxkQmVUcnVlKCJlbGVt
ZW50Lml0ZW1SZWYubGVuZ3RoID09IDMiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVm
LnRvU3RyaW5nKCkgPT0gJ2ZvbyBiYXIgRk9PJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0
ZW1SZWYuaXRlbSgwKSA9PSAnZm9vJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYu
aXRlbSgxKSA9PSAnYmFyJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWZbMF0gPT0g
J2ZvbyciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmWzFdID09ICdiYXInIik7Citz
aG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnYmFyJykiKTsKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdmb28nKSIpOworCitkZWJ1ZygiPGJyPml0
ZW1SZWYgc2hvdWxkIHJldHVybiBjYXNlLXNlbnNpdGl2ZSBzdHJpbmdzLiIpOworc2hvdWxkQmVU
cnVlKCJlbGVtZW50Lml0ZW1SZWYuaXRlbSgyKSA9PSAnRk9PJyIpOworc2hvdWxkQmVUcnVlKCJl
bGVtZW50Lml0ZW1SZWZbMl0gPT0gJ0ZPTyciKTsKKworZGVidWcoIjxicj5pdGVtUmVmIHNob3Vs
ZCBub3QgY29udGFpbiBhbiB1bmRlZmluZWQgdG9rZW4uIik7CitzaG91bGRCZUZhbHNlKCJlbGVt
ZW50Lml0ZW1SZWYuY29udGFpbnMoJ3Rlc3QnKSIpOworCitkZWJ1ZygiPGJyPml0ZW1SZWYubGVu
Z3RoIHNob3VsZCBiZSAwIGlmIGVsZW1lbnQgaGFzIG5vdCB0b2tlbnMuIik7Cit2YXIgZWxlbWVu
dDEgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbVJlZjogJyd9KTsKK3Nob3VsZEJlVHJ1ZSgi
ZWxlbWVudDEuaXRlbVJlZi5sZW5ndGggPT0gMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtbXVzdC1iZS1yZWFkLW9ubHktZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVm
LW11c3QtYmUtcmVhZC1vbmx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLW11c3QtYmUtcmVhZC1vbmx5LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0cyB0aGF0IGl0ZW1S
ZWYgYW5kIGl0ZW1SZWYubGVuZ3RoIG11c3QgYmUgcmVhZC1vbmx5LgorCitDcmVhdGVkIGVsZW1l
bnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtcmVmLCB2YWx1ZTogZm9vCitQQVNT
IGVsZW1lbnQuaXRlbXJlZiA9ICd0ZXN0JzsgZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgPT0g
J2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ3Rlc3QnKSBpcyBm
YWxzZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID0gMDsgZWxlbWVudC5pdGVtUmVmLmxl
bmd0aCA9PSAxIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJl
Zi1tdXN0LWJlLXJlYWQtb25seS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtcmVmLW11c3QtYmUtcmVhZC1vbmx5Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1tdXN0LWJlLXJlYWQt
b25seS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpdGVt
UmVmIGFuZCBpdGVtUmVmLmxlbmd0aCBtdXN0IGJlIHJlYWQtb25seS48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2Rp
dicsIHtpdGVtcmVmOiAnZm9vJ30pOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1yZWYgPSAn
dGVzdCc7IGVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpID09ICdmb28nIik7CitzaG91bGRCZUZh
bHNlKCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ3Rlc3QnKSIpOworCitzaG91bGRCZVRydWUo
ImVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPSAwOyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDEi
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFs
dWUtcmVmbGVjdHMtZGF0YS1hdHRyLW9uLW9iamVjdC1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxl
Y3RzLWRhdGEtYXR0ci1vbi1vYmplY3QtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLWRh
dGEtYXR0ci1vbi1vYmplY3QtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVj
dCB0aGUgZGF0YSBhdHRyaWJ1dGUgb24gb2JqZWN0IGVsZW1lbnQuCisKK0NyZWF0ZWQgZWxlbWVu
dCBvZiB0eXBlOiBvYmplY3QKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitT
ZXQgYXR0cmlidXRlOiBkYXRhLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUub3JnLworUEFTUyBvYmpl
Y3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1Mgb2JqZWN0
RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIG9iamVjdEVs
ZW1lbnQuZGF0YSBpcyAnaHR0cDovL2V4YW1wbGUuY29tLycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLWRhdGEtYXR0ci1vbi1vYmplY3QtZWxlbWVu
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVt
dmFsdWUtcmVmbGVjdHMtZGF0YS1hdHRyLW9uLW9iamVjdC1lbGVtZW50Lmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3Rz
LWRhdGEtYXR0ci1vbi1vYmplY3QtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgZGF0
YSBhdHRyaWJ1dGUgb24gb2JqZWN0IGVsZW1lbnQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgordmFyIG9iamVjdEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdvYmplY3Qn
LCB7aXRlbXByb3A6ICdmb28nLCBkYXRhOiAnaHR0cDovL2V4YW1wbGUub3JnLyd9KTsKK3Nob3Vs
ZEJlKCdvYmplY3RFbGVtZW50Lml0ZW1WYWx1ZScsICInaHR0cDovL2V4YW1wbGUub3JnLyciKTsK
K29iamVjdEVsZW1lbnQuZGF0YSA9ICdodHRwOi8vZXhhbXBsZS5uZXQvJzsKK3Nob3VsZEJlKCdv
YmplY3RFbGVtZW50Lml0ZW1WYWx1ZScsICInaHR0cDovL2V4YW1wbGUubmV0LyciKTsKK29iamVj
dEVsZW1lbnQuaXRlbVZhbHVlID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS8nOworc2hvdWxkQmUoJ29i
amVjdEVsZW1lbnQuZGF0YScsICInaHR0cDovL2V4YW1wbGUuY29tLyciKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1ocmVm
LWF0dHItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtaHJlZi1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVj
dHMtaHJlZi1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAor
VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBocmVmIGF0
dHJpYnV0ZSBpZiB0aGUgZWxlbWVudCBpcyBhbiBhLCBhcmVhLCBvciBsaW5rIGVsZW1lbnQuCisK
K1Rlc3RpbmcgJ2EnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBl
OiBhCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTog
aHJlZiwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZh
bHVlIGlzICdodHRwOi8vZXhhbXBsZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUg
aXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIHRlc3RFbGVtZW50LmhyZWYgaXMgJ2h0dHA6
Ly9leGFtcGxlLmNvbS8nCisKK1Rlc3RpbmcgJ2FyZWEnIGVsZW1lbnQncyBiZWhhdmlvci4KK0Ny
ZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhcmVhCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFs
dWU6IGZvbworU2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLm9yZy8K
K1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5vcmcvJworUEFT
UyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIHRl
c3RFbGVtZW50LmhyZWYgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCisKK1Rlc3RpbmcgJ2xpbmsn
IGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBsaW5rCitTZXQg
YXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFs
dWU6IGh0dHA6Ly9leGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdo
dHRwOi8vZXhhbXBsZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6
Ly9leGFtcGxlLm5ldC8nCitQQVNTIHRlc3RFbGVtZW50LmhyZWYgaXMgJ2h0dHA6Ly9leGFtcGxl
LmNvbS8nCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxl
Y3RzLWhyZWYtYXR0ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtaHJlZi1hdHRyLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLWhyZWYt
YXR0ci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgaHJlZiBhdHRyaWJ1dGUgaWYgdGhlIGVsZW1l
bnQgaXMgYW4gYSwgYXJlYSwgb3IgbGluayBlbGVtZW50LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK3ZhciB0ZXN0RWxlbWVudDsKK2Z1bmN0aW9uIHJ1blRlc3QodGFn
TmFtZSkKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyAnIiArIHRhZ05hbWUgKyAiJyBlbGVtZW50J3Mg
YmVoYXZpb3IuIik7CisgICAgdGVzdEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIHtp
dGVtcHJvcDogJ2ZvbycsIGhyZWY6ICdodHRwOi8vZXhhbXBsZS5vcmcvJ30pOworICAgIHNob3Vs
ZEJlKCJ0ZXN0RWxlbWVudC5pdGVtVmFsdWUiLCAiJ2h0dHA6Ly9leGFtcGxlLm9yZy8nIik7Cisg
ICAgdGVzdEVsZW1lbnQuaHJlZiA9ICdodHRwOi8vZXhhbXBsZS5uZXQvJzsKKyAgICBzaG91bGRC
ZSgidGVzdEVsZW1lbnQuaXRlbVZhbHVlIiwgIidodHRwOi8vZXhhbXBsZS5uZXQvJyIpOworICAg
IHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSA9ICdodHRwOi8vZXhhbXBsZS5jb20vJzsKKyAgICBzaG91
bGRCZSgidGVzdEVsZW1lbnQuaHJlZiIsICInaHR0cDovL2V4YW1wbGUuY29tLyciKTsKKyAgICBk
ZWJ1ZygnJyk7Cit9CisKK3J1blRlc3QoJ2EnKTsKK3J1blRlc3QoJ2FyZWEnKTsKK3J1blRlc3Qo
J2xpbmsnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW12YWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmlidXRlLW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVl
LXJlZmxlY3RzLXNyYy1hdHRyaWJ1dGUtb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZs
ZWN0cy1zcmMtYXR0cmlidXRlLW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVz
dCByZWZsZWN0IHRoZSBzcmMgYXR0cmlidXRlIG9uIGltZyBlbGVtZW50LgorCitDcmVhdGVkIGVs
ZW1lbnQgb2YgdHlwZTogaW1nCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbwor
U2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogZ3JlZW4uanBnCitQQVNTIGltZ0VsZW1lbnQuaXRl
bVZhbHVlIGlzIGltZ0VsZW1lbnQuc3JjCitQQVNTIGltZ0VsZW1lbnQuaXRlbVZhbHVlIGlzIGlt
Z0VsZW1lbnQuc3JjCitQQVNTIGltZ0VsZW1lbnQuc3JjIGlzIGltZ0VsZW1lbnQuaXRlbVZhbHVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1zcmMt
YXR0cmlidXRlLW9uLWltZy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmlidXRlLW9uLWlt
Zy1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLXNyYy1hdHRyaWJ1dGUtb24taW1nLWVsZW1lbnQuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1W
YWx1ZSBtdXN0IHJlZmxlY3QgdGhlIHNyYyBhdHRyaWJ1dGUgb24gaW1nIGVsZW1lbnQuPC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGltZ0VsZW1lbnQgPSBjcmVh
dGVFbGVtZW50KCdpbWcnLCB7aXRlbXByb3A6ICdmb28nLCBzcmM6ICdncmVlbi5qcGcnfSk7Citz
aG91bGRCZSgnaW1nRWxlbWVudC5pdGVtVmFsdWUnLCAnaW1nRWxlbWVudC5zcmMnKTsKK2ltZ0Vs
ZW1lbnQuc3JjID0gJ3JlZC5qcGcnOworc2hvdWxkQmUoJ2ltZ0VsZW1lbnQuaXRlbVZhbHVlJywg
ImltZ0VsZW1lbnQuc3JjIik7CitpbWdFbGVtZW50Lml0ZW1WYWx1ZSA9ICdibHVlLmpwZWcnOwor
c2hvdWxkQmUoJ2ltZ0VsZW1lbnQuc3JjJywgImltZ0VsZW1lbnQuaXRlbVZhbHVlIik7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVj
dHMtdGhlLWNvbnRlbnQtYXR0ci1vbi1tZXRhLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMt
dGhlLWNvbnRlbnQtYXR0ci1vbi1tZXRhLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy10
aGUtY29udGVudC1hdHRyLW9uLW1ldGEtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3Qg
cmVmbGVjdCB0aGUgY29udGVudCBhdHRyaWJ1dGUgb24gbWV0YSBlbGVtZW50LgorCitDcmVhdGVk
IGVsZW1lbnQgb2YgdHlwZTogbWV0YQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBm
b28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitQQVNTIG1ldGFFbGVtZW50
Lml0ZW1WYWx1ZSBpcyAndGVzdCcKK1BBU1MgbWV0YUVsZW1lbnQuaXRlbVZhbHVlIGlzICdyZXRl
c3QnCitQQVNTIG1ldGFFbGVtZW50LmNvbnRlbnQgaXMgJ2JhcicKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLXRoZS1jb250ZW50LWF0dHItb24tbWV0
YS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy10aGUtY29udGVudC1hdHRyLW9uLW1ldGEtZWxlbWVudC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12
YWx1ZS1yZWZsZWN0cy10aGUtY29udGVudC1hdHRyLW9uLW1ldGEtZWxlbWVudC5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11
c3QgcmVmbGVjdCB0aGUgY29udGVudCBhdHRyaWJ1dGUgb24gbWV0YSBlbGVtZW50LjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBtZXRhRWxlbWVudCA9IGNyZWF0
ZUVsZW1lbnQoJ21ldGEnLCB7aXRlbXByb3A6ICdmb28nLGNvbnRlbnQ6ICd0ZXN0J30pOworc2hv
dWxkQmUoJ21ldGFFbGVtZW50Lml0ZW1WYWx1ZScsICIndGVzdCciKTsKK21ldGFFbGVtZW50LmNv
bnRlbnQgPSAncmV0ZXN0JzsKK3Nob3VsZEJlKCdtZXRhRWxlbWVudC5pdGVtVmFsdWUnLCAiJ3Jl
dGVzdCciKTsKK21ldGFFbGVtZW50Lml0ZW1WYWx1ZSA9ICdiYXInOworc2hvdWxkQmUoJ21ldGFF
bGVtZW50LmNvbnRlbnQnLCAiJ2JhciciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy10aGUtc3JjLWF0dHItZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFs
dWUtcmVmbGVjdHMtdGhlLXNyYy1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1h
dHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorVGhpcyB0ZXN0
IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBzcmMgYXR0cmlidXRlIGlm
IHRoZSBlbGVtZW50IGlzIGFuIGF1ZGlvLCBlbWJlZCwgaWZyYW1lLCBzb3VyY2UsIHRyYWNrLCBv
ciB2aWRlbyBlbGVtZW50LgorCitUZXN0aW5nICdhdWRpbycgZWxlbWVudCdzIGJlaGF2aW9yLgor
Q3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGF1ZGlvCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwg
dmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUub3Jn
LworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9yZy8nCitQ
QVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUubmV0LycKK1BBU1Mg
dGVzdEVsZW1lbnQuc3JjIGlzICdodHRwOi8vZXhhbXBsZS5jb20vJworCitUZXN0aW5nICdlbWJl
ZCcgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGVtYmVkCitT
ZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2
YWx1ZTogaHR0cDovL2V4YW1wbGUub3JnLworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMg
J2h0dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0
cDovL2V4YW1wbGUubmV0LycKK1BBU1MgdGVzdEVsZW1lbnQuc3JjIGlzICdodHRwOi8vZXhhbXBs
ZS5jb20vJworCitUZXN0aW5nICdpZnJhbWUnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQg
ZWxlbWVudCBvZiB0eXBlOiBpZnJhbWUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTog
Zm9vCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5vcmcvCitQQVNT
IHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVz
dEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxl
bWVudC5zcmMgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCisKK1Rlc3RpbmcgJ3NvdXJjZScgZWxl
bWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHNvdXJjZQorU2V0IGF0
dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6
IGh0dHA6Ly9leGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRw
Oi8vZXhhbXBsZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9l
eGFtcGxlLm5ldC8nCitQQVNTIHRlc3RFbGVtZW50LnNyYyBpcyAnaHR0cDovL2V4YW1wbGUuY29t
LycKKworVGVzdGluZyAndHJhY2snIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVu
dCBvZiB0eXBlOiB0cmFjaworU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1Nl
dCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVs
ZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVu
dC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIHRlc3RFbGVtZW50LnNy
YyBpcyAnaHR0cDovL2V4YW1wbGUuY29tLycKKworVGVzdGluZyAndmlkZW8nIGVsZW1lbnQncyBi
ZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiB2aWRlbworU2V0IGF0dHJpYnV0ZTog
aXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IGh0dHA6Ly9l
eGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBs
ZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5l
dC8nCitQQVNTIHRlc3RFbGVtZW50LnNyYyBpcyAnaHR0cDovL2V4YW1wbGUuY29tLycKKworUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1h
dHRyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW12YWx1ZS1yZWZsZWN0cy10aGUtc3JjLWF0dHIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1hdHRy
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVm
bGVjdCB0aGUgc3JjIGF0dHJpYnV0ZSBpZiB0aGUgZWxlbWVudCBpcyBhbiBhdWRpbywgZW1iZWQs
IGlmcmFtZSwgc291cmNlLCB0cmFjaywgb3IgdmlkZW8gZWxlbWVudC48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgdGVzdEVsZW1lbnQ7CitmdW5jdGlvbiBydW5U
ZXN0KHRhZ05hbWUpCit7CisgICAgZGVidWcoIlRlc3RpbmcgJyIgKyB0YWdOYW1lICsgIicgZWxl
bWVudCdzIGJlaGF2aW9yLiIpOworICAgIHRlc3RFbGVtZW50ID0gY3JlYXRlRWxlbWVudCh0YWdO
YW1lLCB7aXRlbXByb3A6ICdmb28nLCBzcmM6ICdodHRwOi8vZXhhbXBsZS5vcmcvJ30pOworICAg
IHNob3VsZEJlKCJ0ZXN0RWxlbWVudC5pdGVtVmFsdWUiLCAiJ2h0dHA6Ly9leGFtcGxlLm9yZy8n
Iik7CisgICAgdGVzdEVsZW1lbnQuc3JjID0gJ2h0dHA6Ly9leGFtcGxlLm5ldC8nOworICAgIHNo
b3VsZEJlKCJ0ZXN0RWxlbWVudC5pdGVtVmFsdWUiLCAiJ2h0dHA6Ly9leGFtcGxlLm5ldC8nIik7
CisgICAgdGVzdEVsZW1lbnQuaXRlbVZhbHVlID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS8nOworICAg
IHNob3VsZEJlKCJ0ZXN0RWxlbWVudC5zcmMiLCAiJ2h0dHA6Ly9leGFtcGxlLmNvbS8nIik7Cisg
ICAgZGVidWcoJycpOworfQorCitydW5UZXN0KCdhdWRpbycpOworcnVuVGVzdCgnZW1iZWQnKTsK
K3J1blRlc3QoJ2lmcmFtZScpOworcnVuVGVzdCgnc291cmNlJyk7CitydW5UZXN0KCd0cmFjaycp
OworcnVuVGVzdCgndmlkZW8nKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL2l0ZW12YWx1ZS1yZXR1cm5zLWVsZW1lbnQtaXRzZWxmLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJl
dHVybnMtZWxlbWVudC1pdHNlbGYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZXR1cm5zLWVsZW1lbnQtaXRzZWxm
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NyBAQAorVGhpcyB0ZXN0IGVu
c3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZXR1cm4gdGhlIGVsZW1lbnQgaXRzZWxmIGlmIHRo
ZSBlbGVtZW50IGhhcyBhbiBpdGVtc2NvcGUgYXR0cmlidXRlCisKK1Rlc3RpbmcgJ21ldGEnIGVs
ZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBtZXRhCitTZXQgYXR0
cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1w
cm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorUEFT
UyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKKworVGVzdGluZyAnYXVkaW8n
IGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhdWRpbworU2V0
IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBp
dGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QK
K1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVtZW50CisKK1Rlc3RpbmcgJ2Vt
YmVkJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZW1iZWQK
K1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0
ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0
ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorCitUZXN0aW5n
ICdpZnJhbWUnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBp
ZnJhbWUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0
dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZh
bHVlOiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorCitU
ZXN0aW5nICdpbWcnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBl
OiBpbWcKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0
dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZh
bHVlOiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorCitU
ZXN0aW5nICdzb3VyY2UnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0
eXBlOiBzb3VyY2UKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQor
U2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRl
bnQsIHZhbHVlOiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVu
dAorCitUZXN0aW5nICd0cmFjaycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50
IG9mIHR5cGU6IHRyYWNrCitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2Nv
cGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBj
b250ZW50LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVs
ZW1lbnQKKworVGVzdGluZyAndmlkZW8nIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxl
bWVudCBvZiB0eXBlOiB2aWRlbworU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRl
bXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0
ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRl
c3RFbGVtZW50CisKK1Rlc3RpbmcgJ2EnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxl
bWVudCBvZiB0eXBlOiBhCitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2Nv
cGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBj
b250ZW50LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVs
ZW1lbnQKKworVGVzdGluZyAnYXJlYScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVt
ZW50IG9mIHR5cGU6IGFyZWEKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1z
Y29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6
IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0
RWxlbWVudAorCitUZXN0aW5nICdsaW5rJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVs
ZW1lbnQgb2YgdHlwZTogbGluaworU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRl
bXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0
ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRl
c3RFbGVtZW50CisKK1Rlc3RpbmcgJ29iamVjdCcgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IG9iamVjdAorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1
ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0
dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVl
IGlzIHRlc3RFbGVtZW50CisKK1Rlc3RpbmcgJ2RpdicgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3Jl
YXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1
ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0
dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVl
IGlzIHRlc3RFbGVtZW50CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZh
bHVlLXJldHVybnMtZWxlbWVudC1pdHNlbGYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJldHVybnMtZWxlbWVudC1pdHNlbGYuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFs
dWUtcmV0dXJucy1lbGVtZW50LWl0c2VsZi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmV0dXJuIHRoZSBlbGVtZW50
IGl0c2VsZiBpZiB0aGUgZWxlbWVudCBoYXMgYW4gaXRlbXNjb3BlIGF0dHJpYnV0ZTwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciB0ZXN0RWxlbWVudDsKK2Z1bmN0
aW9uIHJ1blRlc3QodGFnTmFtZSkgeworICAgIGRlYnVnKCJUZXN0aW5nICciICsgdGFnTmFtZSAr
ICInIGVsZW1lbnQncyBiZWhhdmlvci4iKTsKKyAgICB0ZXN0RWxlbWVudCA9IGNyZWF0ZUVsZW1l
bnQodGFnTmFtZSwge2l0ZW1zY29wZTogJ2l0ZW1zY29wZScsIGl0ZW1wcm9wOiAnZm9vJywgY29u
dGVudDogJ3Rlc3QnfSk7CisgICAgc2hvdWxkQmUoInRlc3RFbGVtZW50Lml0ZW1WYWx1ZSIsICJ0
ZXN0RWxlbWVudCIpOworICAgIGRlYnVnKCcnKTsKK30KKworcnVuVGVzdCgnbWV0YScpOworcnVu
VGVzdCgnYXVkaW8nKTsKK3J1blRlc3QoJ2VtYmVkJyk7CitydW5UZXN0KCdpZnJhbWUnKTsKK3J1
blRlc3QoJ2ltZycpOworcnVuVGVzdCgnc291cmNlJyk7CitydW5UZXN0KCd0cmFjaycpOworcnVu
VGVzdCgndmlkZW8nKTsKK3J1blRlc3QoJ2EnKTsKK3J1blRlc3QoJ2FyZWEnKTsKK3J1blRlc3Qo
J2xpbmsnKTsKK3J1blRlc3QoJ29iamVjdCcpOworcnVuVGVzdCgnZGl2Jyk7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWwKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmV0dXJucy1udWxs
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvaXRlbXZhbHVlLXJldHVybnMtbnVsbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJldHVybnMtbnVsbC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjYgQEAKK1RoaXMgdGVzdHMgdGhhdCBp
dGVtVmFsdWUgbXVzdCBiZSBudWxsIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gaXRl
bXByb3AgYXR0cmlidXRlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBtZXRhCitTZXQgYXR0
cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorUEFTUyBjcmVhdGVFbGVtZW50KCdtZXRhJywg
e2NvbnRlbnQ6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKKworQ3JlYXRlZCBl
bGVtZW50IG9mIHR5cGU6IGF1ZGlvCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiB0ZXN0CitQ
QVNTIGNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJywge3NyYzogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51
bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZW1iZWQKK1NldCBhdHRyaWJ1
dGU6IHNyYywgdmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRlRWxlbWVudCgnZW1iZWQnLCB7c3JjOiAn
dGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0
eXBlOiBpZnJhbWUKK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRl
RWxlbWVudCgnaWZyYW1lJywge3NyYzogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1
ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaW1nCitTZXQgYXR0cmlidXRlOiBzcmMsIHZh
bHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2ltZycsIHtzcmM6ICd0ZXN0J30pLml0ZW1W
YWx1ZSA9PSBudWxsIGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHNvdXJjZQor
U2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdAorUEFTUyBjcmVhdGVFbGVtZW50KCdzb3Vy
Y2UnLCB7c3JjOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQg
ZWxlbWVudCBvZiB0eXBlOiB0cmFjaworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdAor
UEFTUyBjcmVhdGVFbGVtZW50KCd0cmFjaycsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBu
dWxsIGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHZpZGVvCitTZXQgYXR0cmli
dXRlOiBzcmMsIHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJywge3NyYzog
J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2Yg
dHlwZTogYQorU2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRlRWxl
bWVudCgnYScsIHtocmVmOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCisKK0Ny
ZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhcmVhCitTZXQgYXR0cmlidXRlOiBocmVmLCB2YWx1ZTog
dGVzdAorUEFTUyBjcmVhdGVFbGVtZW50KCdhcmVhJywge2hyZWY6ICd0ZXN0J30pLml0ZW1WYWx1
ZSA9PSBudWxsIGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGxpbmsKK1NldCBh
dHRyaWJ1dGU6IGhyZWYsIHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2xpbmsnLCB7
aHJlZjogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1l
bnQgb2YgdHlwZTogb2JqZWN0CitTZXQgYXR0cmlidXRlOiBkYXRhLCB2YWx1ZTogdGVzdAorUEFT
UyBjcmVhdGVFbGVtZW50KCdvYmplY3QnLCB7ZGF0YTogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51
bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdGltZQorUEFTUyBjcmVhdGVF
bGVtZW50KCd0aW1lJywge30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKKworQ3JlYXRlZCBl
bGVtZW50IG9mIHR5cGU6IHRpbWUKK1NldCBhdHRyaWJ1dGU6IGRhdGV0aW1lLCB2YWx1ZTogdGVz
dAorUEFTUyBjcmVhdGVFbGVtZW50KCd0aW1lJywge2RhdGV0aW1lOiAndGVzdCd9KS5pdGVtVmFs
dWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1BBU1Mg
Y3JlYXRlRWxlbWVudCgnZGl2Jywge30sICd0ZXN0JykuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1
ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogbWFkZXVwb250aGVzcG90CitQQVNTIGNyZWF0
ZUVsZW1lbnQoJ21hZGV1cG9udGhlc3BvdCcsIHt9LCAndGVzdCcpLml0ZW1WYWx1ZSA9PSBudWxs
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJldHVy
bnMtbnVsbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9pdGVtdmFsdWUtcmV0dXJucy1udWxsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJldHVybnMtbnVsbC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpdGVtVmFsdWUgbXVzdCBiZSBudWxs
IGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gaXRlbXByb3AgYXR0cmlidXRlPC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgorc2hvdWxkQmVUcnVlKCJjcmVhdGVF
bGVtZW50KCdtZXRhJywge2NvbnRlbnQ6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7Citk
ZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJywge3NyYzogJ3Rl
c3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3Jl
YXRlRWxlbWVudCgnZW1iZWQnLCB7c3JjOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOwor
ZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdpZnJhbWUnLCB7c3JjOiAn
dGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJj
cmVhdGVFbGVtZW50KCdpbWcnLCB7c3JjOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOwor
ZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdzb3VyY2UnLCB7c3JjOiAn
dGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJj
cmVhdGVFbGVtZW50KCd0cmFjaycsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7
CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJywge3NyYzog
J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgi
Y3JlYXRlRWxlbWVudCgnYScsIHtocmVmOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOwor
ZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdhcmVhJywge2hyZWY6ICd0
ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNy
ZWF0ZUVsZW1lbnQoJ2xpbmsnLCB7aHJlZjogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsK
K2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnb2JqZWN0Jywge2RhdGE6
ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUo
ImNyZWF0ZUVsZW1lbnQoJ3RpbWUnLCB7fSkuaXRlbVZhbHVlID09IG51bGwiKTsKK2RlYnVnKCcn
KTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgndGltZScsIHtkYXRldGltZTogJ3Rlc3Qn
fSkuaXRlbVZhbHVlID09IG51bGwiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRl
RWxlbWVudCgnZGl2Jywge30sICd0ZXN0JykuaXRlbVZhbHVlID09IG51bGwiKTsKK2RlYnVnKCcn
KTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnbWFkZXVwb250aGVzcG90Jywge30sICd0
ZXN0JykuaXRlbVZhbHVlID09IG51bGwiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS10aHJvd3MtZXhjcGV0aW9uLW9uc2V0dGluZy0wMDEt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9pdGVtdmFsdWUtdGhyb3dzLWV4Y3BldGlvbi1vbnNldHRpbmctMDAxLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUt
dGhyb3dzLWV4Y3BldGlvbi1vbnNldHRpbmctMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw5NyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3cml0aW5nIHRvIGl0ZW1W
YWx1ZSBtdXN0IHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBlcnJvciBpZiB0aGUgZWxlbWVu
dCBoYXMgYW4gaXRlbXNjb3BlIGF0dHJpYnV0ZS4KKworVGVzdGluZyAnbWV0YScgZWxlbWVudCdz
IGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IG1ldGEKK1NldCBhdHRyaWJ1dGU6
IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZh
bHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitURVNUIFNVQ0NF
RURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIu
CisKK1Rlc3RpbmcgJ2F1ZGlvJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQg
b2YgdHlwZTogYXVkaW8KK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29w
ZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNv
bnRlbnQsIHZhbHVlOiB0ZXN0CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNl
cHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ2VtYmVkJyBlbGVtZW50
J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZW1iZWQKK1NldCBhdHRyaWJ1
dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3As
IHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitURVNUIFNV
Q0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19F
UlIuCisKK1Rlc3RpbmcgJ2lmcmFtZScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVt
ZW50IG9mIHR5cGU6IGlmcmFtZQorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRl
bXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0
ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVk
IGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnaW1nJyBlbGVt
ZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaW1nCitTZXQgYXR0cmli
dXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9w
LCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorVEVTVCBT
VUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1Nf
RVJSLgorCitUZXN0aW5nICdzb3VyY2UnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxl
bWVudCBvZiB0eXBlOiBzb3VyY2UKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0
ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1
dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3Rl
ZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ3RyYWNrJyBl
bGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdHJhY2sKK1NldCBh
dHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRl
bXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitU
RVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FD
Q0VTU19FUlIuCisKK1Rlc3RpbmcgJ3ZpZGVvJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVk
IGVsZW1lbnQgb2YgdHlwZTogdmlkZW8KK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6
IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRy
aWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBl
Y3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ2EnIGVs
ZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhCitTZXQgYXR0cmli
dXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9w
LCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorVEVTVCBT
VUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1Nf
RVJSLgorCitUZXN0aW5nICdhcmVhJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1l
bnQgb2YgdHlwZTogYXJlYQorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNj
b3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTog
Y29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4
Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnbGluaycgZWxlbWVu
dCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGxpbmsKK1NldCBhdHRyaWJ1
dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3As
IHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitURVNUIFNV
Q0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19F
UlIuCisKK1Rlc3RpbmcgJ29iamVjdCcgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVt
ZW50IG9mIHR5cGU6IG9iamVjdAorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRl
bXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0
ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVk
IGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnZGl2JyBlbGVt
ZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmli
dXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9w
LCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorVEVTVCBT
VUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1Nf
RVJSLgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS10aHJvd3Mt
ZXhjcGV0aW9uLW9uc2V0dGluZy0wMDEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAw
MS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW12YWx1ZS10aHJvd3MtZXhjcGV0aW9uLW9uc2V0dGluZy0wMDEuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHdyaXRpbmcgdG8gaXRlbVZhbHVl
IG11c3QgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGVycm9yIGlmIHRoZSBlbGVtZW50IGhh
cyBhbiBpdGVtc2NvcGUgYXR0cmlidXRlLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KK3ZhciBleGNlcHRpb25Db2RlOworZnVuY3Rpb24gcnVuVGVzdCh0YWdOYW1lKQor
eworICAgIGRlYnVnKCJUZXN0aW5nICciICsgdGFnTmFtZSArICInIGVsZW1lbnQncyBiZWhhdmlv
ci4iKTsKKyAgICBleGNlcHRpb25Db2RlID0gdW5kZWZpbmVkOworICAgIHRlc3RFbGVtZW50ID0g
Y3JlYXRlRWxlbWVudCh0YWdOYW1lLCB7aXRlbXNjb3BlOiAnaXRlbXNjb3BlJywgaXRlbXByb3A6
ICdmb28nLCBjb250ZW50OiAndGVzdCd9KTsKKyAgICB0cnkgeworICAgICAgICB0ZXN0RWxlbWVu
dC5pdGVtVmFsdWUgPSAndGVzdCcKKyAgICB9Y2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9u
Q29kZSA9IGUuY29kZTsKKyAgICB9CisKKyAgICBpZiAoZXhjZXB0aW9uQ29kZSA9PSBET01FeGNl
cHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSKQorICAgICAgICBkZWJ1ZygiVEVTVCBTVUNDRUVERUQ6
IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgiICsgZXhjZXB0aW9uQ29kZSArICIpIElOVkFM
SURfQUNDRVNTX0VSUi48YnI+Iik7CisgICAgZWxzZQorICAgICAgICBkZWJ1ZygiVEVTVCBGQUlM
RUQ6IFNob3VsZCd2ZSB0aHJvd24gSU5WQUxJRF9BQ0NFU1NfRVJSIGJ1dCB0aHJldyAiICsgZXhj
ZXB0aW9uQ29kZSArICIuPGJyPiIpOworfQorCitydW5UZXN0KCdtZXRhJyk7CitydW5UZXN0KCdh
dWRpbycpOworcnVuVGVzdCgnZW1iZWQnKTsKK3J1blRlc3QoJ2lmcmFtZScpOworcnVuVGVzdCgn
aW1nJyk7CitydW5UZXN0KCdzb3VyY2UnKTsKK3J1blRlc3QoJ3RyYWNrJyk7CitydW5UZXN0KCd2
aWRlbycpOworcnVuVGVzdCgnYScpOworcnVuVGVzdCgnYXJlYScpOworcnVuVGVzdCgnbGluaycp
OworcnVuVGVzdCgnb2JqZWN0Jyk7CitydW5UZXN0KCdkaXYnKTsKKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS10aHJvd3MtZXhjcGV0aW9uLW9u
c2V0dGluZy0wMDItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtdGhyb3dzLWV4Y3BldGlvbi1vbnNldHRpbmctMDAyLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9pdGVtdmFsdWUtdGhyb3dzLWV4Y3BldGlvbi1vbnNldHRpbmctMDAyLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3cml0
aW5nIHRvIGl0ZW1WYWx1ZSBtdXN0IHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBlcnJvciBp
ZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFuIGl0ZW1wcm9wIGF0dHJpYnV0ZS4KKworVGVz
dGluZyAnbWV0YScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6
IG1ldGEKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0Q29udGVudAorVEVTVCBT
VUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1Nf
RVJSLgorCitUZXN0aW5nICdhdWRpbycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVt
ZW50IG9mIHR5cGU6IGF1ZGlvCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdENv
bnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElO
VkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnZW1iZWQnIGVsZW1lbnQncyBiZWhhdmlvci4K
K0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBlbWJlZAorU2V0IGF0dHJpYnV0ZTogY29udGVudCwg
dmFsdWU6IHRlc3RDb250ZW50CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNl
cHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ2lmcmFtZScgZWxlbWVu
dCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGlmcmFtZQorU2V0IGF0dHJp
YnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50CitURVNUIFNVQ0NFRURFRDogR290IHRo
ZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3Rpbmcg
J2ltZycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGltZwor
U2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50CitURVNUIFNVQ0NFRURF
RDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisK
K1Rlc3RpbmcgJ3NvdXJjZScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9m
IHR5cGU6IHNvdXJjZQorU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50
CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElE
X0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ3RyYWNrJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVh
dGVkIGVsZW1lbnQgb2YgdHlwZTogdHJhY2sKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVl
OiB0ZXN0Q29udGVudAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9u
ICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICd2aWRlbycgZWxlbWVudCdzIGJl
aGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHZpZGVvCitTZXQgYXR0cmlidXRlOiBj
b250ZW50LCB2YWx1ZTogdGVzdENvbnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVj
dGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnYScgZWxl
bWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGEKK1NldCBhdHRyaWJ1
dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0Q29udGVudAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUg
ZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICdh
cmVhJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYXJlYQor
U2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50CitURVNUIFNVQ0NFRURF
RDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisK
K1Rlc3RpbmcgJ2xpbmsnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0
eXBlOiBsaW5rCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdENvbnRlbnQKK1RF
U1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUND
RVNTX0VSUi4KKworVGVzdGluZyAnb2JqZWN0JyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVk
IGVsZW1lbnQgb2YgdHlwZTogb2JqZWN0CitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTog
dGVzdENvbnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAo
MTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnZGl2JyBlbGVtZW50J3MgYmVoYXZp
b3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBjb250ZW50
LCB2YWx1ZTogdGVzdENvbnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4
Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9pdGVtdmFsdWUtdGhyb3dzLWV4Y3BldGlvbi1vbnNldHRpbmctMDAyLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS10
aHJvd3MtZXhjcGV0aW9uLW9uc2V0dGluZy0wMDIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtdGhyb3dzLWV4Y3BldGlvbi1vbnNl
dHRpbmctMDAyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEt
Y29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3Vy
ZXMgdGhhdCB3cml0aW5nIHRvIGl0ZW1WYWx1ZSBtdXN0IHRocm93IGFuIElOVkFMSURfQUNDRVNT
X0VSUiBlcnJvciBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFuIGl0ZW1wcm9wIGF0dHJp
YnV0ZS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZXhjZXB0
aW9uQ29kZTsKK2Z1bmN0aW9uIHJ1blRlc3QodGFnTmFtZSkKK3sKKyAgICBkZWJ1ZygiVGVzdGlu
ZyAnIiArIHRhZ05hbWUgKyAiJyBlbGVtZW50J3MgYmVoYXZpb3IuIik7CisgICAgZXhjZXB0aW9u
Q29kZSA9IHVuZGVmaW5lZDsKKyAgICB0ZXN0RWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodGFnTmFt
ZSwge2NvbnRlbnQ6ICd0ZXN0Q29udGVudCd9KTsKKyAgICB0cnkgeworICAgICAgICB0ZXN0RWxl
bWVudC5pdGVtVmFsdWUgPSAndGVzdCcKKyAgICB9Y2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0
aW9uQ29kZSA9IGUuY29kZTsKKyAgICB9CisKKyAgICBpZiAoZXhjZXB0aW9uQ29kZSA9PSBET01F
eGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSKQorICAgICAgICBkZWJ1ZygiVEVTVCBTVUNDRUVE
RUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgiICsgZXhjZXB0aW9uQ29kZSArICIpIElO
VkFMSURfQUNDRVNTX0VSUi48YnI+Iik7CisgICAgZWxzZQorICAgICAgICBkZWJ1ZygiVEVTVCBG
QUlMRUQ6IFNob3VsZCd2ZSB0aHJvd24gSU5WQUxJRF9BQ0NFU1NfRVJSIGJ1dCB0aHJldyAiICsg
ZXhjZXB0aW9uQ29kZSArICIuPGJyPiIpOworfQorCitydW5UZXN0KCdtZXRhJyk7CitydW5UZXN0
KCdhdWRpbycpOworcnVuVGVzdCgnZW1iZWQnKTsKK3J1blRlc3QoJ2lmcmFtZScpOworcnVuVGVz
dCgnaW1nJyk7CitydW5UZXN0KCdzb3VyY2UnKTsKK3J1blRlc3QoJ3RyYWNrJyk7CitydW5UZXN0
KCd2aWRlbycpOworcnVuVGVzdCgnYScpOworcnVuVGVzdCgnYXJlYScpOworcnVuVGVzdCgnbGlu
aycpOworcnVuVGVzdCgnb2JqZWN0Jyk7CitydW5UZXN0KCdkaXYnKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Jlc291cmNlcy9taWNyb2RhdGEtY29tbW9u
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9yZXNvdXJj
ZXMvbWljcm9kYXRhLWNvbW1vbi5qcwkocmV2aXNpb24gOTgwMjMpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvcmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTkgKzEsMjEgQEAKIC8vIHRoaXMgZnVuY3Rpb24gY3JlYXRlcyBlbGVtZW50
IHdpdGggc3BlY2lmaWVkIHByb3BlcnR5IGFuZCBjb250ZW50cy4KLWZ1bmN0aW9uIGNyZWF0ZUVs
ZW0odHlwZSxwcm9wcyxjb250ZW50cykgeworZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0eXBlLCBw
cm9wcywgY29udGVudHMpIHsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogCi0gICAgdmFyIGVsZW0g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpOworICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCh0eXBlKTsKIAotICAgIGZvciggdmFyIGkgaW4gcHJvcHMgKSB7Ci0g
ICAgICBpZiggcHJvcHMuaGFzT3duUHJvcGVydHkoaSkgKSB7Ci0gICAgICAgIGVsZW0uc2V0QXR0
cmlidXRlKGkscHJvcHNbaV0pOworICAgIGRlYnVnKCdDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTog
JyArIHR5cGUpOworICAgIGZvciAodmFyIGkgaW4gcHJvcHMpIHsKKyAgICAgIGlmIChwcm9wcy5o
YXNPd25Qcm9wZXJ0eShpKSkgeworICAgICAgICBkZWJ1ZygnU2V0IGF0dHJpYnV0ZTogJyArIGkg
KyAnLCB2YWx1ZTogJyArIHByb3BzW2ldKTsKKyAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUo
aSxwcm9wc1tpXSk7CiAgICAgICB9CiAgICAgfQotICAgIGlmKCBjb250ZW50cyApIHsKLSAgICAg
IGVsZW0uaW5uZXJIVE1MID0gY29udGVudHM7CisgICAgaWYgKGNvbnRlbnRzKSB7CisgICAgICBl
bGVtZW50LmlubmVySFRNTCA9IGNvbnRlbnRzOwogICAgIH0KLSAgICByZXR1cm4gZWxlbTsKKyAg
ICByZXR1cm4gZWxlbWVudDsKIH0KIAogCkBAIC0yMiwyMSArMjQsMjAgQEAgZnVuY3Rpb24gcnVu
VGVzdChjb2xsZWN0aW9uLCBlbGVtZW50cywgdAogICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAotICBkb2N1
bWVudC53cml0ZSh0aXRsZSArICc6ICcpOworICBkZWJ1Zyh0aXRsZSk7CiAgIHBhc3MgPSB0cnVl
OwogCiAgIGlmIChjb2xsZWN0aW9uLmxlbmd0aCAhPSBlbGVtZW50cy5sZW5ndGgpIHsKICAgICBw
YXNzID0gZmFsc2UKLSAgICBkb2N1bWVudC53cml0ZSgnRkFJTCAtIGV4cGVjdGVkICcgKyBlbGVt
ZW50cy5sZW5ndGggKyAnIGVsZW1lbnRzIGJ1dCBnb3QgJyArIGNvbGxlY3Rpb24ubGVuZ3RoICsg
IiBlbGVtZW50cy4gIik7CisgICAgZGVidWcoJ0ZBSUwgLSBleHBlY3RlZCAnICsgZWxlbWVudHMu
bGVuZ3RoICsgJyBlbGVtZW50cyBidXQgZ290ICcgKyBjb2xsZWN0aW9uLmxlbmd0aCArICIgZWxl
bWVudHMuICIpOwogICB9CiAgIGZvcih2YXIgaSA9IDAsIG1heCA9IGNvbGxlY3Rpb24ubGVuZ3Ro
ID4gZWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMubGVuZ3RoIDogY29sbGVjdGlvbi5sZW5ndGg7
IGkgPCBtYXg7IGkrKykgewogICAgIGlmKGNvbGxlY3Rpb25baV0gIT0gZWxlbWVudHNbaV0pIHsK
ICAgICAgIHBhc3MgPSBmYWxzZQotICAgICAgZG9jdW1lbnQud3JpdGUoJ0ZBSUwgLSBleHBlY3Rl
ZCBlbGVtZW50IDogJyArIGVsZW1lbnRzW2ldLnRhZ05hbWUgKyAiIGJ1dCBnb3QgZWxlbWVudCA6
IiArIGNvbGxlY3Rpb25baV0udGFnTmFtZSk7Ci0gICAgICBkb2N1bWVudC53cml0ZSgnRkFJTCAt
IGV4cGVjdGVkIGVsZW1lbnQgd2l0aCBpZDogJyArIGVsZW1lbnRzW2ldLmlkICsgIiBidXQgZ290
IGVsZW1lbnQgd2l0aCBpZDoiICsgY29sbGVjdGlvbltpXS5pZCk7CisgICAgICBkZWJ1ZygnRkFJ
TCAtIGV4cGVjdGVkIGVsZW1lbnQgOiAnICsgZWxlbWVudHNbaV0udGFnTmFtZSArICIgYnV0IGdv
dCBlbGVtZW50IDoiICsgY29sbGVjdGlvbltpXS50YWdOYW1lKTsKKyAgICAgIGRlYnVnKCdGQUlM
IC0gZXhwZWN0ZWQgZWxlbWVudCB3aXRoIGlkOiAnICsgZWxlbWVudHNbaV0uaWQgKyAiIGJ1dCBn
b3QgZWxlbWVudCB3aXRoIGlkOiIgKyBjb2xsZWN0aW9uW2ldLmlkKTsKICAgICB9CiAgIH0KICAg
aWYgKHBhc3MpCi0gICAgZG9jdW1lbnQud3JpdGUoJ1BBU1MnKTsKLSAgZG9jdW1lbnQud3JpdGUo
Jzxicj4nKTsKKyAgICBkZWJ1ZygnVEVTVCBTVUNDRUVERUQnKTsKIH0K
</data>
<flag name="review"
          id="109774"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112173</attachid>
            <date>2011-10-24 04:25:17 -0700</date>
            <delta_ts>2011-10-24 14:54:42 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_69839_final.diff</filename>
            <type>text/plain</type>
            <size>103663</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4MjMyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTI0IEBACisyMDExLTEwLTI0ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEFkZCBpdGVtcHJv
cCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXBy
b3AtYWRkLXJlbW92ZS10b2tlbnMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW1wcm9wLWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29ycmVjdC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtbXVzdC1iZS1yZWFkLW9ubHkuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLXJlZmxlY3RlZC1i
eS1pdGVtUHJvcC1wcm9wZXJ0eS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0Rh
dGEvaXRlbXJlZi1hZGQtcmVtb3ZlLXRva2Vucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9NaWNyb0RhdGEvaXRlbXJlZi1hdHRyaWJ1dGUtcmVmbGVjdGVkLWJ5LWl0ZW1SZWYtcHJvcGVy
dHkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtZm9yLWFu
LWVsZW1lbnQtbXVzdC1iZS1jb3JyZWN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtcmVmLW11c3QtYmUtcmVhZC1vbmx5Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtZGF0YS1hdHRyLW9uLW9iamVjdC1l
bGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUt
cmVmbGVjdHMtaHJlZi1hdHRyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0
YS9pdGVtdmFsdWUtcmVmbGVjdHMtc3JjLWF0dHJpYnV0ZS1vbi1pbWctZWxlbWVudC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLXRoZS1j
b250ZW50LWF0dHItb24tbWV0YS1lbGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1hdHRyLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmV0dXJucy1lbGVtZW50LWl0c2Vs
Zi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJldHVy
bnMtbnVsbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVl
LXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMi5o
dG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRWxlbWVudDo6aXRlbVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9WOE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxFbGVtZW50OjppdGVtVmFsdWVB
Y2Nlc3NvckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxFbGVtZW50OjppdGVtVmFs
dWVBY2Nlc3NvclNldHRlcik6CisgICAgICAgICogZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNwcDoK
KyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxBbmNob3JFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxB
bmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEFyZWFFbGVtZW50OjppdGVtVmFsdWVUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICog
aHRtbC9IVE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6aXRlbVByb3ApOiBSZXR1cm5zIGVsZW1lbnQncyBpdGVtcHJvcCBjb250ZW50
IGF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRJdGVtUHJvcCk6
IFNldHMgaXRlbXByb3AgdmFsdWUgb24gY2hhbmdpbmcgZWxlbWV0J3MKKyAgICAgICAgaXRlbXBy
b3AgYXR0cmlidXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6Oml0ZW1SZWYpOiBS
ZXR1cm5zIGVsZW1lbnQncyBpdGVtcmVmIGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEVsZW1lbnQ6OnNldEl0ZW1SZWYpOiBTZXRzIGl0ZW1yZWYgdmFsdWUgb24gY2hh
bmdpbmcgZWxlbWV0J3MKKyAgICAgICAgaXRlbXJlZiBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MRWxlbWVudDo6c2V0SXRlbVZhbHVlKTogU2V0cyBlbGVtZW50J3MgaXRlbXZhbHVl
LiBJZiB0aGUgZWxlbWVudCBoYXMgbm8KKyAgICAgICAgaXRlbXByb3AgYXR0cmlidXRlIG9yIGlm
IGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUsIGl0IHRocm93cyBJTlZBTElEX0FD
Q0VTU19FUlIKKyAgICAgICAgZXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1l
bnQ6Oml0ZW1WYWx1ZSk6IFJldHVybnMgdGhlIGVsZW1lbnRzIGl0ZW12YWx1ZS4KKworICAgICAg
ICBJZiB0aGUgZWxlbWVudCBoYXMgbm8gaXRlbXByb3AgYXR0cmlidXRlIGl0IHJldHVybnMgbnVs
bC4KKyAgICAgICAgSWYgdGhlIGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUsIGl0
IHJldHVybnMgdGhlIGVsZW1lbnQgaXRzZWxmLgorICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBh
IG1ldGEgZWxlbWVudDogSXQgYWN0cyBhcyBpdCB3b3VsZCBpZiBpdCB3YXMgcmVmbGVjdGluZyB0
aGUgZWxlbWVudCdzCisgICAgICAgIGNvbnRlbnQgY29udGVudCBhdHRyaWJ1dGUuCisgICAgICAg
IElmIHRoZSBlbGVtZW50IGlzIGFuIGF1ZGlvLCBlbWJlZCwgaWZyYW1lLCBpbWcsIHNvdXJjZSwg
dHJhY2ssIG9yIHZpZGVvIGVsZW1lbnQ6IEl0IGFjdHMKKyAgICAgICAgYXMgaXQgd291bGQgaWYg
aXQgd2FzIHJlZmxlY3RpbmcgdGhlIGVsZW1lbnQncyBzcmMgY29udGVudCBhdHRyaWJ1dGUuCisg
ICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGFuIGEsIGFyZWEsIG9yIGxpbmsgZWxlbWVudDogSXQg
YWN0IGFzIGl0IHdvdWxkIGlmIGl0IHdhcyByZWZsZWN0aW5nIHRoZQorICAgICAgICBocmVmIGNv
bnRlbnQgYXR0cmlidXRlLgorICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBhbiBvYmplY3QgZWxl
bWVudDogSXQgYWN0cyBhcyAgaXQgd291bGQgaWYgaXQgd2FzIHJlZmxlY3RpbmcgdGhlIGVsZW1l
bnQncworICAgICAgICBkYXRhIGNvbnRlbnQgYXR0cmlidXRlLgorCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxl
bWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVk
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjppdGVtVmFs
dWVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OnNldEl0ZW1WYWx1
ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVs
ZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1l
bnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxMaW5rRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjppdGVtVmFsdWVUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1l
dGFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRhRWxlbWVudDo6aXRlbVZh
bHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6OnNldEl0ZW1WYWx1
ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxl
bWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVu
dDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNvdXJjZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNvdXJjZUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRN
TFNvdXJjZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6aXRlbVZhbHVlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAg
ICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL01pY3JvRGF0YUl0
ZW1WYWx1ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZhbHVl
OjpNaWNyb0RhdGFJdGVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZh
bHVlOjpjcmVhdGVGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1W
YWx1ZTo6Y3JlYXRlRnJvbU5vZGUpOgorICAgICAgICAqIGh0bWwvTWljcm9EYXRhSXRlbVZhbHVl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZhbHVlOjppc05vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbVZhbHVlOjpnZXROb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1WYWx1ZTo6Z2V0U3RyaW5nKToKKwogMjAxMS0xMC0y
MSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IEF1ZGl0cyBoYW5nIG9uIHBhZ2VzIHdpdGhvdXQgaW1nW3NyY10gZWxlbWVu
dHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04MDQsNiArODA0LDcgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvTGFiZWxzTm9kZUxpc3QuY3BwCiAgICAgaHRt
bC9MaW5rUmVsQXR0cmlidXRlLmNwcAogICAgIGh0bWwvTWVkaWFEb2N1bWVudC5jcHAKKyAgICBo
dG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAKICAgICBodG1sL01vbnRoSW5wdXRUeXBlLmNwcAog
ICAgIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAogICAgIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUu
Y3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDk4MjMyKQor
KysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAt
MTg1NCw2ICsxODU0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRG9jdW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1l
bnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVycm9yLmggXAorCVNvdXJjZS9XZWJD
b3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9N
aWNyb0RhdGFJdGVtVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2lu
ZyBjb3B5KQpAQCAtNTU1OSw2ICs1NTU5LDggQEAKICAgICAgICAgICAgICdodG1sL01lZGlhRG9j
dW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL01lZGlhRG9jdW1lbnQuaCcsCiAgICAgICAg
ICAgICAnaHRtbC9NZWRpYUVycm9yLmgnLAorICAgICAgICAgICAgJ2h0bWwvTWljcm9EYXRhSXRl
bVZhbHVlLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmNwcCcsCiAgICAgICAgICAgICAnaHRt
bC9NdXRhYmxlVGV4dFRyYWNrLmgnLAogICAgICAgICAgICAgJ2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC03NTgsNiArNzU4LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgaHRtbC9MYWJlbHNOb2RlTGlzdC5jcHAgXAogICAgIGh0bWwvTGlua1JlbEF0
dHJpYnV0ZS5jcHAgXAogICAgIGh0bWwvTWVkaWFEb2N1bWVudC5jcHAgXAorICAgIGh0bWwvTWlj
cm9EYXRhSXRlbVZhbHVlLmNwcCBcCiAgICAgaHRtbC9Nb250aElucHV0VHlwZS5jcHAgXAogICAg
IGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9QYXNzd29yZElucHV0VHlwZS5j
cHAgXApAQCAtMTgxMCw2ICsxODExLDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9MaW5rUmVs
QXR0cmlidXRlLmggXAogICAgIGh0bWwvTG9hZGFibGVUZXh0VHJhY2suaCBcCiAgICAgaHRtbC9N
ZWRpYURvY3VtZW50LmggXAorICAgIGh0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmggXAogICAgIGh0
bWwvTXV0YWJsZVRleHRUcmFjay5oIFwKICAgICBodG1sL1BsdWdpbkRvY3VtZW50LmggXAogICAg
IGh0bWwvU3RlcFJhbmdlLmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDk4MjMyKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTU3NDA2LDYgKzU3
NDA2LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGh0bWxcTWljcm9EYXRhSXRlbVZhbHVlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZmlsZWFwaVxN
ZXRhZGF0YS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiA5ODIzMikK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksMjUgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNp
bmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorc3Rh
dGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVlKQoreworICAgIGlmICghaXRl
bVZhbHVlKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1ZS0+aXNO
b2RlKCkpCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaXRlbVZhbHVl
LT5nZXROb2RlKCkpOworICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBpdGVtVmFsdWUtPmdldFN0
cmluZygpKTsKK30KKyNlbmRpZgorCiBTY29wZUNoYWluTm9kZSogSlNIVE1MRWxlbWVudDo6cHVz
aEV2ZW50SGFuZGxlclNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3Bl
KSBjb25zdAogewogICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaW1wbCgpOwpAQCAtNDgsNCAr
NjMsMjAgQEAgU2NvcGVDaGFpbk5vZGUqIEpTSFRNTEVsZW1lbnQ6OnB1c2hFdmVudAogICAgIHJl
dHVybiBzY29wZS0+cHVzaChhc09iamVjdCh0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBlbGVt
ZW50KSkpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK0pTVmFsdWUgSlNIVE1MRWxlbWVu
dDo6aXRlbVZhbHVlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBIVE1MRWxlbWVudCog
ZWxlbWVudCA9IGltcGwoKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwg
V1RGOjpnZXRQdHIoZWxlbWVudC0+aXRlbVZhbHVlKCkpKTsKK30KKwordm9pZCBKU0hUTUxFbGVt
ZW50OjpzZXRJdGVtVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAg
IEhUTUxFbGVtZW50KiBpbXAgPSBpbXBsKCk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Cisg
ICAgaW1wLT5zZXRJdGVtVmFsdWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFs
dWUpLCBlYyk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKK30KKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhIVE1MRWxlbWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiA5
ODIzMikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxFbGVtZW50
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsOCArMzMsMjYgQEAKIAogI2luY2x1ZGUg
IlY4SFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
KyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQor
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KE1pY3JvRGF0YUl0ZW1WYWx1
ZSogaXRlbVZhbHVlKQoreworICAgIGlmICghaXRlbVZhbHVlKQorICAgICAgICByZXR1cm4gdjg6
Ok51bGwoKTsKKworICAgIGlmIChpdGVtVmFsdWUtPmlzTm9kZSgpKQorICAgICAgICByZXR1cm4g
dG9WOChpdGVtVmFsdWUtPmdldE5vZGUoKSk7CisKKyAgICByZXR1cm4gdjhTdHJpbmcoaXRlbVZh
bHVlLT5nZXRTdHJpbmcoKSk7Cit9CisjZW5kaWYKKwogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRv
VjgoSFRNTEVsZW1lbnQqIGltcGwsIGJvb2wgZm9yY2VOZXdPYmplY3QpCiB7CiAgICAgaWYgKCFp
bXBsKQpAQCAtNDIsNCArNjAsMjEgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSFRNTEVs
ZW1lbnQqCiAgICAgcmV0dXJuIGNyZWF0ZVY4SFRNTFdyYXBwZXIoaW1wbCwgZm9yY2VOZXdPYmpl
Y3QpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OEhUTUxFbGVtZW50OjppdGVtVmFsdWVBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBIVE1MRWxlbWVu
dCogaW1wbCA9IFY4SFRNTEVsZW1lbnQ6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJl
dHVybiB0b1Y4T2JqZWN0KGltcGwtPml0ZW1WYWx1ZSgpLmdldCgpKTsKK30KKwordm9pZCBWOEhU
TUxFbGVtZW50OjppdGVtVmFsdWVBY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCit7CisgICAgSFRNTEVsZW1lbnQqIGltcGwgPSBWOEhUTUxFbGVtZW50Ojp0b05hdGl2
ZShpbmZvLkhvbGRlcigpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBpbXBsLT5z
ZXRJdGVtVmFsdWUodG9XZWJDb3JlU3RyaW5nKHZhbHVlKSwgZWMpOworICAgIGlmIChlYykKKyAg
ICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKK30KKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxp
c3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlz
dC5jcHAJKHJldmlzaW9uIDk4MjMyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0
ZW1MaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDEwIEBACiAjaW5jbHVkZSAi
SFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIAotdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOworCiBNaWNyb0RhdGFJdGVtTGlzdDo6TWljcm9EYXRhSXRlbUxpc3QoUGFzc1JlZlB0
cjxOb2RlPiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpCiAgICAgOiBEeW5hbWlj
Tm9kZUxpc3Qocm9vdE5vZGUpCiAgICAgLCBtX3R5cGVOYW1lcyh0eXBlTmFtZXMsIG1fcm9vdE5v
ZGUtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHJldmlzaW9uIDk4MjMyKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4Niw0ICs1
ODYsMTYgQEAgdm9pZCBoYW5kbGVMaW5rQ2xpY2soRXZlbnQqIGV2ZW50LCBEb2N1bQogICAgIGZy
YW1lLT5sb2FkZXIoKS0+dXJsU2VsZWN0ZWQoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIHRh
cmdldCwgZXZlbnQsIGZhbHNlLCBmYWxzZSwgaGlkZVJlZmVycmVyID8gTm9SZWZlcnJlciA6IFNl
bmRSZWZlcnJlcik7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxBbmNo
b3JFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0VVJMQXR0
cmlidXRlKGhyZWZBdHRyKTsKK30KKwordm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6c2V0SXRlbVZh
bHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBz
ZXRBdHRyaWJ1dGUoaHJlZkF0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAkocmV2aXNpb24gOTgyMzIpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyNSw2ICsxMjUsMTEgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgRXZlbnRUeXBlIGV2ZW50
VHlwZShFdmVudCopOwogICAgIGJvb2wgdHJlYXRMaW5rQXNMaXZlRm9yRXZlbnRUeXBlKEV2ZW50
VHlwZSkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5n
IGl0ZW1WYWx1ZVRleHQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRl
bVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisjZW5k
aWYKKwogICAgIFJlZlB0cjxFbGVtZW50PiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnRGb3JTZWxlY3Rp
b25Pbk1vdXNlRG93bjsKICAgICBib29sIG1fd2FzU2hpZnRLZXlEb3duT25Nb3VzZURvd24gOiAx
OwogICAgIHVpbnQzMl90IG1fbGlua1JlbGF0aW9ucyA6IDMxOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAkocmV2aXNpb24gOTgyMzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Niw0ICsy
NDYsMTYgQEAgU3RyaW5nIEhUTUxBcmVhRWxlbWVudDo6dGFyZ2V0KCkgY29uc3QKICAgICByZXR1
cm4gZ2V0QXR0cmlidXRlKHRhcmdldEF0dHIpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
K1N0cmluZyBIVE1MQXJlYUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJl
dHVybiBnZXRVUkxBdHRyaWJ1dGUoaHJlZkF0dHIpOworfQorCit2b2lkIEhUTUxBcmVhRWxlbWVu
dDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoaHJlZkF0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYK
KwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCShyZXZpc2lvbiA5
ODIzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU4LDcgKzU4LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRm9j
dXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZvY3VzQXBwZWFyYW5jZShi
b29sIC8qcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKi8pOwogICAgIHZpcnR1YWwgdm9pZCBzZXRG
b2N1cyhib29sKTsKLSAgICAKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBT
dHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsK
KyNlbmRpZgorCiAgICAgZW51bSBTaGFwZSB7IERlZmF1bHQsIFBvbHksIFJlY3QsIENpcmNsZSwg
VW5rbm93biB9OwogICAgIFBhdGggZ2V0UmVnaW9uKGNvbnN0IExheW91dFNpemUmKSBjb25zdDsK
ICAgICB2b2lkIGludmFsaWRhdGVDYWNoZWRSZWdpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMs
NiArMTIzLDcgQEAgaW5kZXRlcm1pbmF0ZQogaXNtYXAKIGl0ZW1pZAogaXRlbXByb3AKK2l0ZW1y
ZWYKIGl0ZW1zY29wZQogaXRlbXR5cGUKIGtleXR5cGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQAogICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0
IChDKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC01MSw2ICs1MiwxMCBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTE5Nyw2ICsyMDIs
MTAgQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQQogICAgICAgICB9
IGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiZmFsc2UiKSkKICAgICAgICAgICAg
IGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWcsIENTU1ZhbHVl
Tm9uZSk7CiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUo
KSA9PSBpdGVtcHJvcEF0dHIpIHsKKyAgICAgICAgc2V0SXRlbVByb3AoYXR0ci0+dmFsdWUoKSk7
CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gaXRlbXJlZkF0dHIpIHsKKyAgICAgICAg
c2V0SXRlbVJlZihhdHRyLT52YWx1ZSgpKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBpdGVtdHlwZUF0dHIpIHsKICAgICAgICAgaXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAj
ZW5kaWYKQEAgLTk4NCw2ICs5OTMsNzEgQEAgdm9pZCBIVE1MRWxlbWVudDo6YWRqdXN0RGlyZWN0
aW9uYWxpdHlJZgogICAgIH0KIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitQYXNzUmVmUHRy
PERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVudDo6aXRlbVByb3AoKSBjb25zdAorewor
ICAgIGlmICghbV9pdGVtUHJvcCkKKyAgICAgICAgbV9pdGVtUHJvcCA9IERPTVNldHRhYmxlVG9r
ZW5MaXN0OjpjcmVhdGUoKTsKKworICAgIHJldHVybiBtX2l0ZW1Qcm9wOworfQorCit2b2lkIEhU
TUxFbGVtZW50OjpzZXRJdGVtUHJvcChjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICgh
bV9pdGVtUHJvcCkKKyAgICAgICAgbV9pdGVtUHJvcCA9IERPTVNldHRhYmxlVG9rZW5MaXN0Ojpj
cmVhdGUoKTsKKworICAgIG1faXRlbVByb3AtPnNldFZhbHVlKHZhbHVlKTsKK30KKworUGFzc1Jl
ZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gSFRNTEVsZW1lbnQ6Oml0ZW1SZWYoKSBjb25zdAor
eworICAgIGlmICghbV9pdGVtUmVmKQorICAgICAgICBtX2l0ZW1SZWYgPSBET01TZXR0YWJsZVRv
a2VuTGlzdDo6Y3JlYXRlKCk7CisKKyAgICByZXR1cm4gbV9pdGVtUmVmOworfQorCit2b2lkIEhU
TUxFbGVtZW50OjpzZXRJdGVtUmVmKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFt
X2l0ZW1SZWYpCisgICAgICAgIG1faXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVh
dGUoKTsKKworICAgIG1faXRlbVJlZi0+c2V0VmFsdWUodmFsdWUpOworfQorCit2b2lkIEhUTUxF
bGVtZW50OjpzZXRJdGVtVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgaWYgKCFoYXNBdHRyaWJ1dGUoaXRlbXByb3BBdHRyKSB8fCBoYXNBdHRyaWJ1
dGUoaXRlbXNjb3BlQXR0cikpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXRJdGVtVmFsdWVUZXh0KHZhbHVlLCBlYyk7
Cit9CisKK1Bhc3NSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiBIVE1MRWxlbWVudDo6aXRlbVZh
bHVlKCkgY29uc3QKK3sKKyAgICBpZiAoIWhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIGlmIChoYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCisg
ICAgICAgIHJldHVybiBNaWNyb0RhdGFJdGVtVmFsdWU6OmNyZWF0ZUZyb21Ob2RlKGNvbnN0X2Nh
c3Q8SFRNTEVsZW1lbnQqIGNvbnN0Pih0aGlzKSk7CisKKyAgICByZXR1cm4gTWljcm9EYXRhSXRl
bVZhbHVlOjpjcmVhdGVGcm9tU3RyaW5nKGl0ZW1WYWx1ZVRleHQoKSk7Cit9CisKK1N0cmluZyBI
VE1MRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRleHRDb250
ZW50KHRydWUpOworfQorCit2b2lkIEhUTUxFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0
IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldFRleHRDb250ZW50
KHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWZu
ZGVmIE5ERUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNpb24gOTgy
MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDEyICsyNSwyMCBAQAogCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKIGNs
YXNzIEhUTUxDb2xsZWN0aW9uOwogY2xhc3MgSFRNTEZvcm1FbGVtZW50OwotICAgICAgICAgICAg
ICAgICAgICAgICAKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCitjbGFzcyBNaWNyb0RhdGFJdGVt
VmFsdWU7CisjZW5kaWYKKwogY2xhc3MgSFRNTEVsZW1lbnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVu
dCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwpAQCAtODEsNiArODksMTQg
QEAgcHVibGljOgogCiAgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb25hbGl0eUlmaGFzRGlyQXV0
b0F0dHJpYnV0ZShib29sJiBpc0F1dG8pIGNvbnN0OwogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
KyAgICBQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBpdGVtUmVmKCkgY29uc3Q7Cisg
ICAgUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gaXRlbVByb3AoKSBjb25zdDsKKwor
ICAgIHZvaWQgc2V0SXRlbVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBQYXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gaXRlbVZhbHVlKCkgY29uc3Q7CisjZW5k
aWYKKwogcHJvdGVjdGVkOgogICAgIEhUTUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50Kik7CiAKQEAgLTEwNyw2ICsxMjMsMTcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRlckNoaWxkQXR0cmlidXRlQ2hhbmdl
ZChFbGVtZW50KiBjaGlsZCk7CiAgICAgdm9pZCBhZGp1c3REaXJlY3Rpb25hbGl0eUlmTmVlZGVk
QWZ0ZXJDaGlsZHJlbkNoYW5nZWQoTm9kZSogYmVmb3JlQ2hhbmdlLCBpbnQgY2hpbGRDb3VudERl
bHRhKTsKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFsaXR5KE5vZGUqKiBzdHJvbmdEaXJl
Y3Rpb25hbGl0eVRleHROb2RlPSAwKSBjb25zdDsKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisg
ICAgdm9pZCBzZXRJdGVtUHJvcChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldEl0ZW1SZWYo
Y29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29u
c3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpOworCisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+
IG1faXRlbVByb3A7CisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1f
aXRlbVJlZjsKKyNlbmRpZgogfTsKIAogaW5saW5lIEhUTUxFbGVtZW50KiB0b0hUTUxFbGVtZW50
KE5vZGUqIG5vZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2aXNp
b24gOTgyMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNzAsNiArNzAsMTIgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVjdF0gRE9NU3RyaW5nIGl0
ZW1UeXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFU
QSwgUmVmbGVjdF0gRE9NU3RyaW5nIGl0ZW1JZDsKIAorICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gRE9NU2V0dGFibGVUb2tlbkxpc3QgaXRlbVJlZjsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNl
dHRhYmxlVG9rZW5MaXN0IGl0ZW1Qcm9wOworCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9TUlDUk9EQVRBLCBDdXN0b21dIGN1c3RvbSBpdGVtVmFsdWUKKyAgICAgICAg
ICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogI2lmIGRlZmluZWQo
TEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGl0bGVEaXNwbGF5U3RyaW5nOwogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDk4
MjMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjc3LDQgKzI3NywxNiBAQCB2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OmFkZFN1
YnJlc291cmNlQXR0CiAgICAgYWRkU3VicmVzb3VyY2VVUkwodXJscywgZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwoZ2V0QXR0cmlidXRlKHNyY0F0dHIpKSk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorU3RyaW5nIEhUTUxFbWJlZEVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAorewor
ICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoc3JjQXR0cik7Cit9CisKK3ZvaWQgSFRNTEVtYmVk
RWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoc3JjQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNl
bmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAkocmV2
aXNpb24gOTgyMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+JikgY29uc3Q7
CiAKICAgICB2b2lkIHBhcmFtZXRlcnNGb3JQbHVnaW4oVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFt
ZXMsIFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcyk7CisKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25D
b2RlJikgT1ZFUlJJREU7CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNCAr
MTYzLDE2IEBAIGJvb2wgSFRNTElGcmFtZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEEKICAgICBy
ZXR1cm4gYXR0ci0+bmFtZSgpID09IHNyY0F0dHI7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorU3RyaW5nIEhUTUxJRnJhbWVFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZ2V0VVJMQXR0cmlidXRlKHNyY0F0dHIpOworfQorCit2b2lkIEhUTUxJRnJhbWVF
bGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShzcmNBdHRyLCB2YWx1ZSwgZWMpOworfQorI2Vu
ZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgJKHJl
dmlzaW9uIDk4MjMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxMSBAQCBwcml2YXRlOgogICAgIAogICAgIHZp
cnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKIAorI2lmIEVOQUJM
RShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyNlbmRpZgorCiAgICAgQXRvbWljU3RyaW5nIG1f
bmFtZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cAkocmV2aXNpb24gOTgyMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDMsNCArNDAzLDE2IEBAIGJvb2wgSFRNTEltYWdl
RWxlbWVudDo6aXNTZXJ2ZXJNYXAoKSBjb24KICAgICByZXR1cm4gZG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHVzZW1hcCkpLmlzRW1wdHko
KTsKIH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJpbmcgSFRNTEltYWdlRWxlbWVudDo6
aXRlbVZhbHVlVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldFVSTEF0dHJpYnV0ZShzcmNB
dHRyKTsKK30KKwordm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0
IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShz
cmNBdHRyLCB2YWx1ZSwgZWMpOworfQorI2VuZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5oCShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNiArMTAyLDEx
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVw
KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCk7CiAKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisjZW5kaWYKKwogICAgIEhUTUxJbWFnZUxv
YWRlciBtX2ltYWdlTG9hZGVyOwogICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOwogICAgIEF0
b21pY1N0cmluZyBtX25hbWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1l
bnQuY3BwCShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ4LDQgKzQ0OCwxNiBAQCB2b2lkIEhUTUxM
aW5rRWxlbWVudDo6c2V0U2l6ZXMoY29uc3QgU3RyCiAgICAgbV9zaXplcy0+c2V0VmFsdWUodmFs
dWUpOwogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK1N0cmluZyBIVE1MTGlua0VsZW1lbnQ6
Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoaHJl
ZkF0dHIpOworfQorCit2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25z
dCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUo
aHJlZkF0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCShyZXZpc2lvbiA5ODIz
MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk0LDYgKzk0LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRQZW5kaW5nU2hlZXQo
UGVuZGluZ1NoZWV0VHlwZSk7CiAgICAgdm9pZCByZW1vdmVQZW5kaW5nU2hlZXQoKTsKIAorI2lm
IEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IEhUTUxMaW5rRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIGNy
ZWF0ZWRCeVBhcnNlcik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAkocmV2aXNpb24gOTgyMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDcwLDYgKzMwNzAsMTggQEAgQXVkaW9T
b3VyY2VQcm92aWRlciogSFRNTE1lZGlhRWxlbWVudDo6YQogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBj
b25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoc3JjQXR0cik7Cit9CisKK3ZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRBdHRyaWJ1dGUoc3JjQXR0ciwgdmFsdWUsIGVj
KTsKK30KKyNlbmRpZgorCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDk4MjMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwNSw2ICs0MDUsMTEgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCogcHJlRGlzcGF0Y2hFdmVudEhhbmRsZXIoRXZlbnQq
KTsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVl
VGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgorCiAgICAgVGltZXI8SFRNTE1lZGlhRWxl
bWVudD4gbV9sb2FkVGltZXI7CiAgICAgVGltZXI8SFRNTE1lZGlhRWxlbWVudD4gbV9hc3luY0V2
ZW50VGltZXI7CiAgICAgVGltZXI8SFRNTE1lZGlhRWxlbWVudD4gbV9wcm9ncmVzc0V2ZW50VGlt
ZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCShyZXZpc2lv
biA5ODIzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTQsNCArOTQsMTYgQEAgU3RyaW5nIEhUTUxNZXRhRWxlbWVudDo6bmFt
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShuYW1lQXR0cik7CiB9CiAKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxNZXRhRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShjb250ZW50QXR0cik7Cit9CisKK3Zv
aWQgSFRNTE1ldGFFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldEF0dHJpYnV0ZShjb250ZW50QXR0ciwgdmFs
dWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFF
bGVtZW50LmgJKHJldmlzaW9uIDk4MjMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
YUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsMTIgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKIAogICAgIHZvaWQgcHJvY2Vz
cygpOworCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFs
dWVUZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW1WYWx1ZVRl
eHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworI2VuZGlmCisKIH07
CiAKIH0gLy9uYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTQsNCArNTU0LDE2IEBAIEhUTUxG
b3JtRWxlbWVudCogSFRNTE9iamVjdEVsZW1lbnQ6OnZpcnQKICAgICByZXR1cm4gRm9ybUFzc29j
aWF0ZWRFbGVtZW50Ojpmb3JtKCk7CiB9CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5n
IEhUTUxPYmplY3RFbGVtZW50OjppdGVtVmFsdWVUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
Z2V0VVJMQXR0cmlidXRlKGRhdGFBdHRyKTsKK30KKwordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6
c2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBzZXRBdHRyaWJ1dGUoZGF0YUF0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAkocmV2aXNpb24g
OTgyMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwMiw2ICsxMDIsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbE5hbWUoKSBjb25zdDsKIAorI2lmIEVOQUJMRShN
SUNST0RBVEEpCisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyNlbmRpZgorCiAgICAgQXRvbWljU3RyaW5nIG1faWQ7
CiAgICAgU3RyaW5nIG1fY2xhc3NJZDsKICAgICBib29sIG1fZG9jTmFtZWRJdGVtIDogMTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5
ODIzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjEsNiArMTIxLDE4IEBAIGJvb2wgSFRNTFNvdXJjZUVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKEEKICAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gc3JjQXR0cjsK
IH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitTdHJpbmcgSFRNTFNvdXJjZUVsZW1lbnQ6Oml0
ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRyaWJ1dGUoc3JjQXR0
cik7Cit9CisKK3ZvaWQgSFRNTFNvdXJjZUVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3Qg
U3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0QXR0cmlidXRlKHNy
Y0F0dHIsIHZhbHVlLCBlYyk7Cit9CisjZW5kaWYKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgJKHJldmlzaW9uIDk4MjMyKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NSw2ICs1NSwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBlcnJvckV2ZW50VGltZXJGaXJlZChU
aW1lcjxIVE1MU291cmNlRWxlbWVudD4qKTsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAg
dmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBP
VkVSUklERTsKKyNlbmRpZgorCiAgICAgVGltZXI8SFRNTFNvdXJjZUVsZW1lbnQ+IG1fZXJyb3JF
dmVudFRpbWVyOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1l
bnQuY3BwCShyZXZpc2lvbiA5ODIzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNr
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw3ICsxNTAsMTkgQEAgdm9pZCBIVE1M
VHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tMb2FkaW5nQwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShsb2FkaW5nRmFpbGVkID8gZXZlbnRO
YW1lcygpLmVycm9yRXZlbnQgOiBldmVudE5hbWVzKCkubG9hZEV2ZW50LCBmYWxzZSwgZmFsc2Up
LCBlYyk7CiB9Ci0gICAgCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorU3RyaW5nIEhUTUxUcmFj
a0VsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRVUkxBdHRy
aWJ1dGUoc3JjQXR0cik7Cit9CisKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6c2V0SXRlbVZhbHVl
VGV4dChjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRB
dHRyaWJ1dGUoc3JjQXR0ciwgdmFsdWUsIGVjKTsKK30KKyNlbmRpZgorCiB9CiAKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgJKHJldmlzaW9uIDk4MjMy
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYzLDcgKzYzLDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVk
SW50b1RyZWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoKTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7Ci0gICAgCisKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisjZW5kaWYKKwogICAgIFJlZlB0cjxMb2Fk
YWJsZVRleHRUcmFjaz4gbV90cmFjazsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
TWljcm9EYXRhSXRlbVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxp
dHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2lu
Y2x1ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorCisjaW5jbHVkZSAiTm9kZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK01pY3JvRGF0YUl0ZW1WYWx1ZTo6TWljcm9EYXRhSXRlbVZhbHVl
KFN0cmluZyBzdHJpbmcpCisgICAgOiBtX3R5cGUoU1RSSU5HKQorICAgICwgbV9zdHJpbmcoc3Ry
aW5nKQoreworfQorCitNaWNyb0RhdGFJdGVtVmFsdWU6Ok1pY3JvRGF0YUl0ZW1WYWx1ZShOb2Rl
KiBub2RlKQorICAgIDogbV90eXBlKE5PREUpCisgICAgLCBtX25vZGUobm9kZSkKK3sKK30KKwor
UGFzc1JlZlB0cjxNaWNyb0RhdGFJdGVtVmFsdWU+IE1pY3JvRGF0YUl0ZW1WYWx1ZTo6Y3JlYXRl
RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1pY3JvRGF0YUl0ZW1WYWx1ZShzdHJpbmcpKTsKK30KKworUGFzc1JlZlB0cjxNaWNyb0Rh
dGFJdGVtVmFsdWU+IE1pY3JvRGF0YUl0ZW1WYWx1ZTo6Y3JlYXRlRnJvbU5vZGUoTm9kZSogbm9k
ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1pY3JvRGF0YUl0ZW1WYWx1ZShub2RlKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RB
VEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9y
b2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNaWNyb0RhdGFJdGVtVmFs
dWVfaAorI2RlZmluZSBNaWNyb0RhdGFJdGVtVmFsdWVfaAorCisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBOb2RlOworCitjbGFzcyBNaWNyb0RhdGFJdGVtVmFsdWUgOiBwdWJsaWMgUmVmQ291
bnRlZDxNaWNyb0RhdGFJdGVtVmFsdWU+IHsKK3ByaXZhdGU6CisgICAgZW51bSBUeXBlIHtTVFJJ
TkcsIE5PREV9OworCitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWljcm9EYXRhSXRl
bVZhbHVlPiBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gY3JlYXRlRnJvbU5vZGUoTm9kZSopOworCisgICAg
Ym9vbCBpc05vZGUoKSB7IHJldHVybiBtX3R5cGUgPT0gTk9ERTsgfQorICAgIE5vZGUqIGdldE5v
ZGUoKSB7IHJldHVybiBtX25vZGU7IH0KKyAgICBTdHJpbmcgZ2V0U3RyaW5nKCkgeyByZXR1cm4g
bV9zdHJpbmc7IH0KKworcHJpdmF0ZToKKyAgICBNaWNyb0RhdGFJdGVtVmFsdWUoU3RyaW5nKTsK
KyAgICBNaWNyb0RhdGFJdGVtVmFsdWUoTm9kZSopOworCisgICAgVHlwZSBtX3R5cGU7CisgICAg
U3RyaW5nIG1fc3RyaW5nOworICAgIE5vZGUqIG1fbm9kZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCisKKyNlbmRpZiAvLyBNaWNy
b0RhdGFJdGVtVmFsdWVfaAorCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5ODIzMikKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDExLTEwLTI0
ICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEFk
ZCBpdGVtcHJvcCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgzOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3QtY2FzZXMgZm9yIE1p
Y3JvZGF0YSBpdGVtcHJvcCwgaXRlbXJlZiwgaXRlbXZhbHVlIGF0dHJpYnV0ZXMuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvMDAyLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAw
My1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvMDA2LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvMDA5Lmh0
bWw6CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLWFkZC1yZW1vdmUtdG9r
ZW5zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW1wcm9wLWFkZC1yZW1vdmUtdG9rZW5zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9pdGVtcHJvcC1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtZm9y
LWFuLWVsZW1lbnQtbXVzdC1iZS1jb3JyZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1tdXN0LWJlLXJlYWQtb25seS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1tdXN0LWJlLXJlYWQt
b25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3At
cmVmbGVjdGVkLWJ5LWl0ZW1Qcm9wLXByb3BlcnR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLXJlZmxlY3RlZC1ieS1pdGVtUHJvcC1w
cm9wZXJ0eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJl
Zi1hZGQtcmVtb3ZlLXRva2Vucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtcmVmLWFkZC1yZW1vdmUtdG9rZW5zLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnkt
aXRlbVJlZi1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9pdGVtcmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVJlZi1wcm9wZXJ0
eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1mb3It
YW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJl
Y3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtbXVz
dC1iZS1yZWFkLW9ubHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9N
aWNyb0RhdGEvaXRlbXJlZi1tdXN0LWJlLXJlYWQtb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLWRhdGEtYXR0ci1vbi1vYmpl
Y3QtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3Jv
RGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtZGF0YS1hdHRyLW9uLW9iamVjdC1lbGVtZW50Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMt
aHJlZi1hdHRyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1ocmVmLWF0dHIuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmlidXRlLW9uLWlt
Zy1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmlidXRlLW9uLWltZy1lbGVtZW50Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMt
dGhlLWNvbnRlbnQtYXR0ci1vbi1tZXRhLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLXRoZS1jb250ZW50
LWF0dHItb24tbWV0YS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1hdHRyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy10aGUt
c3JjLWF0dHIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12
YWx1ZS1yZXR1cm5zLWVsZW1lbnQtaXRzZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZXR1cm5zLWVsZW1lbnQtaXRzZWxmLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmV0dXJu
cy1udWxsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRh
L2l0ZW12YWx1ZS1yZXR1cm5zLW51bGwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhL2l0ZW12YWx1ZS10aHJvd3MtZXhjcGV0aW9uLW9uc2V0dGluZy0wMDEtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRo
cm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFs
dWUtdGhyb3dzLWV4Y3BldGlvbi1vbnNldHRpbmctMDAyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL01pY3JvRGF0YS9yZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qczoKKyAgICAg
ICAgKGNyZWF0ZUVsZW1lbnQpOgorICAgICAgICAocnVuVGVzdCk6CisKIDIwMTEtMTAtMjEgIEFs
ZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBdWRpdHMgaGFuZyBvbiBwYWdlcyB3aXRob3V0IGltZ1tzcmNdIGVsZW1lbnRzCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAyLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gOTgyMzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAy
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDExIEBAIGRvY3VtZW50Lmdl
dEl0ZW1zKCkgd2l0aCBlbXB0eSBzdHJpbmcgaW4KIGRvY3VtZW50LmdldEl0ZW1zKCkgd2l0aCAn
aHR0cDovL2V4YW1wbGUuY29tL2ZvbycgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudDogUEFTUwog
ZG9jdW1lbnQuZ2V0SXRlbXMoKSB3aXRoICdodHRwOi8vZXhhbXBsZS5jb20vYmFyJyBpdGVtdHlw
ZSBpbiB0aGUgYXVyZ3VtZW50OiBQQVNTCiBkb2N1bWVudC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6
Ly9leGFtcGxlLmNvbS9mMScgaXRlbXR5cGUgaW4gdGhlIGF1cmd1bWVudDogUEFTUworQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTog
aXRlbXNjb3BlCiBOZXdseSBhcHBlbmRlZCBpdGVtIHNob3VsZCBiZSBub3RpY2VkIGluIHRoZSBO
b2RlTGlzdDogUEFTUwogUmVtb3ZpbmcgaXRlbSBzaG91bGQgYmUgbm90aWNlZCBpbiB0aGUgTm9k
ZUxpc3Q6IFBBU1MKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAyLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMi5odG1sCShyZXZp
c2lvbiA5ODIzMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDIuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5PgpAQCAtMTMsNyArMTQsNyBAQAogPGRpdiBpdGVtc2NvcGUg
aXRlbXR5cGU9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJ0aHJlZSI+CiA8ZGl2IGl0ZW1z
Y29wZSBpdGVtdHlwZT0iaHR0cDovL2V4YW1wbGUuY29tL2YxIiBpZD0iZm91ciI+PC9kaXY+CiA8
L2Rpdj4KLQorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgogdmFyIG9uZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUnKTsKIHZhciB0d28gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndHdvJyk7CkBAIC0yNiw3ICsyNyw3IEBAIHJ1blRlc3QoZG9jdW1lbnQuZ2V0SXRl
bXMoJ2h0dHA6Ly9leGFtcGwKIHJ1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFt
cGxlLmNvbS9iYXInKSwgW3R3b10sICJkb2N1bWVudC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6Ly9l
eGFtcGxlLmNvbS9iYXInIGl0ZW10eXBlIGluIHRoZSBhdXJndW1lbnQiKTsKIHJ1blRlc3QoZG9j
dW1lbnQuZ2V0SXRlbXMoJ2h0dHA6Ly9leGFtcGxlLmNvbS9mMScpLCBbZm91cl0sICJkb2N1bWVu
dC5nZXRJdGVtcygpIHdpdGggJ2h0dHA6Ly9leGFtcGxlLmNvbS9mMScgaXRlbXR5cGUgaW4gdGhl
IGF1cmd1bWVudCIpOwogCi12YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW0oJ2RpdicsIHtpdGVtc2Nv
cGU6J2l0ZW1zY29wZSd9KTsKK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0
ZW1zY29wZTonaXRlbXNjb3BlJ30pOwogCiAvLyBBcHBlbmQgbmV3bHkgY3JlYXRlZCBpdGVtIHRv
IGJvZHkKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CkBAIC0zNiw3ICszNyw4
IEBAIHJ1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZSwgdHdvLAogZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChlbGVtZW50KTsKIHJ1blRlc3QoZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29u
ZSwgdHdvLCB0aHJlZSwgZm91cl0sICJSZW1vdmluZyBpdGVtIHNob3VsZCBiZSBub3RpY2VkIGlu
IHRoZSBOb2RlTGlzdCIpOwogCi1kb2N1bWVudC53cml0ZSgiPGJyPlRFU1QgQ09NUExFVEUiKTsK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gOTgyMzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvMDAzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw1ICs1LDcgQEAgUmVt
b3ZpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZSBzaG91bGQgcmVmbAogU2V0IGl0ZW1zY29wZSBhdHRy
aWJ1dGUgc2hvdWxkIHJlZmxlY3QgaW4gdGhlIE5vZGVMaXN0OiBQQVNTCiBTZXQgZWxlbWVudC5p
dGVtU2NvcGUgdG8gZmFsc2Ugc2hvdWxkIG5vdGljZSBpbiB0aGUgTm9kZUxpc3Q6IFBBU1MKIFNl
dCBlbGVtZW50Lml0ZW1TY29wZSB0byB0cnVlIHNob3VsZCBub3RpY2UgaW4gdGhlIE5vZGVMaXN0
OiBQQVNTCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDMuaHRtbAkocmV2aXNpb24g
OTgyMzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDAzLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTIgKzEsMTQgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIDxib2R5PgogPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBsaXZlIE5vZGVM
aXN0IG11c3Qgbm90aWNlIHdoZW4gaXRlbXNjb3BlIGF0dHJpYnV0ZSBjaGFuZ2VzLjwvcD4KIDxk
aXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiBpZD0ib25lIj48
L2Rpdj4KIDxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZXhhbXBsZS5jb20vYmFyIiBp
ZD0idHdvIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIHZhciBv
bmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJyk7CiB2YXIgdHdvID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3R3bycpOwpAQCAtMjksNyArMzEsOCBAQCBydW5UZXN0KGRvY3VtZW50
LmdldEl0ZW1zKCksIFtvbmVdLCAiU2V0CiB0d28uaXRlbVNjb3BlID0gdHJ1ZTsKIHJ1blRlc3Qo
ZG9jdW1lbnQuZ2V0SXRlbXMoKSwgW29uZSwgdHdvXSwgIlNldCBlbGVtZW50Lml0ZW1TY29wZSB0
byB0cnVlIHNob3VsZCBub3RpY2UgaW4gdGhlIE5vZGVMaXN0Iik7CiAKLWRvY3VtZW50LndyaXRl
KCI8YnI+VEVTVCBDT01QTEVURSIpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5ODIzMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0zLDUgKzMsNyBAQCBUaGlzIHRlc3RzIHRoYXQgbGl2ZSBOb2RlTGlzdCBtdXN0IG5v
dGljCiBUaGlzIHRlc3QgcGFnZSBjb250YWluIHR3byBtaWNyb2RhdGEgaXRlbXM6IFBBU1MKIE5v
ZGVMaXN0IG11c3Qgbm90aWNlIG9uIHJlbW92ZSBhdHRyaWJ1dGUgaXRlbXR5cGU6IFBBU1MKIE5v
ZGVMaXN0IG11c3Qgbm90aWNlIG9uIHNldCBhdHRyaWJ1dGUgaXRlbXR5cGU6IFBBU1MKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvMDA1Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAwNS5odG1sCShyZXZpc2lvbiA5ODIzMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMyArMSwxNCBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHk+CiA8cD5UaGlzIHRlc3RzIHRoYXQgbGl2ZSBOb2RlTGlzdCBtdXN0IG5vdGljZSB3aGVu
IGl0ZW10eXBlIGNoYW5nZXMuPC9wPgogPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9l
eGFtcGxlLmNvbS9mb28iIGlkPSJvbmUiPjwvZGl2PgogPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9
Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIGlkPSJ0d28iPjwvZGl2PgotCis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiB2YXIgb25lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J29uZScpOwogdmFyIHR3byA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28nKTsKQEAgLTIy
LDcgKzIzLDggQEAgcnVuVGVzdChkb2N1bWVudC5nZXRJdGVtcygnaHR0cDovL2V4YW1wbAogb25l
LnNldEF0dHJpYnV0ZSgnaXRlbXR5cGUnLCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyk7CiBydW5U
ZXN0KGRvY3VtZW50LmdldEl0ZW1zKCdodHRwOi8vZXhhbXBsZS5jb20vZm9vJyksIFtvbmUsIHR3
b10sICJOb2RlTGlzdCBtdXN0IG5vdGljZSBvbiBzZXQgYXR0cmlidXRlIGl0ZW10eXBlIik7CiAK
LWRvY3VtZW50LndyaXRlKCI8YnI+VEVTVCBDT01QTEVURSIpOwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA5ODIzMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDYtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQCBUaGlzIHRlc3RzIHRoYXQgZG9jdW1l
bnQuZ2V0SXRlbXMgbXVzdCBsCiBUaGlzIHRlc3QgYWxzbyBlbnN1cmUgdGhhdCBkb2N1bWVudC5n
ZXRJdGVtcyBtdXN0IGlnbm9yZSBkdXBsaWNhdGVkIHRva2Vucy4KIAogUEFTUyBkb2N1bWVudC5n
ZXRJdGVtcygnIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28gaHR0cDovL2V4YW1wbGUuY29tL2JhciAn
KS5sZW5ndGggPT0gMiBpcyB0cnVlCi1QQVNTIGRvY3VtZW50LmdldEl0ZW1zKCcgaHR0cDovL2V4
YW1wbGUuY29tL2ZvbyBkYXRhOnRleHQvcGxhaW4gJykubGVuZ3RoID09IDIgaXMgdHJ1ZQotUEFT
UyBkb2N1bWVudC5nZXRJdGVtcygnIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28gZGF0YTp0ZXh0L3Bs
YWluIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28nKS5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIGRv
Y3VtZW50LmdldEl0ZW1zKCcgaHR0cDovL2V4YW1wbGUuY29tL2ZvbyAgZGF0YTp0ZXh0L3BsYWlu
ICAnKS5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmdldEl0ZW1zKCcgIGh0dHA6
Ly9leGFtcGxlLmNvbS9mb28gIGRhdGE6dGV4dC9wbGFpbiAgaHR0cDovL2V4YW1wbGUuY29tL2Zv
bycpLmxlbmd0aCA9PSAyIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhLzAw
OS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS8wMDku
aHRtbAkocmV2aXNpb24gOTgyMzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
MDA5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0IEBACis8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9p
dGVtcHJvcC1hZGQtcmVtb3ZlLXRva2Vucy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLWFkZC1yZW1vdmUtdG9rZW5zLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9pdGVtcHJvcC1hZGQtcmVtb3ZlLXRva2Vucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzEgQEAKK1RoaXMgdGVzdHMgdGhhdCBpdGVtUHJvcCBhdHRyaWJ1dGUgbXVzdCB1
cGRhdGUgY29ycmVjdGx5IHdoZW4gdG9rZW4gaGF2ZSBiZWVuIGFkZGVkIG9yIHJlbW92ZWQuCisK
K0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK2l0ZW1Qcm9wLmFkZCBtdXN0IHJlZmxlY3Qg
Y29ycmVjdGx5LgorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BB
U1MgZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygpID09ICdmb28gRk9PJyBpcyB0cnVlCitQQVNT
IGVsZW1lbnQuaXRlbVByb3BbMF0gaXMgJ2ZvbycKK1BBU1MgZWxlbWVudC5pdGVtUHJvcFsxXSBp
cyAnRk9PJworCitpdGVtUHJvcC5hZGQgbXVzdCBub3QgbWFrZSBhbnkgY2hhbmdlcyBpZiBhbiBl
eGlzdGluZyB0b2tlbiBpcyBhZGRlZC4KK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0g
MiBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSA9PSAnZm9vIEZPTycg
aXMgdHJ1ZQorCitpdGVtUHJvcC5yZW1vdmUgbXVzdCByZWZsZWN0IGNvcnJlY3RseS4KK1BBU1Mg
ZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMSBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVBy
b3AuY29udGFpbnMoJ2ZvbycpIGlzIGZhbHNlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AudG9TdHJp
bmcoKSA9PSAnRk9PJyBpcyB0cnVlCisKK2l0ZW1Qcm9wLnJlbW92ZSBtdXN0IG5vdCBtYWtlIGFu
eSBjaGFuZ2VzIGlmIGEgbm9uLWV4aXN0aW5nIHRva2VuIGlzIHJlbW92ZWQuCitQQVNTIGVsZW1l
bnQuaXRlbVByb3AubGVuZ3RoID09IDEgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmNv
bnRhaW5zKCdmb28nKSBpcyBmYWxzZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkg
PT0gJ0ZPTycgaXMgdHJ1ZQorCitpdGVtUHJvcC5sZW5ndGggbXVzdCBiZSAwIHdoZW4gYWxsIHRv
a2VucyBhcmUgcmVtb3ZlZC4KK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMCBpcyB0
cnVlCitQQVNTIGVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ2ZvbycpIGlzIGZhbHNlCitQQVNT
IGVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ0ZPTycpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLWFkZC1yZW1vdmUtdG9rZW5zLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLWFkZC1yZW1v
dmUtdG9rZW5zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbXByb3AtYWRkLXJlbW92ZS10b2tlbnMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgaXRlbVByb3AgYXR0cmlidXRlIG11c3QgdXBkYXRlIGNv
cnJlY3RseSB3aGVuIHRva2VuIGhhdmUgYmVlbiBhZGRlZCBvciByZW1vdmVkLjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVu
dCgnZGl2Jywge30pOworCitkZWJ1ZygiaXRlbVByb3AuYWRkIG11c3QgcmVmbGVjdCBjb3JyZWN0
bHkuIik7CitlbGVtZW50Lml0ZW1Qcm9wLmFkZCgnZm9vJyk7CitlbGVtZW50Lml0ZW1Qcm9wLmFk
ZCgnRk9PJyk7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDIiKTsK
K3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygpID09ICdmb28gRk9PJyIp
Oworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVByb3BbMF0iLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCJl
bGVtZW50Lml0ZW1Qcm9wWzFdIiwgIidGT08nIik7CisKK2RlYnVnKCI8YnI+aXRlbVByb3AuYWRk
IG11c3Qgbm90IG1ha2UgYW55IGNoYW5nZXMgaWYgYW4gZXhpc3RpbmcgdG9rZW4gaXMgYWRkZWQu
Iik7CitlbGVtZW50Lml0ZW1Qcm9wLmFkZCgnZm9vJyk7CitzaG91bGRCZVRydWUoImVsZW1lbnQu
aXRlbVByb3AubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcC50
b1N0cmluZygpID09ICdmb28gRk9PJyIpOworCitkZWJ1ZygiPGJyPml0ZW1Qcm9wLnJlbW92ZSBt
dXN0IHJlZmxlY3QgY29ycmVjdGx5LiIpOworZWxlbWVudC5pdGVtUHJvcC5yZW1vdmUoJ2Zvbycp
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAxIik7CitzaG91bGRC
ZUZhbHNlKCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCdmb28nKSIpCitzaG91bGRCZVRydWUo
ImVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSA9PSAnRk9PJyIpOworCitkZWJ1ZygiPGJyPml0
ZW1Qcm9wLnJlbW92ZSBtdXN0IG5vdCBtYWtlIGFueSBjaGFuZ2VzIGlmIGEgbm9uLWV4aXN0aW5n
IHRva2VuIGlzIHJlbW92ZWQuIik7CitlbGVtZW50Lml0ZW1Qcm9wLnJlbW92ZSgnZm9vJyk7Citz
aG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDEiKTsKK3Nob3VsZEJlRmFs
c2UoImVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ2ZvbycpIik7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSA9PSAnRk9PJyIpOworCitkZWJ1ZygiPGJyPml0ZW1Q
cm9wLmxlbmd0aCBtdXN0IGJlIDAgd2hlbiBhbGwgdG9rZW5zIGFyZSByZW1vdmVkLiIpOworZWxl
bWVudC5pdGVtUHJvcC5yZW1vdmUoJ0ZPTycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Q
cm9wLmxlbmd0aCA9PSAwIik7CitzaG91bGRCZUZhbHNlKCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRh
aW5zKCdmb28nKSIpOworc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5pdGVtUHJvcC5jb250YWlucygn
Rk9PJykiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9p
dGVtcHJvcC1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1mb3ItYW4t
ZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLWZvci1hbi1lbGVtZW50LW11c3Qt
YmUtY29ycmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjkgQEAKK1Ro
aXMgdGVzdCB0aGF0IHRoZSBpdGVtUHJvcCBzaG91bGQgYmUgY29ycmVjdCBmb3IgYW4gZWxlbWVu
dCB0aGF0IGhhcyBpdGVtUHJvcCBhdHRyaWJ1dGUuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBl
OiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vIGJhciBGT08gRk9vCitQ
QVNTIGVsZW1lbnQuaXRlbVByb3AubGVuZ3RoID09IDQgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0
ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbyBiYXIgRk9PIEZPbycgaXMgdHJ1ZQorUEFTUyBlbGVt
ZW50Lml0ZW1Qcm9wLml0ZW0oMCkgPT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Q
cm9wLml0ZW0oMSkgPT0gJ2JhcicgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wWzBdID09
ICdmb28nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcFsxXSA9PSAnYmFyJyBpcyB0cnVl
CitQQVNTIGVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ2JhcicpIGlzIHRydWUKKworaXRlbVBy
b3Agc2hvdWxkIHJldHVybiBjYXNlLXNlbnNpdGl2ZSBzdHJpbmdzLgorUEFTUyBlbGVtZW50Lml0
ZW1Qcm9wLml0ZW0oMikgPT0gJ0ZPTycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wWzJd
ID09ICdGT08nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5pdGVtKDMpID09ICdGT28n
IGlzIHRydWUKK0ZBSUwgZWxlbWVudC5pdGVtUHJvcFsyXSA9PSAnRk9vJyBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgorCitpdGVtUHJvcCBzaG91bGQgbm90IGNvbnRhaW4gYW4gdW5kZWZpbmVk
IHRva2VuLgorUEFTUyBlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCd0ZXN0JykgaXMgZmFsc2UK
KworaXRlbVByb3AubGVuZ3RoIHNob3VsZCBiZSAwIGlmIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFu
eSB0b2tlbnMuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBp
dGVtcHJvcCwgdmFsdWU6IAorUEFTUyBlbGVtZW50MS5pdGVtUHJvcC5sZW5ndGggPT0gMCBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLWZvci1hbi1lbGVt
ZW50LW11c3QtYmUtY29ycmVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJv
cC1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGlzIHRlc3QgdGhhdCB0aGUgaXRlbVByb3Agc2hvdWxkIGJlIGNvcnJlY3QgZm9y
IGFuIGVsZW1lbnQgdGhhdCBoYXMgaXRlbVByb3AgYXR0cmlidXRlLjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2
Jywge2l0ZW1wcm9wOiAnZm9vIGJhciBGT08gRk9vJ30pOworCitzaG91bGRCZVRydWUoImVsZW1l
bnQuaXRlbVByb3AubGVuZ3RoID09IDQiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJv
cC50b1N0cmluZygpID09ICdmb28gYmFyIEZPTyBGT28nIik7CitzaG91bGRCZVRydWUoImVsZW1l
bnQuaXRlbVByb3AuaXRlbSgwKSA9PSAnZm9vJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0
ZW1Qcm9wLml0ZW0oMSkgPT0gJ2JhciciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJv
cFswXSA9PSAnZm9vJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wWzFdID09ICdi
YXInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3AuY29udGFpbnMoJ2JhcicpIik7
CisKK2RlYnVnKCI8YnI+aXRlbVByb3Agc2hvdWxkIHJldHVybiBjYXNlLXNlbnNpdGl2ZSBzdHJp
bmdzLiIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLml0ZW0oMikgPT0gJ0ZPTyci
KTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUHJvcFsyXSA9PSAnRk9PJyIpOworc2hvdWxk
QmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wLml0ZW0oMykgPT0gJ0ZPbyciKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5pdGVtUHJvcFsyXSA9PSAnRk9vJyIpOworCitkZWJ1ZygiPGJyPml0ZW1Qcm9w
IHNob3VsZCBub3QgY29udGFpbiBhbiB1bmRlZmluZWQgdG9rZW4uIik7CitzaG91bGRCZUZhbHNl
KCJlbGVtZW50Lml0ZW1Qcm9wLmNvbnRhaW5zKCd0ZXN0JykiKTsKKworZGVidWcoIjxicj5pdGVt
UHJvcC5sZW5ndGggc2hvdWxkIGJlIDAgaWYgZWxlbWVudCBkb2Vzbid0IGhhdmUgYW55IHRva2Vu
cy4iKTsKK3ZhciBlbGVtZW50MSA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtcHJvcDogJyd9
KTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudDEuaXRlbVByb3AubGVuZ3RoID09IDAiKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1tdXN0LWJl
LXJlYWQtb25seS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL2l0ZW1wcm9wLW11c3QtYmUtcmVhZC1vbmx5LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1tdXN0
LWJlLXJlYWQtb25seS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAK
K1RoaXMgdGVzdHMgdGhhdCBpdGVtUHJvcCBhbmQgaXRlbVByb3AubGVuZ3RoIG11c3QgYmUgcmVh
ZC1vbmx5LgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBp
dGVtcHJvcCwgdmFsdWU6IGZvbworUEFTUyBlbGVtZW50Lml0ZW1Qcm9wID0gJ3Rlc3QnOyBlbGVt
ZW50Lml0ZW1Qcm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0
ZW1Qcm9wLmNvbnRhaW5zKCd0ZXN0JykgaXMgZmFsc2UKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC5s
ZW5ndGggPSAwOyBlbGVtZW50Lml0ZW1Qcm9wLmxlbmd0aCA9PSAxIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtbXVzdC1iZS1yZWFkLW9ubHkuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXByb3AtbXVz
dC1iZS1yZWFkLW9ubHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9pdGVtcHJvcC1tdXN0LWJlLXJlYWQtb25seS5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpdGVtUHJvcCBhbmQgaXRlbVByb3AubGVuZ3Ro
IG11c3QgYmUgcmVhZC1vbmx5LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1wcm9wOiAnZm9vJ30p
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1Qcm9wID0gJ3Rlc3QnOyBlbGVtZW50Lml0ZW1Q
cm9wLnRvU3RyaW5nKCkgPT0gJ2ZvbyciKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVBy
b3AuY29udGFpbnMoJ3Rlc3QnKSIpOworCitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVByb3Au
bGVuZ3RoID0gMDsgZWxlbWVudC5pdGVtUHJvcC5sZW5ndGggPT0gMSIpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLXJlZmxlY3RlZC1ieS1p
dGVtUHJvcC1wcm9wZXJ0eS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLXJlZmxlY3RlZC1ieS1pdGVtUHJvcC1wcm9wZXJ0
eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbXByb3AtcmVmbGVjdGVkLWJ5LWl0ZW1Qcm9wLXByb3BlcnR5LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0
aGUgaXRlbXByb3AgYXR0cmlidXRlIG11c3QgYmUgcmVmbGVjdGVkIGJ5IHRoZSAuaXRlbVByb3Ag
cHJvcGVydHkuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6
IGl0ZW1wcm9wLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworUEFTUyBlbGVtZW50Lml0
ZW1Qcm9wIGlzIGRlZmluZWQuCitQQVNTIGVsZW1lbnQuaXRlbVByb3AudG9TdHJpbmcoKSBpcyAn
aHR0cDovL2V4YW1wbGUuY29tL2ZvbycKK1BBU1MgZWxlbWVudC5pdGVtUHJvcC50b1N0cmluZygp
IGlzICcnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1wcm9wLXJlZmxlY3Rl
ZC1ieS1pdGVtUHJvcC1wcm9wZXJ0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9pdGVtcHJvcC1yZWZsZWN0ZWQtYnktaXRlbVByb3AtcHJvcGVydHku
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVt
cHJvcC1yZWZsZWN0ZWQtYnktaXRlbVByb3AtcHJvcGVydHkuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHRoZSBpdGVtcHJvcCBhdHRyaWJ1dGUg
bXVzdCBiZSByZWZsZWN0ZWQgYnkgdGhlIC5pdGVtUHJvcCBwcm9wZXJ0eS48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQo
J2RpdicsIHtpdGVtcHJvcDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSk7CisKK3Nob3VsZEJl
RGVmaW5lZCgiZWxlbWVudC5pdGVtUHJvcCIpOworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVByb3Au
dG9TdHJpbmcoKSIsICInaHR0cDovL2V4YW1wbGUuY29tL2ZvbyciKTsKKworZWxlbWVudC5yZW1v
dmVBdHRyaWJ1dGUoJ2l0ZW1Qcm9wJyk7CitzaG91bGRCZSgiZWxlbWVudC5pdGVtUHJvcC50b1N0
cmluZygpIiwgIicnIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbXJlZi1hZGQtcmVtb3ZlLXRva2Vucy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtYWRkLXJlbW92ZS10b2tl
bnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL2l0ZW1yZWYtYWRkLXJlbW92ZS10b2tlbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMxIEBACitUaGlzIHRlc3RzIHRoYXQgaXRlbVJlZiBhdHRyaWJ1dGUgbXVz
dCB1cGRhdGUgY29ycmVjdGx5IHdoZW4gdG9rZW4gaGF2ZSBiZWVuIGFkZGVkIG9yIHJlbW92ZWQu
CisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK2l0ZW1SZWYuYWRkIG11c3QgcmVmbGVj
dCBjb3JyZWN0bHkuCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMiBpcyB0cnVlCitQ
QVNTIGVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpIGlzICdmb28gRk9PJworUEFTUyBlbGVtZW50
Lml0ZW1SZWZbMF0gaXMgJ2ZvbycKK1BBU1MgZWxlbWVudC5pdGVtUmVmWzFdIGlzICdGT08nCisK
K2l0ZW1SZWYuYWRkIG11c3Qgbm90IG1ha2UgYW55IGNoYW5nZXMgaWYgYW4gZXhpc3RpbmcgdG9r
ZW4gaXMgYWRkZWQuCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMiBpcyB0cnVlCitQ
QVNTIGVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpIGlzICdmb28gRk9PJworCitpdGVtUmVmLnJl
bW92ZSBtdXN0IHJlZmxlY3QgY29ycmVjdGx5LgorUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3Ro
ID09IDEgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSBpcyAnRk9PJwor
UEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIGlzIGZhbHNlCisKK2l0ZW1SZWYu
cmVtb3ZlIG11c3Qgbm90IG1ha2UgYW55IGNoYW5nZXMgaWYgYSBub24tZXhpc3RpbmcgdG9rZW4g
aXMgcmVtb3ZlZC4KK1BBU1MgZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAxIGlzIHRydWUKK1BB
U1MgZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgaXMgJ0ZPTycKK1BBU1MgZWxlbWVudC5pdGVt
UmVmLmNvbnRhaW5zKCdmb28nKSBpcyBmYWxzZQorCitpdGVtUmVmLmxlbmd0aCBtdXN0IGJlIDAg
d2hlbiBhbGwgdG9rZW5zIGFyZSByZW1vdmVkLgorUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3Ro
ID09IDAgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIGlzIGZh
bHNlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnRk9PJykgaXMgZmFsc2UKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1hZGQtcmVtb3ZlLXRva2Vucy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLWFk
ZC1yZW1vdmUtdG9rZW5zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvaXRlbXJlZi1hZGQtcmVtb3ZlLXRva2Vucy5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpdGVtUmVmIGF0dHJpYnV0ZSBtdXN0IHVwZGF0
ZSBjb3JyZWN0bHkgd2hlbiB0b2tlbiBoYXZlIGJlZW4gYWRkZWQgb3IgcmVtb3ZlZC48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVs
ZW1lbnQoJ2RpdicsIHt9KTsKKworZGVidWcoIml0ZW1SZWYuYWRkIG11c3QgcmVmbGVjdCBjb3Jy
ZWN0bHkuIik7CitlbGVtZW50Lml0ZW1SZWYuYWRkKCdmb28nKTsKK2VsZW1lbnQuaXRlbVJlZi5h
ZGQoJ0ZPTycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDIiKTsK
K3Nob3VsZEJlKCJlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSIsICInZm9vIEZPTyciKTsKK3No
b3VsZEJlKCJlbGVtZW50Lml0ZW1SZWZbMF0iLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCJlbGVtZW50
Lml0ZW1SZWZbMV0iLCAiJ0ZPTyciKTsKKworZGVidWcoIjxicj5pdGVtUmVmLmFkZCBtdXN0IG5v
dCBtYWtlIGFueSBjaGFuZ2VzIGlmIGFuIGV4aXN0aW5nIHRva2VuIGlzIGFkZGVkLiIpOworZWxl
bWVudC5pdGVtUmVmLmFkZCgnZm9vJyk7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5s
ZW5ndGggPT0gMiIpOworc2hvdWxkQmUoImVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpIiwgIidm
b28gRk9PJyIpOworCitkZWJ1ZygiPGJyPml0ZW1SZWYucmVtb3ZlIG11c3QgcmVmbGVjdCBjb3Jy
ZWN0bHkuIik7CitlbGVtZW50Lml0ZW1SZWYucmVtb3ZlKCdmb28nKTsKK3Nob3VsZEJlVHJ1ZSgi
ZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAxIik7CitzaG91bGRCZSgiZWxlbWVudC5pdGVtUmVm
LnRvU3RyaW5nKCkiLCAiJ0ZPTyciKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVJlZi5j
b250YWlucygnZm9vJykiKTsKKworZGVidWcoIjxicj5pdGVtUmVmLnJlbW92ZSBtdXN0IG5vdCBt
YWtlIGFueSBjaGFuZ2VzIGlmIGEgbm9uLWV4aXN0aW5nIHRva2VuIGlzIHJlbW92ZWQuIik7Citl
bGVtZW50Lml0ZW1SZWYucmVtb3ZlKCdmb28nKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVt
UmVmLmxlbmd0aCA9PSAxIik7CitzaG91bGRCZSgiZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5nKCki
LCAiJ0ZPTyciKTsKK3Nob3VsZEJlRmFsc2UoImVsZW1lbnQuaXRlbVJlZi5jb250YWlucygnZm9v
JykiKTsKKworZGVidWcoIjxicj5pdGVtUmVmLmxlbmd0aCBtdXN0IGJlIDAgd2hlbiBhbGwgdG9r
ZW5zIGFyZSByZW1vdmVkLiIpOworZWxlbWVudC5pdGVtUmVmLnJlbW92ZSgnRk9PJyk7CitzaG91
bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5sZW5ndGggPT0gMCIpOworc2hvdWxkQmVGYWxzZSgi
ZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdmb28nKSIpOworc2hvdWxkQmVGYWxzZSgiZWxlbWVu
dC5pdGVtUmVmLmNvbnRhaW5zKCdGT08nKSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtYXR0cmlidXRlLXJlZmxlY3RlZC1ieS1pdGVtUmVm
LXByb3BlcnR5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvaXRlbXJlZi1hdHRyaWJ1dGUtcmVmbGVjdGVkLWJ5LWl0ZW1SZWYtcHJvcGVy
dHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL2l0ZW1yZWYtYXR0cmlidXRlLXJlZmxlY3RlZC1ieS1pdGVtUmVmLXByb3BlcnR5LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGVuc3Vy
ZXMgdGhhdCB0aGUgaXRlbXJlZiBhdHRyaWJ1dGUgbXVzdCBiZSByZWZsZWN0ZWQgYnkgdGhlIC5p
dGVtUmVmIHByb3BlcnR5LgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0
cmlidXRlOiBpdGVtcmVmLCB2YWx1ZTogZm9vIGJhcgorUEFTUyBlbGVtZW50Lml0ZW1SZWYgaXMg
ZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1Mg
ZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgPT0gJ2ZvbyBiYXInIGlzIHRydWUKK1BBU1MgZWxl
bWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgPT0gJycgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtcmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVJlZi1wcm9w
ZXJ0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9p
dGVtcmVmLWF0dHJpYnV0ZS1yZWZsZWN0ZWQtYnktaXRlbVJlZi1wcm9wZXJ0eS5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtYXR0cmli
dXRlLXJlZmxlY3RlZC1ieS1pdGVtUmVmLXByb3BlcnR5Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0aGUgaXRlbXJlZiBhdHRyaWJ1dGUgbXVz
dCBiZSByZWZsZWN0ZWQgYnkgdGhlIC5pdGVtUmVmIHByb3BlcnR5LjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2
Jywge2l0ZW1yZWY6ICdmb28gYmFyJ30pOworc2hvdWxkQmVEZWZpbmVkKCJlbGVtZW50Lml0ZW1S
ZWYiKTsKKworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDIiKTsKK3No
b3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgPT0gJ2ZvbyBiYXInIik7CisK
K2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdpdGVtcmVmJyk7CitzaG91bGRCZVRydWUoImVsZW1l
bnQuaXRlbVJlZi50b1N0cmluZygpID09ICcnIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJl
Y3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9pdGVtcmVmLWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1m
b3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMwIEBACitUaGlzIHRlc3QgdGhhdCB0aGUgaXRlbVJlZiBzaG91bGQgYmUgY29y
cmVjdCBmb3IgYW4gZWxlbWVudCB0aGF0IGhhcyBpdGVtUmVmIGF0dHJpYnV0ZS4KKworQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXJlZiwgdmFsdWU6IGZv
byBiYXIgRk9PIEZPbworUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDQgaXMgdHJ1ZQor
UEFTUyBlbGVtZW50Lml0ZW1SZWYudG9TdHJpbmcoKSA9PSAnZm9vIGJhciBGT08gRk9vJyBpcyB0
cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5pdGVtKDApID09ICdmb28nIGlzIHRydWUKK1BBU1Mg
ZWxlbWVudC5pdGVtUmVmLml0ZW0oMSkgPT0gJ2JhcicgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0
ZW1SZWZbMF0gPT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWZbMV0gPT0gJ2Jh
cicgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2JhcicpIGlzIHRydWUK
K1BBU1MgZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdmb28nKSBpcyB0cnVlCisKK2l0ZW1SZWYg
c2hvdWxkIHJldHVybiBjYXNlLXNlbnNpdGl2ZSBzdHJpbmdzLgorUEFTUyBlbGVtZW50Lml0ZW1S
ZWYuaXRlbSgyKSA9PSAnRk9PJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZlsyXSA9PSAn
Rk9PJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQuaXRlbVJlZi5pdGVtKDMpID09ICdGT28nIGlzIHRy
dWUKK1BBU1MgZWxlbWVudC5pdGVtUmVmWzNdID09ICdGT28nIGlzIHRydWUKKworaXRlbVJlZiBz
aG91bGQgbm90IGNvbnRhaW4gYW4gdW5kZWZpbmVkIHRva2VuLgorUEFTUyBlbGVtZW50Lml0ZW1S
ZWYuY29udGFpbnMoJ3Rlc3QnKSBpcyBmYWxzZQorCitpdGVtUmVmLmxlbmd0aCBzaG91bGQgYmUg
MCBpZiBlbGVtZW50IGhhcyBub3QgdG9rZW5zLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRp
dgorU2V0IGF0dHJpYnV0ZTogaXRlbVJlZiwgdmFsdWU6IAorUEFTUyBlbGVtZW50MS5pdGVtUmVm
Lmxlbmd0aCA9PSAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRl
bXJlZi1mb3ItYW4tZWxlbWVudC1tdXN0LWJlLWNvcnJlY3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1mb3ItYW4tZWxlbWVudC1tdXN0
LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtcmVmLWZvci1hbi1lbGVtZW50LW11c3QtYmUtY29ycmVjdC5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCB0aGF0IHRoZSBpdGVtUmVmIHNob3VsZCBi
ZSBjb3JyZWN0IGZvciBhbiBlbGVtZW50IHRoYXQgaGFzIGl0ZW1SZWYgYXR0cmlidXRlLjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRl
RWxlbWVudCgnZGl2Jywge2l0ZW1yZWY6ICdmb28gYmFyIEZPTyBGT28nfSk7CisKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmxlbmd0aCA9PSA0Iik7CitzaG91bGRCZVRydWUoImVsZW1l
bnQuaXRlbVJlZi50b1N0cmluZygpID09ICdmb28gYmFyIEZPTyBGT28nIik7CitzaG91bGRCZVRy
dWUoImVsZW1lbnQuaXRlbVJlZi5pdGVtKDApID09ICdmb28nIik7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQuaXRlbVJlZi5pdGVtKDEpID09ICdiYXInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQu
aXRlbVJlZlswXSA9PSAnZm9vJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWZbMV0g
PT0gJ2JhciciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5pdGVtUmVmLmNvbnRhaW5zKCdiYXIn
KSIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ2ZvbycpIik7CisK
K2RlYnVnKCI8YnI+aXRlbVJlZiBzaG91bGQgcmV0dXJuIGNhc2Utc2Vuc2l0aXZlIHN0cmluZ3Mu
Iik7CitzaG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZi5pdGVtKDIpID09ICdGT08nIik7Citz
aG91bGRCZVRydWUoImVsZW1lbnQuaXRlbVJlZlsyXSA9PSAnRk9PJyIpOworc2hvdWxkQmVUcnVl
KCJlbGVtZW50Lml0ZW1SZWYuaXRlbSgzKSA9PSAnRk9vJyIpOworc2hvdWxkQmVUcnVlKCJlbGVt
ZW50Lml0ZW1SZWZbM10gPT0gJ0ZPbyciKTsKKworZGVidWcoIjxicj5pdGVtUmVmIHNob3VsZCBu
b3QgY29udGFpbiBhbiB1bmRlZmluZWQgdG9rZW4uIik7CitzaG91bGRCZUZhbHNlKCJlbGVtZW50
Lml0ZW1SZWYuY29udGFpbnMoJ3Rlc3QnKSIpOworCitkZWJ1ZygiPGJyPml0ZW1SZWYubGVuZ3Ro
IHNob3VsZCBiZSAwIGlmIGVsZW1lbnQgaGFzIG5vdCB0b2tlbnMuIik7Cit2YXIgZWxlbWVudDEg
PSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbVJlZjogJyd9KTsKK3Nob3VsZEJlVHJ1ZSgiZWxl
bWVudDEuaXRlbVJlZi5sZW5ndGggPT0gMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtbXVzdC1iZS1yZWFkLW9ubHktZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLW11
c3QtYmUtcmVhZC1vbmx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLW11c3QtYmUtcmVhZC1vbmx5LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0cyB0aGF0IGl0ZW1SZWYg
YW5kIGl0ZW1SZWYubGVuZ3RoIG11c3QgYmUgcmVhZC1vbmx5LgorCitDcmVhdGVkIGVsZW1lbnQg
b2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtcmVmLCB2YWx1ZTogZm9vCitQQVNTIGVs
ZW1lbnQuaXRlbXJlZiA9ICd0ZXN0JzsgZWxlbWVudC5pdGVtUmVmLnRvU3RyaW5nKCkgPT0gJ2Zv
bycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ3Rlc3QnKSBpcyBmYWxz
ZQorUEFTUyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID0gMDsgZWxlbWVudC5pdGVtUmVmLmxlbmd0
aCA9PSAxIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1t
dXN0LWJlLXJlYWQtb25seS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9pdGVtcmVmLW11c3QtYmUtcmVhZC1vbmx5Lmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1tdXN0LWJlLXJlYWQtb25s
eS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpdGVtUmVm
IGFuZCBpdGVtUmVmLmxlbmd0aCBtdXN0IGJlIHJlYWQtb25seS48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2Rpdics
IHtpdGVtcmVmOiAnZm9vJ30pOworc2hvdWxkQmVUcnVlKCJlbGVtZW50Lml0ZW1yZWYgPSAndGVz
dCc7IGVsZW1lbnQuaXRlbVJlZi50b1N0cmluZygpID09ICdmb28nIik7CitzaG91bGRCZUZhbHNl
KCJlbGVtZW50Lml0ZW1SZWYuY29udGFpbnMoJ3Rlc3QnKSIpOworCitzaG91bGRCZVRydWUoImVs
ZW1lbnQuaXRlbVJlZi5sZW5ndGggPSAwOyBlbGVtZW50Lml0ZW1SZWYubGVuZ3RoID09IDEiKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUt
cmVmbGVjdHMtZGF0YS1hdHRyLW9uLW9iamVjdC1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3Rz
LWRhdGEtYXR0ci1vbi1vYmplY3QtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLWRhdGEt
YXR0ci1vbi1vYmplY3QtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0
aGUgZGF0YSBhdHRyaWJ1dGUgb24gb2JqZWN0IGVsZW1lbnQuCisKK0NyZWF0ZWQgZWxlbWVudCBv
ZiB0eXBlOiBvYmplY3QKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQg
YXR0cmlidXRlOiBkYXRhLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUub3JnLworUEFTUyBvYmplY3RF
bGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1Mgb2JqZWN0RWxl
bWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIG9iamVjdEVsZW1l
bnQuZGF0YSBpcyAnaHR0cDovL2V4YW1wbGUuY29tLycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLWRhdGEtYXR0ci1vbi1vYmplY3QtZWxlbWVudC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFs
dWUtcmVmbGVjdHMtZGF0YS1hdHRyLW9uLW9iamVjdC1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLWRh
dGEtYXR0ci1vbi1vYmplY3QtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgZGF0YSBh
dHRyaWJ1dGUgb24gb2JqZWN0IGVsZW1lbnQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgordmFyIG9iamVjdEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdvYmplY3QnLCB7
aXRlbXByb3A6ICdmb28nLCBkYXRhOiAnaHR0cDovL2V4YW1wbGUub3JnLyd9KTsKK3Nob3VsZEJl
KCdvYmplY3RFbGVtZW50Lml0ZW1WYWx1ZScsICInaHR0cDovL2V4YW1wbGUub3JnLyciKTsKK29i
amVjdEVsZW1lbnQuZGF0YSA9ICdodHRwOi8vZXhhbXBsZS5uZXQvJzsKK3Nob3VsZEJlKCdvYmpl
Y3RFbGVtZW50Lml0ZW1WYWx1ZScsICInaHR0cDovL2V4YW1wbGUubmV0LyciKTsKK29iamVjdEVs
ZW1lbnQuaXRlbVZhbHVlID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS8nOworc2hvdWxkQmUoJ29iamVj
dEVsZW1lbnQuZGF0YScsICInaHR0cDovL2V4YW1wbGUuY29tLyciKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1ocmVmLWF0
dHItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtaHJlZi1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMt
aHJlZi1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorVGhp
cyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBocmVmIGF0dHJp
YnV0ZSBpZiB0aGUgZWxlbWVudCBpcyBhbiBhLCBhcmVhLCBvciBsaW5rIGVsZW1lbnQuCisKK1Rl
c3RpbmcgJ2EnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBh
CitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogaHJl
ZiwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVl
IGlzICdodHRwOi8vZXhhbXBsZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMg
J2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIHRlc3RFbGVtZW50LmhyZWYgaXMgJ2h0dHA6Ly9l
eGFtcGxlLmNvbS8nCisKK1Rlc3RpbmcgJ2FyZWEnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0
ZWQgZWxlbWVudCBvZiB0eXBlOiBhcmVhCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6
IGZvbworU2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLm9yZy8KK1BB
U1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5vcmcvJworUEFTUyB0
ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIHRlc3RF
bGVtZW50LmhyZWYgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCisKK1Rlc3RpbmcgJ2xpbmsnIGVs
ZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBsaW5rCitTZXQgYXR0
cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFsdWU6
IGh0dHA6Ly9leGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRw
Oi8vZXhhbXBsZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9l
eGFtcGxlLm5ldC8nCitQQVNTIHRlc3RFbGVtZW50LmhyZWYgaXMgJ2h0dHA6Ly9leGFtcGxlLmNv
bS8nCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3Rz
LWhyZWYtYXR0ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtaHJlZi1hdHRyLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLWhyZWYtYXR0
ci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQg
aXRlbVZhbHVlIG11c3QgcmVmbGVjdCB0aGUgaHJlZiBhdHRyaWJ1dGUgaWYgdGhlIGVsZW1lbnQg
aXMgYW4gYSwgYXJlYSwgb3IgbGluayBlbGVtZW50LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK3ZhciB0ZXN0RWxlbWVudDsKK2Z1bmN0aW9uIHJ1blRlc3QodGFnTmFt
ZSkKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyAnIiArIHRhZ05hbWUgKyAiJyBlbGVtZW50J3MgYmVo
YXZpb3IuIik7CisgICAgdGVzdEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIHtpdGVt
cHJvcDogJ2ZvbycsIGhyZWY6ICdodHRwOi8vZXhhbXBsZS5vcmcvJ30pOworICAgIHNob3VsZEJl
KCJ0ZXN0RWxlbWVudC5pdGVtVmFsdWUiLCAiJ2h0dHA6Ly9leGFtcGxlLm9yZy8nIik7CisgICAg
dGVzdEVsZW1lbnQuaHJlZiA9ICdodHRwOi8vZXhhbXBsZS5uZXQvJzsKKyAgICBzaG91bGRCZSgi
dGVzdEVsZW1lbnQuaXRlbVZhbHVlIiwgIidodHRwOi8vZXhhbXBsZS5uZXQvJyIpOworICAgIHRl
c3RFbGVtZW50Lml0ZW1WYWx1ZSA9ICdodHRwOi8vZXhhbXBsZS5jb20vJzsKKyAgICBzaG91bGRC
ZSgidGVzdEVsZW1lbnQuaHJlZiIsICInaHR0cDovL2V4YW1wbGUuY29tLyciKTsKKyAgICBkZWJ1
ZygnJyk7Cit9CisKK3J1blRlc3QoJ2EnKTsKK3J1blRlc3QoJ2FyZWEnKTsKK3J1blRlc3QoJ2xp
bmsnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12
YWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmlidXRlLW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJl
ZmxlY3RzLXNyYy1hdHRyaWJ1dGUtb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0
cy1zcmMtYXR0cmlidXRlLW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCBy
ZWZsZWN0IHRoZSBzcmMgYXR0cmlidXRlIG9uIGltZyBlbGVtZW50LgorCitDcmVhdGVkIGVsZW1l
bnQgb2YgdHlwZTogaW1nCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0
IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogZ3JlZW4uanBnCitQQVNTIGltZ0VsZW1lbnQuaXRlbVZh
bHVlIGlzIGltZ0VsZW1lbnQuc3JjCitQQVNTIGltZ0VsZW1lbnQuaXRlbVZhbHVlIGlzIGltZ0Vs
ZW1lbnQuc3JjCitQQVNTIGltZ0VsZW1lbnQuc3JjIGlzIGltZ0VsZW1lbnQuaXRlbVZhbHVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1zcmMtYXR0
cmlidXRlLW9uLWltZy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy1zcmMtYXR0cmlidXRlLW9uLWltZy1l
bGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvaXRlbXZhbHVlLXJlZmxlY3RzLXNyYy1hdHRyaWJ1dGUtb24taW1nLWVsZW1lbnQuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1
ZSBtdXN0IHJlZmxlY3QgdGhlIHNyYyBhdHRyaWJ1dGUgb24gaW1nIGVsZW1lbnQuPC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGltZ0VsZW1lbnQgPSBjcmVhdGVF
bGVtZW50KCdpbWcnLCB7aXRlbXByb3A6ICdmb28nLCBzcmM6ICdncmVlbi5qcGcnfSk7CitzaG91
bGRCZSgnaW1nRWxlbWVudC5pdGVtVmFsdWUnLCAnaW1nRWxlbWVudC5zcmMnKTsKK2ltZ0VsZW1l
bnQuc3JjID0gJ3JlZC5qcGcnOworc2hvdWxkQmUoJ2ltZ0VsZW1lbnQuaXRlbVZhbHVlJywgImlt
Z0VsZW1lbnQuc3JjIik7CitpbWdFbGVtZW50Lml0ZW1WYWx1ZSA9ICdibHVlLmpwZWcnOworc2hv
dWxkQmUoJ2ltZ0VsZW1lbnQuc3JjJywgImltZ0VsZW1lbnQuaXRlbVZhbHVlIik7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWwK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMt
dGhlLWNvbnRlbnQtYXR0ci1vbi1tZXRhLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhl
LWNvbnRlbnQtYXR0ci1vbi1tZXRhLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy10aGUt
Y29udGVudC1hdHRyLW9uLW1ldGEtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3QgcmVm
bGVjdCB0aGUgY29udGVudCBhdHRyaWJ1dGUgb24gbWV0YSBlbGVtZW50LgorCitDcmVhdGVkIGVs
ZW1lbnQgb2YgdHlwZTogbWV0YQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28K
K1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitQQVNTIG1ldGFFbGVtZW50Lml0
ZW1WYWx1ZSBpcyAndGVzdCcKK1BBU1MgbWV0YUVsZW1lbnQuaXRlbVZhbHVlIGlzICdyZXRlc3Qn
CitQQVNTIG1ldGFFbGVtZW50LmNvbnRlbnQgaXMgJ2JhcicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJlZmxlY3RzLXRoZS1jb250ZW50LWF0dHItb24tbWV0YS1l
bGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L2l0ZW12YWx1ZS1yZWZsZWN0cy10aGUtY29udGVudC1hdHRyLW9uLW1ldGEtZWxlbWVudC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1
ZS1yZWZsZWN0cy10aGUtY29udGVudC1hdHRyLW9uLW1ldGEtZWxlbWVudC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaXRlbVZhbHVlIG11c3Qg
cmVmbGVjdCB0aGUgY29udGVudCBhdHRyaWJ1dGUgb24gbWV0YSBlbGVtZW50LjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBtZXRhRWxlbWVudCA9IGNyZWF0ZUVs
ZW1lbnQoJ21ldGEnLCB7aXRlbXByb3A6ICdmb28nLGNvbnRlbnQ6ICd0ZXN0J30pOworc2hvdWxk
QmUoJ21ldGFFbGVtZW50Lml0ZW1WYWx1ZScsICIndGVzdCciKTsKK21ldGFFbGVtZW50LmNvbnRl
bnQgPSAncmV0ZXN0JzsKK3Nob3VsZEJlKCdtZXRhRWxlbWVudC5pdGVtVmFsdWUnLCAiJ3JldGVz
dCciKTsKK21ldGFFbGVtZW50Lml0ZW1WYWx1ZSA9ICdiYXInOworc2hvdWxkQmUoJ21ldGFFbGVt
ZW50LmNvbnRlbnQnLCAiJ2JhciciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZWZsZWN0cy10aGUtc3JjLWF0dHItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUt
cmVmbGVjdHMtdGhlLXNyYy1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1hdHRy
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorVGhpcyB0ZXN0IGVu
c3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZWZsZWN0IHRoZSBzcmMgYXR0cmlidXRlIGlmIHRo
ZSBlbGVtZW50IGlzIGFuIGF1ZGlvLCBlbWJlZCwgaWZyYW1lLCBzb3VyY2UsIHRyYWNrLCBvciB2
aWRlbyBlbGVtZW50LgorCitUZXN0aW5nICdhdWRpbycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3Jl
YXRlZCBlbGVtZW50IG9mIHR5cGU6IGF1ZGlvCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFs
dWU6IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUub3JnLwor
UEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNT
IHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUubmV0LycKK1BBU1MgdGVz
dEVsZW1lbnQuc3JjIGlzICdodHRwOi8vZXhhbXBsZS5jb20vJworCitUZXN0aW5nICdlbWJlZCcg
ZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGVtYmVkCitTZXQg
YXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1
ZTogaHR0cDovL2V4YW1wbGUub3JnLworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0
dHA6Ly9leGFtcGxlLm9yZy8nCitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDov
L2V4YW1wbGUubmV0LycKK1BBU1MgdGVzdEVsZW1lbnQuc3JjIGlzICdodHRwOi8vZXhhbXBsZS5j
b20vJworCitUZXN0aW5nICdpZnJhbWUnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxl
bWVudCBvZiB0eXBlOiBpZnJhbWUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9v
CitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5vcmcvCitQQVNTIHRl
c3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyAnaHR0cDovL2V4YW1wbGUub3JnLycKK1BBU1MgdGVzdEVs
ZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5uZXQvJworUEFTUyB0ZXN0RWxlbWVu
dC5zcmMgaXMgJ2h0dHA6Ly9leGFtcGxlLmNvbS8nCisKK1Rlc3RpbmcgJ3NvdXJjZScgZWxlbWVu
dCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHNvdXJjZQorU2V0IGF0dHJp
YnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IGh0
dHA6Ly9leGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8v
ZXhhbXBsZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFt
cGxlLm5ldC8nCitQQVNTIHRlc3RFbGVtZW50LnNyYyBpcyAnaHR0cDovL2V4YW1wbGUuY29tLycK
KworVGVzdGluZyAndHJhY2snIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBv
ZiB0eXBlOiB0cmFjaworU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBh
dHRyaWJ1dGU6IHNyYywgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1l
bnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5vcmcvJworUEFTUyB0ZXN0RWxlbWVudC5p
dGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8nCitQQVNTIHRlc3RFbGVtZW50LnNyYyBp
cyAnaHR0cDovL2V4YW1wbGUuY29tLycKKworVGVzdGluZyAndmlkZW8nIGVsZW1lbnQncyBiZWhh
dmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiB2aWRlbworU2V0IGF0dHJpYnV0ZTogaXRl
bXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IGh0dHA6Ly9leGFt
cGxlLm9yZy8KK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzICdodHRwOi8vZXhhbXBsZS5v
cmcvJworUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgJ2h0dHA6Ly9leGFtcGxlLm5ldC8n
CitQQVNTIHRlc3RFbGVtZW50LnNyYyBpcyAnaHR0cDovL2V4YW1wbGUuY29tLycKKworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1hdHRy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12
YWx1ZS1yZWZsZWN0cy10aGUtc3JjLWF0dHIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmVmbGVjdHMtdGhlLXNyYy1hdHRyLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVt
VmFsdWUgbXVzdCByZWZsZWN0IHRoZSBzcmMgYXR0cmlidXRlIGlmIHRoZSBlbGVtZW50IGlzIGFu
IGF1ZGlvLCBlbWJlZCwgaWZyYW1lLCBzb3VyY2UsIHRyYWNrLCBvciB2aWRlbyBlbGVtZW50Ljwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciB0ZXN0RWxlbWVudDsK
K2Z1bmN0aW9uIHJ1blRlc3QodGFnTmFtZSkKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyAnIiArIHRh
Z05hbWUgKyAiJyBlbGVtZW50J3MgYmVoYXZpb3IuIik7CisgICAgdGVzdEVsZW1lbnQgPSBjcmVh
dGVFbGVtZW50KHRhZ05hbWUsIHtpdGVtcHJvcDogJ2ZvbycsIHNyYzogJ2h0dHA6Ly9leGFtcGxl
Lm9yZy8nfSk7CisgICAgc2hvdWxkQmUoInRlc3RFbGVtZW50Lml0ZW1WYWx1ZSIsICInaHR0cDov
L2V4YW1wbGUub3JnLyciKTsKKyAgICB0ZXN0RWxlbWVudC5zcmMgPSAnaHR0cDovL2V4YW1wbGUu
bmV0Lyc7CisgICAgc2hvdWxkQmUoInRlc3RFbGVtZW50Lml0ZW1WYWx1ZSIsICInaHR0cDovL2V4
YW1wbGUubmV0LyciKTsKKyAgICB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgPSAnaHR0cDovL2V4YW1w
bGUuY29tLyc7CisgICAgc2hvdWxkQmUoInRlc3RFbGVtZW50LnNyYyIsICInaHR0cDovL2V4YW1w
bGUuY29tLyciKTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK3J1blRlc3QoJ2F1ZGlvJyk7CitydW5U
ZXN0KCdlbWJlZCcpOworcnVuVGVzdCgnaWZyYW1lJyk7CitydW5UZXN0KCdzb3VyY2UnKTsKK3J1
blRlc3QoJ3RyYWNrJyk7CitydW5UZXN0KCd2aWRlbycpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJldHVybnMtZWxlbWVudC1pdHNlbGYt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9pdGVtdmFsdWUtcmV0dXJucy1lbGVtZW50LWl0c2VsZi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXJldHVybnMt
ZWxlbWVudC1pdHNlbGYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk3IEBA
CitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IHJldHVybiB0aGUgZWxlbWVu
dCBpdHNlbGYgaWYgdGhlIGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUKKworVGVz
dGluZyAnbWV0YScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6
IG1ldGEKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0
dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZh
bHVlOiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSBpcyB0ZXN0RWxlbWVudAorCitU
ZXN0aW5nICdhdWRpbycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5
cGU6IGF1ZGlvCitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1Nl
dCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50
LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxlbWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQK
KworVGVzdGluZyAnZW1iZWQnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBv
ZiB0eXBlOiBlbWJlZAorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3Bl
CitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29u
dGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRlc3RFbGVt
ZW50CisKK1Rlc3RpbmcgJ2lmcmFtZScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVt
ZW50IG9mIHR5cGU6IGlmcmFtZQorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRl
bXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0
ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRl
c3RFbGVtZW50CisKK1Rlc3RpbmcgJ2ltZycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBl
bGVtZW50IG9mIHR5cGU6IGltZworU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRl
bXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0
ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVlIGlzIHRl
c3RFbGVtZW50CisKK1Rlc3RpbmcgJ3NvdXJjZScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IHNvdXJjZQorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1
ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0
dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRlbVZhbHVl
IGlzIHRlc3RFbGVtZW50CisKK1Rlc3RpbmcgJ3RyYWNrJyBlbGVtZW50J3MgYmVoYXZpb3IuCitD
cmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdHJhY2sKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwg
dmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1Nl
dCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1W
YWx1ZSBpcyB0ZXN0RWxlbWVudAorCitUZXN0aW5nICd2aWRlbycgZWxlbWVudCdzIGJlaGF2aW9y
LgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHZpZGVvCitTZXQgYXR0cmlidXRlOiBpdGVtc2Nv
cGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9v
CitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxlbWVudC5p
dGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKKworVGVzdGluZyAnYScgZWxlbWVudCdzIGJlaGF2aW9y
LgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGEKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwg
dmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1Nl
dCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitQQVNTIHRlc3RFbGVtZW50Lml0ZW1W
YWx1ZSBpcyB0ZXN0RWxlbWVudAorCitUZXN0aW5nICdhcmVhJyBlbGVtZW50J3MgYmVoYXZpb3Iu
CitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYXJlYQorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3Bl
LCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbwor
U2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1BBU1MgdGVzdEVsZW1lbnQuaXRl
bVZhbHVlIGlzIHRlc3RFbGVtZW50CisKK1Rlc3RpbmcgJ2xpbmsnIGVsZW1lbnQncyBiZWhhdmlv
ci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBsaW5rCitTZXQgYXR0cmlidXRlOiBpdGVtc2Nv
cGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9v
CitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxlbWVudC5p
dGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKKworVGVzdGluZyAnb2JqZWN0JyBlbGVtZW50J3MgYmVo
YXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogb2JqZWN0CitTZXQgYXR0cmlidXRlOiBp
dGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1
ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxl
bWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKKworVGVzdGluZyAnZGl2JyBlbGVtZW50J3Mg
YmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBp
dGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1
ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorUEFTUyB0ZXN0RWxl
bWVudC5pdGVtVmFsdWUgaXMgdGVzdEVsZW1lbnQKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9pdGVtdmFsdWUtcmV0dXJucy1lbGVtZW50LWl0c2VsZi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmV0dXJucy1lbGVt
ZW50LWl0c2VsZi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL2l0ZW12YWx1ZS1yZXR1cm5zLWVsZW1lbnQtaXRzZWxmLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtVmFsdWUgbXVzdCByZXR1
cm4gdGhlIGVsZW1lbnQgaXRzZWxmIGlmIHRoZSBlbGVtZW50IGhhcyBhbiBpdGVtc2NvcGUgYXR0
cmlidXRlPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHRlc3RF
bGVtZW50OworZnVuY3Rpb24gcnVuVGVzdCh0YWdOYW1lKSB7CisgICAgZGVidWcoIlRlc3Rpbmcg
JyIgKyB0YWdOYW1lICsgIicgZWxlbWVudCdzIGJlaGF2aW9yLiIpOworICAgIHRlc3RFbGVtZW50
ID0gY3JlYXRlRWxlbWVudCh0YWdOYW1lLCB7aXRlbXNjb3BlOiAnaXRlbXNjb3BlJywgaXRlbXBy
b3A6ICdmb28nLCBjb250ZW50OiAndGVzdCd9KTsKKyAgICBzaG91bGRCZSgidGVzdEVsZW1lbnQu
aXRlbVZhbHVlIiwgInRlc3RFbGVtZW50Iik7CisgICAgZGVidWcoJycpOworfQorCitydW5UZXN0
KCdtZXRhJyk7CitydW5UZXN0KCdhdWRpbycpOworcnVuVGVzdCgnZW1iZWQnKTsKK3J1blRlc3Qo
J2lmcmFtZScpOworcnVuVGVzdCgnaW1nJyk7CitydW5UZXN0KCdzb3VyY2UnKTsKK3J1blRlc3Qo
J3RyYWNrJyk7CitydW5UZXN0KCd2aWRlbycpOworcnVuVGVzdCgnYScpOworcnVuVGVzdCgnYXJl
YScpOworcnVuVGVzdCgnbGluaycpOworcnVuVGVzdCgnb2JqZWN0Jyk7CitydW5UZXN0KCdkaXYn
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW12YWx1
ZS1yZXR1cm5zLW51bGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmV0dXJucy1udWxsLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmV0
dXJucy1udWxsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NiBAQAorVGhp
cyB0ZXN0cyB0aGF0IGl0ZW1WYWx1ZSBtdXN0IGJlIG51bGwgaWYgdGhlIGVsZW1lbnQgZG9lcyBu
b3QgaGF2ZSBhbiBpdGVtcHJvcCBhdHRyaWJ1dGUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6
IG1ldGEKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVs
ZW1lbnQoJ21ldGEnLCB7Y29udGVudDogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1
ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYXVkaW8KK1NldCBhdHRyaWJ1dGU6IHNyYywg
dmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRlRWxlbWVudCgnYXVkaW8nLCB7c3JjOiAndGVzdCd9KS5p
dGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBlbWJl
ZAorU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdAorUEFTUyBjcmVhdGVFbGVtZW50KCdl
bWJlZCcsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKKworQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGlmcmFtZQorU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVz
dAorUEFTUyBjcmVhdGVFbGVtZW50KCdpZnJhbWUnLCB7c3JjOiAndGVzdCd9KS5pdGVtVmFsdWUg
PT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBpbWcKK1NldCBhdHRy
aWJ1dGU6IHNyYywgdmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRlRWxlbWVudCgnaW1nJywge3NyYzog
J3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2Yg
dHlwZTogc291cmNlCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0
ZUVsZW1lbnQoJ3NvdXJjZScsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRy
dWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHRyYWNrCitTZXQgYXR0cmlidXRlOiBzcmMs
IHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3RyYWNrJywge3NyYzogJ3Rlc3QnfSku
aXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdmlk
ZW8KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRlRWxlbWVudCgn
dmlkZW8nLCB7c3JjOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0
ZWQgZWxlbWVudCBvZiB0eXBlOiBhCitTZXQgYXR0cmlidXRlOiBocmVmLCB2YWx1ZTogdGVzdAor
UEFTUyBjcmVhdGVFbGVtZW50KCdhJywge2hyZWY6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxs
IGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGFyZWEKK1NldCBhdHRyaWJ1dGU6
IGhyZWYsIHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2FyZWEnLCB7aHJlZjogJ3Rl
c3QnfSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlw
ZTogbGluaworU2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFsdWU6IHRlc3QKK1BBU1MgY3JlYXRlRWxl
bWVudCgnbGluaycsIHtocmVmOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCisK
K0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBvYmplY3QKK1NldCBhdHRyaWJ1dGU6IGRhdGEsIHZh
bHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ29iamVjdCcsIHtkYXRhOiAndGVzdCd9KS5p
dGVtVmFsdWUgPT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiB0aW1l
CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3RpbWUnLCB7fSkuaXRlbVZhbHVlID09IG51bGwgaXMgdHJ1
ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdGltZQorU2V0IGF0dHJpYnV0ZTogZGF0ZXRp
bWUsIHZhbHVlOiB0ZXN0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3RpbWUnLCB7ZGF0ZXRpbWU6ICd0
ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5
cGU6IGRpdgorUEFTUyBjcmVhdGVFbGVtZW50KCdkaXYnLCB7fSwgJ3Rlc3QnKS5pdGVtVmFsdWUg
PT0gbnVsbCBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBtYWRldXBvbnRoZXNw
b3QKK1BBU1MgY3JlYXRlRWxlbWVudCgnbWFkZXVwb250aGVzcG90Jywge30sICd0ZXN0JykuaXRl
bVZhbHVlID09IG51bGwgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9p
dGVtdmFsdWUtcmV0dXJucy1udWxsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS1yZXR1cm5zLW51bGwuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtcmV0dXJucy1udWxs
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGl0ZW1WYWx1
ZSBtdXN0IGJlIG51bGwgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBpdGVtcHJvcCBh
dHRyaWJ1dGU8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitzaG91bGRC
ZVRydWUoImNyZWF0ZUVsZW1lbnQoJ21ldGEnLCB7Y29udGVudDogJ3Rlc3QnfSkuaXRlbVZhbHVl
ID09IG51bGwiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnYXVk
aW8nLCB7c3JjOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWcoJycpOworc2hv
dWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdlbWJlZCcsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1
ZSA9PSBudWxsIik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2lm
cmFtZScsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitkZWJ1ZygnJyk7Citz
aG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2ltZycsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1
ZSA9PSBudWxsIik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ3Nv
dXJjZScsIHtzcmM6ICd0ZXN0J30pLml0ZW1WYWx1ZSA9PSBudWxsIik7CitkZWJ1ZygnJyk7Citz
aG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ3RyYWNrJywge3NyYzogJ3Rlc3QnfSkuaXRlbVZh
bHVlID09IG51bGwiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgn
dmlkZW8nLCB7c3JjOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWcoJycpOwor
c2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdhJywge2hyZWY6ICd0ZXN0J30pLml0ZW1WYWx1
ZSA9PSBudWxsIik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2Fy
ZWEnLCB7aHJlZjogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK2RlYnVnKCcnKTsKK3No
b3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnbGluaycsIHtocmVmOiAndGVzdCd9KS5pdGVtVmFs
dWUgPT0gbnVsbCIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdv
YmplY3QnLCB7ZGF0YTogJ3Rlc3QnfSkuaXRlbVZhbHVlID09IG51bGwiKTsKK2RlYnVnKCcnKTsK
K3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgndGltZScsIHt9KS5pdGVtVmFsdWUgPT0gbnVs
bCIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCd0aW1lJywge2Rh
dGV0aW1lOiAndGVzdCd9KS5pdGVtVmFsdWUgPT0gbnVsbCIpOworZGVidWcoJycpOworc2hvdWxk
QmVUcnVlKCJjcmVhdGVFbGVtZW50KCdkaXYnLCB7fSwgJ3Rlc3QnKS5pdGVtVmFsdWUgPT0gbnVs
bCIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdtYWRldXBvbnRo
ZXNwb3QnLCB7fSwgJ3Rlc3QnKS5pdGVtVmFsdWUgPT0gbnVsbCIpOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRocm93cy1leGNwZXRpb24t
b25zZXR0aW5nLTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL2l0ZW12YWx1ZS10aHJvd3MtZXhjcGV0aW9uLW9uc2V0dGluZy0wMDEt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL2l0ZW12YWx1ZS10aHJvd3MtZXhjcGV0aW9uLW9uc2V0dGluZy0wMDEtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk3IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHdy
aXRpbmcgdG8gaXRlbVZhbHVlIG11c3QgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGVycm9y
IGlmIHRoZSBlbGVtZW50IGhhcyBhbiBpdGVtc2NvcGUgYXR0cmlidXRlLgorCitUZXN0aW5nICdt
ZXRhJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogbWV0YQor
U2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRl
OiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRl
c3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFM
SURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnYXVkaW8nIGVsZW1lbnQncyBiZWhhdmlvci4KK0Ny
ZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhdWRpbworU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2
YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0
IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhl
IGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAn
ZW1iZWQnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBlbWJl
ZAorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmli
dXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6
IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElO
VkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnaWZyYW1lJyBlbGVtZW50J3MgYmVoYXZpb3Iu
CitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaWZyYW1lCitTZXQgYXR0cmlidXRlOiBpdGVtc2Nv
cGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9v
CitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorVEVTVCBTVUNDRUVERUQ6IEdv
dCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0
aW5nICdpbWcnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBp
bWcKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJp
YnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVl
OiB0ZXN0CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJ
TlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ3NvdXJjZScgZWxlbWVudCdzIGJlaGF2aW9y
LgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHNvdXJjZQorU2V0IGF0dHJpYnV0ZTogaXRlbXNj
b3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZv
bworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBH
b3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVz
dGluZyAndHJhY2snIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBl
OiB0cmFjaworU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQg
YXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwg
dmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAo
MTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAndmlkZW8nIGVsZW1lbnQncyBiZWhh
dmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiB2aWRlbworU2V0IGF0dHJpYnV0ZTogaXRl
bXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6
IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK1RFU1QgU1VDQ0VFREVE
OiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKwor
VGVzdGluZyAnYScgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6
IGEKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJp
YnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVl
OiB0ZXN0CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJ
TlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ2FyZWEnIGVsZW1lbnQncyBiZWhhdmlvci4K
K0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhcmVhCitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUs
IHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitT
ZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0
aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0aW5n
ICdsaW5rJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogbGlu
aworU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitTZXQgYXR0cmli
dXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6
IHRlc3QKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElO
VkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnb2JqZWN0JyBlbGVtZW50J3MgYmVoYXZpb3Iu
CitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogb2JqZWN0CitTZXQgYXR0cmlidXRlOiBpdGVtc2Nv
cGUsIHZhbHVlOiBpdGVtc2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9v
CitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorVEVTVCBTVUNDRUVERUQ6IEdv
dCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0
aW5nICdkaXYnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBk
aXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJp
YnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVl
OiB0ZXN0CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJ
TlZBTElEX0FDQ0VTU19FUlIuCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRl
bXZhbHVlLXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtdGhyb3dzLWV4Y3BldGlv
bi1vbnNldHRpbmctMDAxLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgd3JpdGlu
ZyB0byBpdGVtVmFsdWUgbXVzdCB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19FUlIgZXJyb3IgaWYg
dGhlIGVsZW1lbnQgaGFzIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUuPC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGV4Y2VwdGlvbkNvZGU7CitmdW5jdGlvbiBydW5U
ZXN0KHRhZ05hbWUpCit7CisgICAgZGVidWcoIlRlc3RpbmcgJyIgKyB0YWdOYW1lICsgIicgZWxl
bWVudCdzIGJlaGF2aW9yLiIpOworICAgIGV4Y2VwdGlvbkNvZGUgPSB1bmRlZmluZWQ7CisgICAg
dGVzdEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIHtpdGVtc2NvcGU6ICdpdGVtc2Nv
cGUnLCBpdGVtcHJvcDogJ2ZvbycsIGNvbnRlbnQ6ICd0ZXN0J30pOworICAgIHRyeSB7CisgICAg
ICAgIHRlc3RFbGVtZW50Lml0ZW1WYWx1ZSA9ICd0ZXN0JworICAgIH0gY2F0Y2ggKGV4Y2VwdGlv
bikgeworICAgICAgICBleGNlcHRpb25Db2RlID0gZXhjZXB0aW9uLmNvZGU7CisgICAgfQorCisg
ICAgaWYgKGV4Y2VwdGlvbkNvZGUgPT0gRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUikK
KyAgICAgICAgZGVidWcoIlRFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlv
biAoIiArIGV4Y2VwdGlvbkNvZGUgKyAiKSBJTlZBTElEX0FDQ0VTU19FUlIuPGJyPiIpOworICAg
IGVsc2UKKyAgICAgICAgZGVidWcoIlRFU1QgRkFJTEVEOiBTaG91bGQndmUgdGhyb3duIElOVkFM
SURfQUNDRVNTX0VSUiBidXQgdGhyZXcgIiArIGV4Y2VwdGlvbkNvZGUgKyAiLjxicj4iKTsKK30K
KworcnVuVGVzdCgnbWV0YScpOworcnVuVGVzdCgnYXVkaW8nKTsKK3J1blRlc3QoJ2VtYmVkJyk7
CitydW5UZXN0KCdpZnJhbWUnKTsKK3J1blRlc3QoJ2ltZycpOworcnVuVGVzdCgnc291cmNlJyk7
CitydW5UZXN0KCd0cmFjaycpOworcnVuVGVzdCgndmlkZW8nKTsKK3J1blRlc3QoJ2EnKTsKK3J1
blRlc3QoJ2FyZWEnKTsKK3J1blRlc3QoJ2xpbmsnKTsKK3J1blRlc3QoJ29iamVjdCcpOworcnVu
VGVzdCgnZGl2Jyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9pdGVtdmFsdWUtdGhyb3dzLWV4Y3BldGlvbi1vbnNldHRpbmctMDAyLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRo
cm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRocm93cy1leGNwZXRp
b24tb25zZXR0aW5nLTAwMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzEg
QEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgd3JpdGluZyB0byBpdGVtVmFsdWUgbXVzdCB0aHJv
dyBhbiBJTlZBTElEX0FDQ0VTU19FUlIgZXJyb3IgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2
ZSBhbiBpdGVtcHJvcCBhdHRyaWJ1dGUuCisKK1Rlc3RpbmcgJ21ldGEnIGVsZW1lbnQncyBiZWhh
dmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBtZXRhCitTZXQgYXR0cmlidXRlOiBjb250
ZW50LCB2YWx1ZTogdGVzdENvbnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVk
IGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnYXVkaW8nIGVs
ZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhdWRpbworU2V0IGF0
dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50CitURVNUIFNVQ0NFRURFRDogR290
IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3Rp
bmcgJ2VtYmVkJyBlbGVtZW50J3MgYmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTog
ZW1iZWQKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0Q29udGVudAorVEVTVCBT
VUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1Nf
RVJSLgorCitUZXN0aW5nICdpZnJhbWUnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxl
bWVudCBvZiB0eXBlOiBpZnJhbWUKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0
Q29udGVudAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkg
SU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICdpbWcnIGVsZW1lbnQncyBiZWhhdmlvci4K
K0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBpbWcKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZh
bHVlOiB0ZXN0Q29udGVudAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0
aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICdzb3VyY2UnIGVsZW1lbnQn
cyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBzb3VyY2UKK1NldCBhdHRyaWJ1
dGU6IGNvbnRlbnQsIHZhbHVlOiB0ZXN0Q29udGVudAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUg
ZXhwZWN0ZWQgZXhjZXB0aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICd0
cmFjaycgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHRyYWNr
CitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdENvbnRlbnQKK1RFU1QgU1VDQ0VF
REVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElOVkFMSURfQUNDRVNTX0VSUi4K
KworVGVzdGluZyAndmlkZW8nIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQgZWxlbWVudCBv
ZiB0eXBlOiB2aWRlbworU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50
CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElE
X0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ2EnIGVsZW1lbnQncyBiZWhhdmlvci4KK0NyZWF0ZWQg
ZWxlbWVudCBvZiB0eXBlOiBhCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdENv
bnRlbnQKK1RFU1QgU1VDQ0VFREVEOiBHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiAoMTUpIElO
VkFMSURfQUNDRVNTX0VSUi4KKworVGVzdGluZyAnYXJlYScgZWxlbWVudCdzIGJlaGF2aW9yLgor
Q3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGFyZWEKK1NldCBhdHRyaWJ1dGU6IGNvbnRlbnQsIHZh
bHVlOiB0ZXN0Q29udGVudAorVEVTVCBTVUNDRUVERUQ6IEdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0
aW9uICgxNSkgSU5WQUxJRF9BQ0NFU1NfRVJSLgorCitUZXN0aW5nICdsaW5rJyBlbGVtZW50J3Mg
YmVoYXZpb3IuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogbGluaworU2V0IGF0dHJpYnV0ZTog
Y29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50CitURVNUIFNVQ0NFRURFRDogR290IHRoZSBleHBl
Y3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisKK1Rlc3RpbmcgJ29iamVj
dCcgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IG9iamVjdAor
U2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50CitURVNUIFNVQ0NFRURF
RDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VTU19FUlIuCisK
K1Rlc3RpbmcgJ2RpdicgZWxlbWVudCdzIGJlaGF2aW9yLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5
cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3RDb250ZW50CitURVNU
IFNVQ0NFRURFRDogR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24gKDE1KSBJTlZBTElEX0FDQ0VT
U19FUlIuCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXZhbHVlLXRocm93
cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtdmFsdWUtdGhyb3dzLWV4Y3BldGlvbi1vbnNldHRpbmct
MDAyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
aXRlbXZhbHVlLXRocm93cy1leGNwZXRpb24tb25zZXR0aW5nLTAwMi5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgd3JpdGluZyB0byBpdGVtVmFs
dWUgbXVzdCB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19FUlIgZXJyb3IgaWYgdGhlIGVsZW1lbnQg
ZG9lcyBub3QgaGF2ZSBhbiBpdGVtcHJvcCBhdHRyaWJ1dGUuPC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGV4Y2VwdGlvbkNvZGU7CitmdW5jdGlvbiBydW5UZXN0
KHRhZ05hbWUpCit7CisgICAgZGVidWcoIlRlc3RpbmcgJyIgKyB0YWdOYW1lICsgIicgZWxlbWVu
dCdzIGJlaGF2aW9yLiIpOworICAgIGV4Y2VwdGlvbkNvZGUgPSB1bmRlZmluZWQ7CisgICAgdGVz
dEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIHtjb250ZW50OiAndGVzdENvbnRlbnQn
fSk7CisgICAgdHJ5IHsKKyAgICAgICAgdGVzdEVsZW1lbnQuaXRlbVZhbHVlID0gJ3Rlc3QnCisg
ICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAgIGV4Y2VwdGlvbkNvZGUgPSBleGNlcHRp
b24uY29kZTsKKyAgICB9CisKKyAgICBpZiAoZXhjZXB0aW9uQ29kZSA9PSBET01FeGNlcHRpb24u
SU5WQUxJRF9BQ0NFU1NfRVJSKQorICAgICAgICBkZWJ1ZygiVEVTVCBTVUNDRUVERUQ6IEdvdCB0
aGUgZXhwZWN0ZWQgZXhjZXB0aW9uICgiICsgZXhjZXB0aW9uQ29kZSArICIpIElOVkFMSURfQUND
RVNTX0VSUi48YnI+Iik7CisgICAgZWxzZQorICAgICAgICBkZWJ1ZygiVEVTVCBGQUlMRUQ6IFNo
b3VsZCd2ZSB0aHJvd24gSU5WQUxJRF9BQ0NFU1NfRVJSIGJ1dCB0aHJldyAiICsgZXhjZXB0aW9u
Q29kZSArICIuPGJyPiIpOworfQorCitydW5UZXN0KCdtZXRhJyk7CitydW5UZXN0KCdhdWRpbycp
OworcnVuVGVzdCgnZW1iZWQnKTsKK3J1blRlc3QoJ2lmcmFtZScpOworcnVuVGVzdCgnaW1nJyk7
CitydW5UZXN0KCdzb3VyY2UnKTsKK3J1blRlc3QoJ3RyYWNrJyk7CitydW5UZXN0KCd2aWRlbycp
OworcnVuVGVzdCgnYScpOworcnVuVGVzdCgnYXJlYScpOworcnVuVGVzdCgnbGluaycpOworcnVu
VGVzdCgnb2JqZWN0Jyk7CitydW5UZXN0KCdkaXYnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbApJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL3Jlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9yZXNvdXJjZXMvbWljcm9k
YXRhLWNvbW1vbi5qcwkocmV2aXNpb24gOTgyMzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvcmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTkgKzEsMjEgQEAKIC8vIHRoaXMgZnVuY3Rpb24gY3JlYXRlcyBlbGVtZW50IHdpdGggc3Bl
Y2lmaWVkIHByb3BlcnR5IGFuZCBjb250ZW50cy4KLWZ1bmN0aW9uIGNyZWF0ZUVsZW0odHlwZSxw
cm9wcyxjb250ZW50cykgeworZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0eXBlLCBwcm9wcywgY29u
dGVudHMpIHsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogCi0gICAgdmFyIGVsZW0gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KHR5cGUpOworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCh0eXBlKTsKIAotICAgIGZvciggdmFyIGkgaW4gcHJvcHMgKSB7Ci0gICAgICBpZigg
cHJvcHMuaGFzT3duUHJvcGVydHkoaSkgKSB7Ci0gICAgICAgIGVsZW0uc2V0QXR0cmlidXRlKGks
cHJvcHNbaV0pOworICAgIGRlYnVnKCdDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogJyArIHR5cGUp
OworICAgIGZvciAodmFyIGkgaW4gcHJvcHMpIHsKKyAgICAgIGlmIChwcm9wcy5oYXNPd25Qcm9w
ZXJ0eShpKSkgeworICAgICAgICBkZWJ1ZygnU2V0IGF0dHJpYnV0ZTogJyArIGkgKyAnLCB2YWx1
ZTogJyArIHByb3BzW2ldKTsKKyAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoaSxwcm9wc1tp
XSk7CiAgICAgICB9CiAgICAgfQotICAgIGlmKCBjb250ZW50cyApIHsKLSAgICAgIGVsZW0uaW5u
ZXJIVE1MID0gY29udGVudHM7CisgICAgaWYgKGNvbnRlbnRzKSB7CisgICAgICBlbGVtZW50Lmlu
bmVySFRNTCA9IGNvbnRlbnRzOwogICAgIH0KLSAgICByZXR1cm4gZWxlbTsKKyAgICByZXR1cm4g
ZWxlbWVudDsKIH0KIAogCkBAIC0yMiwyMSArMjQsMjAgQEAgZnVuY3Rpb24gcnVuVGVzdChjb2xs
ZWN0aW9uLCBlbGVtZW50cywgdAogICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAotICBkb2N1bWVudC53cml0
ZSh0aXRsZSArICc6ICcpOwogICBwYXNzID0gdHJ1ZTsKIAogICBpZiAoY29sbGVjdGlvbi5sZW5n
dGggIT0gZWxlbWVudHMubGVuZ3RoKSB7CiAgICAgcGFzcyA9IGZhbHNlCi0gICAgZG9jdW1lbnQu
d3JpdGUoJ0ZBSUwgLSBleHBlY3RlZCAnICsgZWxlbWVudHMubGVuZ3RoICsgJyBlbGVtZW50cyBi
dXQgZ290ICcgKyBjb2xsZWN0aW9uLmxlbmd0aCArICIgZWxlbWVudHMuICIpOworICAgIGRlYnVn
KCdGQUlMIC0gZXhwZWN0ZWQgJyArIGVsZW1lbnRzLmxlbmd0aCArICcgZWxlbWVudHMgYnV0IGdv
dCAnICsgY29sbGVjdGlvbi5sZW5ndGggKyAiIGVsZW1lbnRzLiAiKTsKICAgfQogICBmb3IodmFy
IGkgPSAwLCBtYXggPSBjb2xsZWN0aW9uLmxlbmd0aCA+IGVsZW1lbnRzLmxlbmd0aCA/IGVsZW1l
bnRzLmxlbmd0aCA6IGNvbGxlY3Rpb24ubGVuZ3RoOyBpIDwgbWF4OyBpKyspIHsKICAgICBpZihj
b2xsZWN0aW9uW2ldICE9IGVsZW1lbnRzW2ldKSB7CisgICAgICBkZWJ1Zyh0aXRsZSk7CiAgICAg
ICBwYXNzID0gZmFsc2UKLSAgICAgIGRvY3VtZW50LndyaXRlKCdGQUlMIC0gZXhwZWN0ZWQgZWxl
bWVudCA6ICcgKyBlbGVtZW50c1tpXS50YWdOYW1lICsgIiBidXQgZ290IGVsZW1lbnQgOiIgKyBj
b2xsZWN0aW9uW2ldLnRhZ05hbWUpOwotICAgICAgZG9jdW1lbnQud3JpdGUoJ0ZBSUwgLSBleHBl
Y3RlZCBlbGVtZW50IHdpdGggaWQ6ICcgKyBlbGVtZW50c1tpXS5pZCArICIgYnV0IGdvdCBlbGVt
ZW50IHdpdGggaWQ6IiArIGNvbGxlY3Rpb25baV0uaWQpOworICAgICAgZGVidWcoJ0ZBSUwgLSBl
eHBlY3RlZCBlbGVtZW50IDogJyArIGVsZW1lbnRzW2ldLnRhZ05hbWUgKyAiIGJ1dCBnb3QgZWxl
bWVudCA6IiArIGNvbGxlY3Rpb25baV0udGFnTmFtZSk7CisgICAgICBkZWJ1ZygnRkFJTCAtIGV4
cGVjdGVkIGVsZW1lbnQgd2l0aCBpZDogJyArIGVsZW1lbnRzW2ldLmlkICsgIiBidXQgZ290IGVs
ZW1lbnQgd2l0aCBpZDoiICsgY29sbGVjdGlvbltpXS5pZCk7CiAgICAgfQogICB9CiAgIGlmIChw
YXNzKQotICAgIGRvY3VtZW50LndyaXRlKCdQQVNTJyk7Ci0gIGRvY3VtZW50LndyaXRlKCc8YnI+
Jyk7CisgICAgZGVidWcodGl0bGUgKyAnOiBQQVNTJyk7CiB9Cg==
</data>
<flag name="review"
          id="110189"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>