<?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>30546</bug_id>
          
          <creation_ts>2009-10-19 17:16:27 -0700</creation_ts>
          <short_desc>Storage events don&apos;t quite match the current spec; need to fix</short_desc>
          <delta_ts>2010-01-25 22:24:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>abarth</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155992</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-10-19 17:16:27 -0700</bug_when>
    <thetext>Storage events should fire asynchronously.  Currently WebKit does so synchronously, but the spec seems fairly clear on the matter: http://dev.w3.org/html5/webstorage/#the-storage-event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180994</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-14 16:25:14 -0800</bug_when>
    <thetext>By asynchronously, I mean via the event queue:

&quot;&quot;&quot;
When this happens, the user agent must queue a task to fire an event with the name storage, which does not bubble and is not cancelable, and which uses the StorageEvent interface, at each Window object whose Document object has a Storage object that is affected.
&quot;&quot;&quot;


Also note that we should not fire events for the current page:

&quot;&quot;&quot;
When the setItem(), removeItem(), and clear() methods are called on a Storage object x that is associated with a local storage area, if the methods did something, then in every HTMLDocument object whose Window object&apos;s localStorage attribute&apos;s Storage object is associated with the same storage area, other than x, a storage event must be fired, as described below.
&quot;&quot;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181024</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-14 17:21:31 -0800</bug_when>
    <thetext>Not(In reply to comment #1)
&gt; &quot;&quot;&quot;
&gt; When this happens, the user agent must queue a task to fire an event with the
&gt; name storage, which does not bubble and is not cancelable, and which uses the
&gt; StorageEvent interface, at each Window object whose Document object has a
&gt; Storage object that is affected.
&gt; &quot;&quot;&quot;

Note also that the event is not supposed to bubble or be cancelable (which is not the current behavior).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182569</commentid>
    <comment_count>3</comment_count>
      <attachid>46966</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-19 18:40:47 -0800</bug_when>
    <thetext>Created attachment 46966
The WebCore part of this change

This change is going to require significant changes to every dom storage layout test that involves events.  It&apos;d be great if someone could take a look at let me know if there&apos;s any major issues with it.  In the mean time, I&apos;ll be trying to find a clean way to transform all the layout tests.  At the moment, I&apos;m leaning towards breaking the event layout tests into lots of little tests since otherwise it may be difficult to follow the very asynchronous nature of testing that&apos;ll be required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182614</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-01-19 22:01:15 -0800</bug_when>
    <thetext>Do you need to worry about the Document being destroyed inside the call to dispatchWindowEvent?  It might be wise to swap m_storageEventQueue into a temporary variable so that once you begin calling dispatchWindowEvent you never need to access any members of the Document again.  (This is in general a good thing to do when calling out to foreign code.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183006</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-20 18:08:49 -0800</bug_when>
    <thetext>Also note that &quot;if the event is being fired due to an invocation of the clear() method, the event must have its key, oldValue, and newValue attributes set to null.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183037</commentid>
    <comment_count>6</comment_count>
      <attachid>47092</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-20 19:26:17 -0800</bug_when>
    <thetext>Created attachment 47092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183040</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-20 19:29:44 -0800</bug_when>
    <thetext>This meat of the patch I just posted is very simple.  It&apos;s just making events asynchronous, not posting them to the frame that generated them, passing a null for the key when issuing a clear storage event, and making the events non-cancelable/non-bubbleable...all of which are clearly stated in the spec.

The asynchronous and not posting to the frame that generated them forced me two re-write all the layout tests that dealt with storage events.  There&apos;s a lot of code there, but I tried to be fairly careful to ensure that test coverage did not shrink in any area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183042</commentid>
    <comment_count>8</comment_count>
      <attachid>47093</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-20 19:39:00 -0800</bug_when>
    <thetext>Created attachment 47093
Oops...now with change log + all the files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183045</commentid>
    <comment_count>9</comment_count>
      <attachid>47094</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-20 19:48:02 -0800</bug_when>
    <thetext>Created attachment 47094
Also realized the descriptions for the tests were stale.  Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183054</commentid>
    <comment_count>10</comment_count>
      <attachid>47094</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-20 20:11:59 -0800</bug_when>
    <thetext>Comment on attachment 47094
Also realized the descriptions for the tests were stale.  Fixed.

Actually...still needs a bit of work.  Will post again once it&apos;s ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183860</commentid>
    <comment_count>11</comment_count>
      <attachid>47242</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-22 16:02:20 -0800</bug_when>
    <thetext>Created attachment 47242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183884</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-22 16:59:41 -0800</bug_when>
    <thetext>Note that 90% of the patch is layout tests.  And at least 1/3 of that is deleting ones that have been replaced.  So while big, this patch isn&apos;t _that_ big.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183890</commentid>
    <comment_count>13</comment_count>
      <attachid>47242</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-22 17:12:13 -0800</bug_when>
    <thetext>Comment on attachment 47242
Patch

&gt; +void Document::storageEventTimerFired(Timer&lt;Document&gt;*)
&gt; +{
&gt; +    Vector&lt;RefPtr&lt;Event&gt; &gt; storageEventQueue;
&gt; +    storageEventQueue.swap(m_storageEventQueue);
&gt; +
&gt; +    typedef Vector&lt;RefPtr&lt;Event&gt; &gt;::const_iterator Iterator;
&gt; +    Iterator end = storageEventQueue.end();
&gt; +    for (Iterator it = storageEventQueue.begin(); it != end; ++it)
&gt; +        dispatchWindowEvent(*it);
&gt; +}

Is there any time late in the lifetime of a document where the object has not been destroyed, but it would not be a good time to call dispatchWindowEvent? I guess the domWindow() function will return 0 in that case, so probably the answer is no.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183895</commentid>
    <comment_count>14</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-22 17:29:39 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 47242 [details])
&gt; &gt; +void Document::storageEventTimerFired(Timer&lt;Document&gt;*)
&gt; &gt; +{
&gt; &gt; +    Vector&lt;RefPtr&lt;Event&gt; &gt; storageEventQueue;
&gt; &gt; +    storageEventQueue.swap(m_storageEventQueue);
&gt; &gt; +
&gt; &gt; +    typedef Vector&lt;RefPtr&lt;Event&gt; &gt;::const_iterator Iterator;
&gt; &gt; +    Iterator end = storageEventQueue.end();
&gt; &gt; +    for (Iterator it = storageEventQueue.begin(); it != end; ++it)
&gt; &gt; +        dispatchWindowEvent(*it);
&gt; &gt; +}
&gt; 
&gt; Is there any time late in the lifetime of a document where the object has not
&gt; been destroyed, but it would not be a good time to call dispatchWindowEvent? I
&gt; guess the domWindow() function will return 0 in that case, so probably the
&gt; answer is no.

You probably know this stuff better than most people.  From what I can tell, the answer is no because the domWindow() returns 0.

Maybe I can make a layout test that tries this.  It could cause two storage events to fire and one of them can do a navigation of some sort.  But then what would the second do?  And what type of navigation would be the most likely to expose problems?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183896</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-22 17:35:51 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Maybe I can make a layout test that tries this.  It could cause two storage
&gt; events to fire and one of them can do a navigation of some sort.  But then what
&gt; would the second do?  And what type of navigation would be the most likely to
&gt; expose problems?

Your idea for a test does point out that the document might get deallocated by the first window event and then we could end up dereferencing a bad pointer in the second one. To make something bad happen the goal should be to have a storage event that has no references to the document so the document would actually get deallocated. Maybe three events:

    1) first event handler navigates
    2) second event handler triggers garbage collection
    3) crash before you get into the third event handler

The trick is to somehow construct an event handler for the third storage event that does not indirectly keep the document alive via, say, the DOM window. Except that probably the second event handler would never run because the first handler would make the document’s frame be 0.

I’m really not sure. But the object lifetimes here do seem a little unclear to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183904</commentid>
    <comment_count>16</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-22 17:59:48 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Maybe I can make a layout test that tries this.  It could cause two storage
&gt; &gt; events to fire and one of them can do a navigation of some sort.  But then what
&gt; &gt; would the second do?  And what type of navigation would be the most likely to
&gt; &gt; expose problems?
&gt; 
&gt; Your idea for a test does point out that the document might get deallocated by
&gt; the first window event and then we could end up dereferencing a bad pointer in
&gt; the second one. To make something bad happen the goal should be to have a
&gt; storage event that has no references to the document so the document would
&gt; actually get deallocated. Maybe three events:
&gt; 
&gt;     1) first event handler navigates
&gt;     2) second event handler triggers garbage collection
&gt;     3) crash before you get into the third event handler
&gt; 
&gt; The trick is to somehow construct an event handler for the third storage event
&gt; that does not indirectly keep the document alive via, say, the DOM window.
&gt; Except that probably the second event handler would never run because the first
&gt; handler would make the document’s frame be 0.
&gt; 
&gt; I’m really not sure. But the object lifetimes here do seem a little unclear to
&gt; me.

What&apos;s the best (most deterministic) way to trigger a GC?

What objects will the storage event handler itself hold a reference to (and thus keep from being GCed)?

Is there anyone who is an expert on these object lifetimes that I can talk to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183908</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-22 18:06:59 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; What&apos;s the best (most deterministic) way to trigger a GC?

DumpRenderTree has a GCController with a collect() function. See tests like fast/js/script-tests/cached-eval-gc.js for examples.

&gt; What objects will the storage event handler itself hold a reference to (and thus keep from being GCed)?

Objects captured in its scope. It seems likely that will include the DOM window object since that&apos;s the global object.

&gt; Is there anyone who is an expert on these object lifetimes that I can talk to?

Probably. (Sorry, smart ass answer; there is no real topic “object lifetimes”, but a lot of the experienced WebKit engineers know the things that affect the lifetimes of particular objects.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183917</commentid>
    <comment_count>18</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-22 18:41:44 -0800</bug_when>
    <thetext>Ccing a few others who might have ideas.

BACKGROUND: Storage events are now (as of this patch) queued up on the document.  We start a one shot timer that then processes the queue.  We&apos;re trying to figure out if there&apos;s any way that the document could go away while processing the queue.

The two cases that I think are most interesting and/or likely to expose issues would be to open a new window and have it listen to storage events.  The event handler could be something like this:

function storageEventHandler(e)
{
    if (e.newValue == &quot;1&quot;)
        // navigate and/or close the window
    else if (e.newValue == &quot;2&quot;)
        // force GC if in layout test controller
    else
        // do nothing?  or is there something more we can do?
}

The more that I think about this, though, it seems as though anything we might do would hold a reference to the Window.

I&apos;ve tried playing around with this a bit in an ad-hoc way and haven&apos;t been able to produce any interesting results.  If anyone had any ideas or could point me towards a layout test that does something similar, it&apos;d be great.  Otherwise I&apos;m not sure if there&apos;s much left to be done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184005</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-23 10:26:21 -0800</bug_when>
    <thetext>I did say review+ and r=me in the first place, which was intentional. If I had serious reservations I would not have done so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184010</commentid>
    <comment_count>20</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-23 11:15:49 -0800</bug_when>
    <thetext>Understood.  Sorry if I&apos;m being neurotic.  I just figured this would be a good learning opportunity.

I have one Chromium patch that I&apos;m hoping to land before this.  I expect I&apos;ll be able to land it Monday (whether or not it&apos;s with an additional layout test).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184505</commentid>
    <comment_count>21</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-01-25 22:24:05 -0800</bug_when>
    <thetext>Committed r53840: &lt;http://trac.webkit.org/changeset/53840&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46966</attachid>
            <date>2010-01-19 18:40:47 -0800</date>
            <delta_ts>2010-01-20 19:26:12 -0800</delta_ts>
            <desc>The WebCore part of this change</desc>
            <filename>pat</filename>
            <type>text/plain</type>
            <size>4674</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAJKHJldmlz
aW9uIDUzMjMyKQorKysgV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MCwyNSArNTAsMjUgQEAKICAgICBpZiAoc3RvcmFnZVR5cGUg
PT0gU2Vzc2lvblN0b3JhZ2UpIHsKICAgICAgICAgLy8gU2VuZCBldmVudHMgb25seSB0byBvdXIg
cGFnZS4KICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsgZnJh
bWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgICAg
IGlmIChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+ZXF1YWwoc2VjdXJpdHlP
cmlnaW4pKQorICAgICAgICAgICAgaWYgKHNvdXJjZUZyYW1lICE9IGZyYW1lICYmIGZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbikpCiAgICAg
ICAgICAgICAgICAgZnJhbWVzLmFwcGVuZChmcmFtZSk7CiAgICAgICAgIH0KIAogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAg
ZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVl
LCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCkt
PnNlc3Npb25TdG9yYWdlKCkpKTsKKyAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+
ZW5xdWV1ZVN0b3JhZ2VFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3Rv
cmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50
KCktPnVybCgpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3RvcmFnZSgpKSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgLy8gU2VuZCBldmVudHMgdG8gZXZlcnkgcGFnZS4KICAgICAg
ICAgY29uc3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gcGFnZS0+Z3JvdXAoKS5wYWdlcygpOwog
ICAgICAgICBIYXNoU2V0PFBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gcGFnZXMuZW5kKCk7
CiAgICAgICAgIGZvciAoSGFzaFNldDxQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcGFnZXMu
YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFt
ZSA9ICgqaXQpLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJh
dmVyc2VOZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCktPmVxdWFsKHNlY3VyaXR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICBp
ZiAoc291cmNlRnJhbWUgIT0gZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCktPmVxdWFsKHNlY3VyaXR5T3JpZ2luKSkKICAgICAgICAgICAgICAgICAgICAgZnJhbWVz
LmFwcGVuZChmcmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgZnJh
bWVzW2ldLT5kb2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBz
b3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPmxv
Y2FsU3RvcmFnZSgpKSk7CisgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVl
dWVTdG9yYWdlRXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VF
dmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKCkpKTsKICAgICB9CiB9
CiAKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3BwCShyZXZpc2lvbiA1MzIzMikKKysrIFdl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0
Nyw3IEBACiB9CiAKIFN0b3JhZ2VFdmVudDo6U3RvcmFnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJpLCBTdG9yYWdlKiBzdG9yYWdlQXJl
YSkKLSAgICA6IEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKQorICAgIDogRXZlbnQodHlwZSwgZmFs
c2UsIGZhbHNlKQogICAgICwgbV9rZXkoa2V5KQogICAgICwgbV9vbGRWYWx1ZShvbGRWYWx1ZSkK
ICAgICAsIG1fbmV3VmFsdWUobmV3VmFsdWUpCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA1MzIz
MikKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU3LDYg
KzM1Nyw3IEBACiAgICAgLCBtX2hhc09wZW5EYXRhYmFzZXMoZmFsc2UpCiAjZW5kaWYKICAgICAs
IG1fdXNpbmdHZW9sb2NhdGlvbihmYWxzZSkKKyAgICAsIG1fc3RvcmFnZUV2ZW50VGltZXIodGhp
cywgJkRvY3VtZW50OjpzdG9yYWdlRXZlbnRUaW1lckZpcmVkKQogI2lmIEVOQUJMRShXTUwpCiAg
ICAgLCBtX2NvbnRhaW5zV01MQ29udGVudChmYWxzZSkKICNlbmRpZgpAQCAtMjk2Niw2ICsyOTY3
LDIyIEBACiAgICAgZG9tV2luZG93LT5kaXNwYXRjaExvYWRFdmVudCgpOwogfQogCit2b2lkIERv
Y3VtZW50OjplbnF1ZXVlU3RvcmFnZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IHN0b3JhZ2VFdmVu
dCkKK3sKKyAgICBtX3N0b3JhZ2VFdmVudFF1ZXVlLmFwcGVuZChzdG9yYWdlRXZlbnQpOworICAg
IGlmICghbV9zdG9yYWdlRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3N0b3JhZ2VF
dmVudFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBEb2N1bWVudDo6c3RvcmFnZUV2
ZW50VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKQoreworICAgIHR5cGVkZWYgVmVjdG9yPFJl
ZlB0cjxFdmVudD4gPjo6Y29uc3RfaXRlcmF0b3IgSXRlcmF0b3I7CisgICAgSXRlcmF0b3IgZW5k
ID0gbV9zdG9yYWdlRXZlbnRRdWV1ZS5lbmQoKTsKKyAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbV9z
dG9yYWdlRXZlbnRRdWV1ZS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIGRpc3Bh
dGNoV2luZG93RXZlbnQoKml0KTsKKyAgICBtX3N0b3JhZ2VFdmVudFF1ZXVlLmNsZWFyKCk7Cit9
CisKIFBhc3NSZWZQdHI8RXZlbnQ+IERvY3VtZW50OjpjcmVhdGVFdmVudChjb25zdCBTdHJpbmcm
IGV2ZW50VHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVmUHRyPEV2ZW50PiBldmVu
dDsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAkocmV2aXNpb24gNTMyMzIpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02MTUsNiArNjE1LDkgQEAKICAgICB2b2lkIGRpc3BhdGNoV2lu
ZG93RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+ID0gMCk7
CiAgICAgdm9pZCBkaXNwYXRjaFdpbmRvd0xvYWRFdmVudCgpOwogCisgICAgdm9pZCBlbnF1ZXVl
U3RvcmFnZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICB2b2lkIHN0b3JhZ2VFdmVudFRp
bWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CisKICAgICBQYXNzUmVmUHRyPEV2ZW50PiBjcmVh
dGVFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
Ly8ga2VlcCB0cmFjayBvZiB3aGF0IHR5cGVzIG9mIGV2ZW50IGxpc3RlbmVycyBhcmUgcmVnaXN0
ZXJlZCwgc28gd2UgZG9uJ3QKQEAgLTExOTIsNiArMTE5NSw5IEBACiAgICAgCiAgICAgYm9vbCBt
X3VzaW5nR2VvbG9jYXRpb247CiAKKyAgICBUaW1lcjxEb2N1bWVudD4gbV9zdG9yYWdlRXZlbnRU
aW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1fc3RvcmFnZUV2ZW50UXVldWU7CisK
ICNpZiBFTkFCTEUoV01MKQogICAgIGJvb2wgbV9jb250YWluc1dNTENvbnRlbnQ7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47092</attachid>
            <date>2010-01-20 19:26:17 -0800</date>
            <delta_ts>2010-01-20 19:38:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30546-20100120192616.patch</filename>
            <type>text/plain</type>
            <size>70986</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDUzMjMyKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTcsNiArMzU3LDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50
KEZyYW1lKiBmcmFtZSwgYm9vbCBpcwogICAgICwgbV9oYXNPcGVuRGF0YWJhc2VzKGZhbHNlKQog
I2VuZGlmCiAgICAgLCBtX3VzaW5nR2VvbG9jYXRpb24oZmFsc2UpCisgICAgLCBtX3N0b3JhZ2VF
dmVudFRpbWVyKHRoaXMsICZEb2N1bWVudDo6c3RvcmFnZUV2ZW50VGltZXJGaXJlZCkKICNpZiBF
TkFCTEUoV01MKQogICAgICwgbV9jb250YWluc1dNTENvbnRlbnQoZmFsc2UpCiAjZW5kaWYKQEAg
LTI5NjYsNiArMjk2NywyNCBAQCB2b2lkIERvY3VtZW50OjpkaXNwYXRjaFdpbmRvd0xvYWRFdmVu
dCgpCiAgICAgZG9tV2luZG93LT5kaXNwYXRjaExvYWRFdmVudCgpOwogfQogCit2b2lkIERvY3Vt
ZW50OjplbnF1ZXVlU3RvcmFnZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IHN0b3JhZ2VFdmVudCkK
K3sKKyAgICBtX3N0b3JhZ2VFdmVudFF1ZXVlLmFwcGVuZChzdG9yYWdlRXZlbnQpOworICAgIGlm
ICghbV9zdG9yYWdlRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3N0b3JhZ2VFdmVu
dFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBEb2N1bWVudDo6c3RvcmFnZUV2ZW50
VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKQoreworICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+
ID4gc3RvcmFnZUV2ZW50UXVldWU7CisgICAgc3RvcmFnZUV2ZW50UXVldWUuc3dhcChtX3N0b3Jh
Z2VFdmVudFF1ZXVlKTsKKworICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxFdmVudD4gPjo6Y29u
c3RfaXRlcmF0b3IgSXRlcmF0b3I7CisgICAgSXRlcmF0b3IgZW5kID0gc3RvcmFnZUV2ZW50UXVl
dWUuZW5kKCk7CisgICAgZm9yIChJdGVyYXRvciBpdCA9IHN0b3JhZ2VFdmVudFF1ZXVlLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgZGlzcGF0Y2hXaW5kb3dFdmVudCgqaXQpOwor
fQorCiBQYXNzUmVmUHRyPEV2ZW50PiBEb2N1bWVudDo6Y3JlYXRlRXZlbnQoY29uc3QgU3RyaW5n
JiBldmVudFR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZlB0cjxFdmVudD4gZXZl
bnQ7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDUzMjMyKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNjE1LDYgKzYxNSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
c3BhdGNoV2luZG93RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8RXZlbnRUYXJn
ZXQ+ID0gMCk7CiAgICAgdm9pZCBkaXNwYXRjaFdpbmRvd0xvYWRFdmVudCgpOwogCisgICAgdm9p
ZCBlbnF1ZXVlU3RvcmFnZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICB2b2lkIHN0b3Jh
Z2VFdmVudFRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CisKICAgICBQYXNzUmVmUHRyPEV2
ZW50PiBjcmVhdGVFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgRXhjZXB0aW9uQ29kZSYp
OwogCiAgICAgLy8ga2VlcCB0cmFjayBvZiB3aGF0IHR5cGVzIG9mIGV2ZW50IGxpc3RlbmVycyBh
cmUgcmVnaXN0ZXJlZCwgc28gd2UgZG9uJ3QKQEAgLTExOTIsNiArMTE5NSw5IEBAIHByaXZhdGU6
CiAgICAgCiAgICAgYm9vbCBtX3VzaW5nR2VvbG9jYXRpb247CiAKKyAgICBUaW1lcjxEb2N1bWVu
dD4gbV9zdG9yYWdlRXZlbnRUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1fc3Rv
cmFnZUV2ZW50UXVldWU7CisKICNpZiBFTkFCTEUoV01MKQogICAgIGJvb2wgbV9jb250YWluc1dN
TENvbnRlbnQ7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3BwCShyZXZpc2lv
biA1MzIzMikKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw3ICs0Nyw3IEBAIFBhc3NSZWZQdHI8U3RvcmFnZUV2ZW50PiBTdG9yYWdlRXZl
bnQ6OmMKIH0KIAogU3RvcmFnZUV2ZW50OjpTdG9yYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
U3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmksIFN0b3JhZ2UqIHN0b3JhZ2VBcmVh
KQotICAgIDogRXZlbnQodHlwZSwgZmFsc2UsIHRydWUpCisgICAgOiBFdmVudCh0eXBlLCBmYWxz
ZSwgZmFsc2UpCiAgICAgLCBtX2tleShrZXkpCiAgICAgLCBtX29sZFZhbHVlKG9sZFZhbHVlKQog
ICAgICwgbV9uZXdWYWx1ZShuZXdWYWx1ZSkKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
RXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaWRs
CShyZXZpc2lvbiA1MzIzMikKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICBpbnRl
cmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1ET01fU1RPUkFHRQogICAgIF0gU3RvcmFnZUV2
ZW50IDogRXZlbnQgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtleTsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERP
TVN0cmluZyBrZXk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJp
bmdUbz1OdWxsXSBET01TdHJpbmcgb2xkVmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgbmV3VmFsdWU7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJpOwpJbmRleDogV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gNTMyMzIpCisrKyBXZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDI1ICs1MCwyNSBAQCB2b2lkIFN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvCiAg
ICAgaWYgKHN0b3JhZ2VUeXBlID09IFNlc3Npb25TdG9yYWdlKSB7CiAgICAgICAgIC8vIFNlbmQg
ZXZlbnRzIG9ubHkgdG8gb3VyIHBhZ2UuCiAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gcGFn
ZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4
dCgpKSB7Ci0gICAgICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCktPmVxdWFsKHNlY3VyaXR5T3JpZ2luKSkKKyAgICAgICAgICAgIGlmIChzb3VyY2VGcmFtZSAh
PSBmcmFtZSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+ZXF1YWwoc2Vj
dXJpdHlPcmlnaW4pKQogICAgICAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoZnJhbWUpOwogICAg
ICAgICB9CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7
ICsraSkKLSAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dF
dmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXks
IG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBmcmFt
ZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3RvcmFnZSgpKSk7CisgICAgICAgICAgICBmcmFt
ZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVTdG9yYWdlRXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNv
dXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+c2Vz
c2lvblN0b3JhZ2UoKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFNlbmQgZXZlbnRzIHRv
IGV2ZXJ5IHBhZ2UuCiAgICAgICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IHBhZ2Ut
Pmdyb3VwKCkucGFnZXMoKTsKICAgICAgICAgSGFzaFNldDxQYWdlKj46OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IHBhZ2VzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+Ojpjb25zdF9p
dGVyYXRvciBpdCA9IHBhZ2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSAoKml0KS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZy
YW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbikp
CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUZyYW1lICE9IGZyYW1lICYmIGZyYW1lLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbikpCiAgICAgICAg
ICAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoZnJhbWUpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7ICsr
aSkKLSAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVu
dChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9s
ZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBmcmFtZXNb
aV0tPmRvbVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoKSkpOworICAgICAgICAgICAgZnJhbWVzW2ld
LT5kb2N1bWVudCgpLT5lbnF1ZXVlU3RvcmFnZUV2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VG
cmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPmxvY2FsU3Rv
cmFnZSgpKSk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvY29tcGxleC12YWx1ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVz
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDE1ICsxMDIsNiBAQCBQQVNTIHN0
b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMicpIGlz
ICLul4HDv+ywoWhlbGxvIgogCi1WZXJpZnkgc3RvcmFnZSBldmVudHMgYXJlIGNhc2Ugc2Vuc2l0
aXZlCi1zdG9yYWdlLmZvbyA9ICd0ZXN0JwotU2V0dGluZyBldmVudCBsaXN0ZW5lcgotUEFTUyBl
dmVudENvdW50ZXIgaXMgMAotc3RvcmFnZS5mb28gPSAndGVzdCcKLVBBU1MgZXZlbnRDb3VudGVy
IGlzIDAKLXN0b3JhZ2UuZm9vID0gJ1RFU1QnCi1QQVNTIGV2ZW50Q291bnRlciBpcyAxCi0KIAog
VGVzdGluZyBsb2NhbFN0b3JhZ2UKIHN0b3JhZ2UuY2xlYXIoKQpAQCAtMjEwLDE1ICsyMDEsNiBA
QCBQQVNTIHR5cGVvZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCiBQQVNTIHN0b3JhZ2UuZm9v
MTIgaXMgIu6XgcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEy
JykgaXMgInN0cmluZyIKIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+yw
oWhlbGxvIgotCi1WZXJpZnkgc3RvcmFnZSBldmVudHMgYXJlIGNhc2Ugc2Vuc2l0aXZlCi1zdG9y
YWdlLmZvbyA9ICd0ZXN0JwotU2V0dGluZyBldmVudCBsaXN0ZW5lcgotUEFTUyBldmVudENvdW50
ZXIgaXMgMAotc3RvcmFnZS5mb28gPSAndGVzdCcKLVBBU1MgZXZlbnRDb3VudGVyIGlzIDAKLXN0
b3JhZ2UuZm9vID0gJ1RFU1QnCi1QQVNTIGV2ZW50Q291bnRlciBpcyAxCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1l
bnRVUkktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLVRlc3Qg
dGhhdCBjaGFuZ2luZyBkb2N1bWVudFVSSSBoYXMgbm8gZWZmZWN0cyBvbiBzdG9yYWdlIGV2ZW50
cy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVRlc3Rpbmcgc2Vzc2lvblN0b3Jh
Z2UKLXN0b3JhZ2UuY2xlYXIoKQotUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCi13aW5kb3cub25z
dG9yYWdlID0gZmlyc3RFdmVudAotc3RvcmFnZS5mb28gPSAnMTIzJwotRmlyc3QgZXZlbnQgZmly
ZWQKLVNhdmluZyBVUkkKLWRvY3VtZW50LmRvY3VtZW50VVJJID0gJ2FiYycKLVBBU1MgZG9jdW1l
bnQuZG9jdW1lbnRVUkkgaXMgImFiYyIKLXdpbmRvdy5vbnN0b3JhZ2UgPSBzZWNvbmRFdmVudAot
c3RvcmFnZS5mb28gPSAneHl6JwotU2Vjb25kIGV2ZW50IGZpcmVkCi1QQVNTIHRydWUgaXMgdHJ1
ZQotCi0KLVRlc3RpbmcgbG9jYWxTdG9yYWdlCi1zdG9yYWdlLmNsZWFyKCkKLVBBU1Mgc3RvcmFn
ZS5sZW5ndGggaXMgMAotd2luZG93Lm9uc3RvcmFnZSA9IGZpcnN0RXZlbnQKLXN0b3JhZ2UuZm9v
ID0gJzEyMycKLUZpcnN0IGV2ZW50IGZpcmVkCi1TYXZpbmcgVVJJCi1kb2N1bWVudC5kb2N1bWVu
dFVSSSA9ICdhYmMnCi1QQVNTIGRvY3VtZW50LmRvY3VtZW50VVJJIGlzICJhYmMiCi13aW5kb3cu
b25zdG9yYWdlID0gc2Vjb25kRXZlbnQKLXN0b3JhZ2UuZm9vID0gJ3h5eicKLVNlY29uZCBldmVu
dCBmaXJlZAotUEFTUyB0cnVlIGlzIHRydWUKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvZG9jdW1lbnRVUkkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2RvY3Vt
ZW50VVJJLmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS93aW5kb3ctYXR0cmlidXRlcy1leGlzdC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRy
aWJ1dGVzLWV4aXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvd2luZG93LWF0dHJpYnV0ZXMtZXhpc3QtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xOCw1ICsxOCw0IEBAIFN0b3JhZ2Ugb2JqZWN0IGxvY2FsU3Rv
cmFnZSBoYXMgY2xlYXIKIHdpbmRvdy5sb2NhbFN0b3JhZ2UgPT0gd2luZG93LmxvY2FsU3RvcmFn
ZTogdHJ1ZQogd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gd2luZG93LmxvY2FsU3RvcmFnZTogdHJ1
ZQogd2luZG93Lm9uc3RvcmFnZSBleGlzdHMKLVRoZSBvbnN0b3JhZ2UgcHJvcGVydHkgd29ya3Mg
d2hlbiBhIHN0b3JhZ2UgZXZlbnQgaXMgZmlyZWQuCiAKSW5kZXg6IExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS93aW5kb3ctYXR0cmlidXRlcy1leGlzdC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS93aW5kb3ctYXR0cmlidXRlcy1leGlzdC5o
dG1sCShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS93
aW5kb3ctYXR0cmlidXRlcy1leGlzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNiArMjYs
NiBAQCBmdW5jdGlvbiB0ZXN0U3RvcmFnZShuYW1lLCBzdG9yYWdlKQogICAgICAgICBsb2coIlN0
b3JhZ2Ugb2JqZWN0ICIgKyBuYW1lICsgIiBoYXMgY2xlYXIiKTsKIH0KIAotZnVuY3Rpb24gdGVz
dE9uc3RvcmFnZSgpCi17Ci0gICAgd2luZG93Lm9uc3RvcmFnZSA9IGZ1bmN0aW9uKGV2ZW50KQot
ICAgIHsKLSAgICAgICAgbG9nKCJUaGUgb25zdG9yYWdlIHByb3BlcnR5IHdvcmtzIHdoZW4gYSBz
dG9yYWdlIGV2ZW50IGlzIGZpcmVkLiIpOwotICAgIH0KLSAgICAKLSAgICB3aW5kb3cubG9jYWxT
dG9yYWdlWyJ0ZXN0Il0gPSAidGVzdCI7Ci19Ci0KIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAg
IGlmICgic2Vzc2lvblN0b3JhZ2UiIGluIHdpbmRvdykgewpAQCAtNTQsMTAgKzQ0LDkgQEAgZnVu
Y3Rpb24gcnVuVGVzdCgpCiAgICAgfSBlbHNlCiAgICAgICAgIGxvZygid2luZG93LmxvY2FsU3Rv
cmFnZSBET0VTIE5PVCBleGlzdCIpOwogCi0gICAgaWYgKCJvbnN0b3JhZ2UiIGluIHdpbmRvdykg
eworICAgIGlmICgib25zdG9yYWdlIiBpbiB3aW5kb3cpCiAgICAgICAgIGxvZygid2luZG93Lm9u
c3RvcmFnZSBleGlzdHMiKTsKLSAgICAgICAgdGVzdE9uc3RvcmFnZSgpOwotICAgIH0gZWxzZQor
ICAgIGVsc2UKICAgICAgICAgbG9nKCJ3aW5kb3cub25zdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7
CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9ldmVudHMvYmFzaWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsOTggQEAKK1RoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBET00gU3RvcmFn
ZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZl
bnQgbGlzdGVuZXIgY29ycmVzcG9uZGluZyB0byB3aW5kb3cub25zdG9yYWdlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdGluZyBzZXNzaW9uU3RvcmFnZQorc3RvcmFnZS5j
bGVhcigpCitQQVNTIHN0b3JhZ2UubGVuZ3RoIGlzIDAKK1Jlc2V0IHN0b3JhZ2UgZXZlbnQgbGlz
dAorc3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgpCitzdG9yYWdlLnNldEl0ZW0oJ0ZPTycs
ICdCQVInKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHN0b3JhZ2VF
dmVudExpc3RbMF0ua2V5IGlzICJGT08iCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ub2xkVmFs
dWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLm5ld1ZhbHVlIGlzICJCQVIiCitz
dG9yYWdlLnNldEl0ZW0oJ0ZVJywgJ0JBUicpCitzdG9yYWdlLnNldEl0ZW0oJ2EnLCAnMScpCitz
dG9yYWdlLnNldEl0ZW0oJ2InLCAnMicpCitzdG9yYWdlLnNldEl0ZW0oJ2InLCAnMycpCitQQVNT
IHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDUKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5r
ZXkgaXMgIkZVIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLm9sZFZhbHVlIGlzIG51bGwKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5uZXdWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0WzJdLmtleSBpcyAiYSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5vbGRWYWx1ZSBp
cyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ubmV3VmFsdWUgaXMgIjEiCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbM10ua2V5IGlzICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLm9s
ZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5uZXdWYWx1ZSBpcyAiMiIK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5rZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExp
c3RbNF0ub2xkVmFsdWUgaXMgIjIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNF0ubmV3VmFsdWUg
aXMgIjMiCitzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZPTycpCitQQVNTIHN0b3JhZ2VFdmVudExpc3Qu
bGVuZ3RoIGlzIDYKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1XS5rZXkgaXMgIkZPTyIKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdFs1XS5vbGRWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzVdLm5ld1ZhbHVlIGlzIG51bGwKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRlUnKQorUEFTUyBz
dG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA3CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ua2V5
IGlzICJGVSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5vbGRWYWx1ZSBpcyAiQkFSIgorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzZdLm5ld1ZhbHVlIGlzIG51bGwKK3N0b3JhZ2UuY2xlYXIoKQor
UEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA4CitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
N10ua2V5IGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1ZSBpcyBudWxs
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbN10ubmV3VmFsdWUgaXMgbnVsbAorCisKK1Rlc3Rpbmcg
bG9jYWxTdG9yYWdlCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAor
UmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkK
K3N0b3JhZ2Uuc2V0SXRlbSgnRk9PJywgJ0JBUicpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVu
Z3RoIGlzIDEKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5rZXkgaXMgIkZPTyIKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFswXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
MF0ubmV3VmFsdWUgaXMgIkJBUiIKK3N0b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykKK3N0b3Jh
Z2Uuc2V0SXRlbSgnYScsICcxJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICcyJykKK3N0b3JhZ2Uu
c2V0SXRlbSgnYicsICczJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNQorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzFdLmtleSBpcyAiRlUiCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
MV0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLm5ld1ZhbHVlIGlz
ICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ua2V5IGlzICJhIgorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzJdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5u
ZXdWYWx1ZSBpcyAiMSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5rZXkgaXMgImIiCitQQVNT
IHN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzNdLm5ld1ZhbHVlIGlzICIyIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLmtleSBpcyAi
YiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5vbGRWYWx1ZSBpcyAiMiIKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSBpcyAiMyIKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRk9PJykK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0
WzVdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLm9sZFZhbHVlIGlzICJC
QVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5y
ZW1vdmVJdGVtKCdGVScpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDcKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkgaXMgIkZVIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZd
Lm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFsdWUgaXMg
bnVsbAorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDgK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5rZXkgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzddLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5uZXdWYWx1
ZSBpcyBudWxsCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9i
YXNpYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9l
dmVudHMvYmFzaWMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9ldmVudHMvYmFzaWMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudFRlc3RIYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmFzaWMuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9jYXNlLXNlbnNpdGl2ZS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
ZXZlbnRzL2Nhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzOCBAQAorVGVzdCBzb21lIGNvcm5lciBjYXNlIERPTSBTdG9yYWdlIHZhbHVlcy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3Rpbmcgc2Vzc2lvblN0b3JhZ2UKK3N0b3Jh
Z2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCisKK1ZlcmlmeSBzdG9yYWdlIGV2
ZW50cyBhcmUgY2FzZSBzZW5zaXRpdmUKK3N0b3JhZ2UuZm9vID0gJ3Rlc3QnCitSZXNldCBzdG9y
YWdlIGV2ZW50IGxpc3QKK3N0b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKQorc3RvcmFnZS5m
b28gPSAndGVzdCcKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMAorc3RvcmFnZS5m
b28gPSAnVEVTVCcKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMQorCisKK1Rlc3Rp
bmcgbG9jYWxTdG9yYWdlCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMg
MAorCitWZXJpZnkgc3RvcmFnZSBldmVudHMgYXJlIGNhc2Ugc2Vuc2l0aXZlCitzdG9yYWdlLmZv
byA9ICd0ZXN0JworUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0g
bmV3IEFycmF5KCkKK3N0b3JhZ2UuZm9vID0gJ3Rlc3QnCitQQVNTIHN0b3JhZ2VFdmVudExpc3Qu
bGVuZ3RoIGlzIDAKK3N0b3JhZ2UuZm9vID0gJ1RFU1QnCitQQVNTIHN0b3JhZ2VFdmVudExpc3Qu
bGVuZ3RoIGlzIDEKKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKworCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRz
L2Nhc2Utc2Vuc2l0aXZlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9jYXNlLXNlbnNpdGl2ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9jYXNlLXNlbnNpdGl2ZS5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2V2ZW50VGVzdEhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9jYXNlLXNlbnNpdGl2ZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2RvY3Vt
ZW50VVJJLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvZXZlbnRzL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvZG9jdW1lbnRVUkktZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACitUZXN0IHRoYXQgY2hhbmdpbmcg
ZG9jdW1lbnRVUkkgaGFzIG5vIGVmZmVjdHMgb24gc3RvcmFnZSBldmVudHMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nIHNlc3Npb25TdG9yYWdlCitzdG9yYWdlLmNs
ZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAorUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0
CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2UuZm9vID0gJzEyMycKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMQorU2F2aW5nIFVSSQorZG9jdW1lbnQuZG9j
dW1lbnRVUkkgPSAnYWJjJworUEFTUyBkb2N1bWVudC5kb2N1bWVudFVSSSBpcyAiYWJjIgorc3Rv
cmFnZS5mb28gPSAneHl6JworUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAyCitQQVNT
IHRydWUgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgbG9jYWxTdG9yYWdlCitzdG9yYWdlLmNsZWFyKCkK
K1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAorUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9y
YWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2UuZm9vID0gJzEyMycKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMQorU2F2aW5nIFVSSQorZG9jdW1lbnQuZG9jdW1lbnRV
UkkgPSAnYWJjJworUEFTUyBkb2N1bWVudC5kb2N1bWVudFVSSSBpcyAiYWJjIgorc3RvcmFnZS5m
b28gPSAneHl6JworUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAyCitQQVNTIHRydWUg
aXMgdHJ1ZQorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCisKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvZG9j
dW1lbnRVUkkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvZXZlbnRzL2RvY3VtZW50VVJJLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2RvY3VtZW50VVJJLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZXZlbnRUZXN0SGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2RvY3VtZW50VVJJLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2V2ZW50VGVzdEhh
cm5lc3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2
ZW50cy9yZXNvdXJjZXMvZXZlbnRUZXN0SGFybmVzcy5qcwkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2V2ZW50VGVzdEhhcm5l
c3MuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZnJhbWUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJJRlJBTUUiKTsKK2lmcmFtZS5zcmMgPSAiYWJvdXQ6Ymxh
bmsiOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworaWZyYW1lLmNvbnRlbnRX
aW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSAiTm90aGluZyB0byBzZWUgaGVyZS4iOwor
CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCk7CitpZnJhbWUuY29udGVudFdpbmRvdy5v
bnN0b3JhZ2UgPSBmdW5jdGlvbiAoZSkgeworICAgIHdpbmRvdy5wYXJlbnQuc3RvcmFnZUV2ZW50
TGlzdC5wdXNoKGUpOworfQorCitmdW5jdGlvbiBydW5BZnRlclN0b3JhZ2VFdmVudHMoY2FsbGJh
Y2spIHsKKyAgICB2YXIgY3VycmVudENvdW50ID0gc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGg7Cisg
ICAgZnVuY3Rpb24gb25UaW1lb3V0KCkgeworICAgICAgICBpZiAoY3VycmVudENvdW50ICE9IHN0
b3JhZ2VFdmVudExpc3QubGVuZ3RoKQorICAgICAgICAgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRz
KGNhbGxiYWNrKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9
CisgICAgc2V0VGltZW91dChvblRpbWVvdXQsIDApOworfQorCitmdW5jdGlvbiB0ZXN0U3RvcmFn
ZXModGVzdENhbGxiYWNrKQoreworICAgIC8vIFdoZW4gd2UncmUgZG9uZSB0ZXN0aW5nIExvY2Fs
U3RvcmFnZSwgdGhpcyBpcyBydW4uCisgICAgZnVuY3Rpb24gYWxsRG9uZSgpCisgICAgeworICAg
ICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgd2luZG93LnN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Cisg
ICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQorICAgIH0K
KworICAgIC8vIFdoZW4gd2UncmUgZG9uZSB0ZXN0aW5nIHdpdGggU2Vzc2lvblN0b3JhZ2UsIHRo
aXMgaXMgcnVuLgorICAgIGZ1bmN0aW9uIHJ1bkxvY2FsU3RvcmFnZSgpCisgICAgeworICAgICAg
ICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgdGVzdENhbGxiYWNrKCJs
b2NhbFN0b3JhZ2UiLCBhbGxEb25lKTsKKyAgICB9CisKKyAgICAvLyBGaXJzdCBydW4gdGhlIHRl
c3Qgd2l0aCBTZXNzaW9uU3RvcmFnZS4KKyAgICB0ZXN0Q2FsbGJhY2soInNlc3Npb25TdG9yYWdl
IiwgcnVuTG9jYWxTdG9yYWdlKTsKK30KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvVEVNUExBVEUu
aHRtbAkocmV2aXNpb24gNTMyMzIpCShmcm9tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbDo1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qt
ZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNf
RklMRV9IRVJFIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQt
dGVzdHMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTIgKzEsMTMgQEAKIDxodG1sPgogPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1
bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24u
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
IDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudFRl
c3RIYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy5qcwko
cmV2aXNpb24gNTMyMzIpCShmcm9tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNz
aW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sOjUzMjMyKQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFz
aWMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY2xlYXJTZXNzaW9uU3RvcmFnZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKGEpCit7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCArPSBhICsgIjxicj4iOwor
fQorCitmdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoKQoreworICAgIGlmICghd2luZG93LmV2
ZW50KSB7CisgICAgICAgIGxvZygiR2xvYmFsIGV2ZW50IG5vdCBhdmFpbGFibGUuIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgbG9nKCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIp
OworICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBldmVudC5rZXkpOworICAgIGxvZygiTmV3
IFZhbHVlICAgICAtICIgKyBldmVudC5uZXdWYWx1ZSk7CisgICAgbG9nKCJPbGQgVmFsdWUgICAg
IC0gIiArIGV2ZW50Lm9sZFZhbHVlKTsKKyAgICBsb2coIiIpOworfQorCitmdW5jdGlvbiBydW5U
ZXN0KCkKK3sKKyAgICBpZiAoIXdpbmRvdy5zZXNzaW9uU3RvcmFnZSkgeworICAgICAgICBsb2co
IndpbmRvdy5zZXNzaW9uU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJvbnN0b3JhZ2Ui
LCAiaGFuZGxlU3RvcmFnZUV2ZW50KCk7Iik7CisgICAgCisgICAgd2luZG93LnNlc3Npb25TdG9y
YWdlLnNldEl0ZW0oIkZPTyIsICJCQVIiKTsKKyAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0
SXRlbSgiRlUiLCAiQkFSIik7CisgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0o
IkZPTyIpOworICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGVSIpOworfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitUaGlzIGlz
IGEgdGVzdCB0byBtYWtlIHN1cmUgU2Vzc2lvblN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFn
ZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRp
bmcgdG8gYm9keS5vbnN0b3JhZ2UuICBUaGUgZXZlbnQgbGlzdGVuZXIgaXMgc2V0dXAgdmlhIGJv
ZHkuc2V0QXR0cmlidXRlKCkuPGJyPgorPGRpdiBpZD0ibG9nZ2VyIj48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2Ny
aXB0LXRlc3RzL2Jhc2ljLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNDkgKzEsOTcgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3JhZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgRE9NIFN0b3JhZ2Ug
bXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50
IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gd2luZG93Lm9uc3RvcmFnZS4iKTsKIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CitmdW5jdGlvbiB0ZXN0KHN0b3JhZ2VTdHJpbmcsIGNhbGxiYWNrKQoreworICAg
IHdpbmRvdy5jb21wbGV0aW9uQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICB3aW5kb3cuc3RvcmFn
ZSA9IGV2YWwoc3RvcmFnZVN0cmluZyk7CisgICAgaWYgKCFzdG9yYWdlKSB7CisgICAgICAgIHRl
c3RGYWlsZWQoc3RvcmFnZVN0cmluZyArICIgRE9FUyBOT1QgZXhpc3QiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGRlYnVnKCJUZXN0aW5nICIgKyBzdG9yYWdlU3RyaW5nKTsKKwor
ICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuY2xlYXIoKSIpOworICAgIHNob3VsZEJlKCJzdG9yYWdl
Lmxlbmd0aCIsICIwIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDEpOworfQog
Ci1mdW5jdGlvbiBsb2coYSkKK2Z1bmN0aW9uIHN0ZXAxKCkKIHsKLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7CisgICAgZGVidWco
IlJlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdCIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2VFdmVu
dExpc3QgPSBuZXcgQXJyYXkoKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgn
Rk9PJywgJ0JBUicpIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDIpOwogfQog
Ci1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoKQorZnVuY3Rpb24gc3RlcDIoKQogewotICAg
IGlmICghd2luZG93LmV2ZW50KSB7Ci0gICAgICAgIGxvZygiR2xvYmFsIGV2ZW50IG5vdCBhdmFp
bGFibGUuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgbG9nKCJTdG9yYWdl
IGV2ZW50IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBldmVudC5rZXkp
OwotICAgIGxvZygiTmV3IFZhbHVlICAgICAtICIgKyBldmVudC5uZXdWYWx1ZSk7Ci0gICAgbG9n
KCJPbGQgVmFsdWUgICAgIC0gIiArIGV2ZW50Lm9sZFZhbHVlKTsKLSAgICBsb2coIiIpOworICAg
IHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICIxIik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzBdLmtleSIsICJGT08iKTsKKyAgICBzaG91
bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbMF0ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMF0ubmV3VmFsdWUiLCAiQkFSIik7CisgICAg
ZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdGVScsICdCQVInKSIpOworICAgIGV2YWxBbmRM
b2coInN0b3JhZ2Uuc2V0SXRlbSgnYScsICcxJykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdl
LnNldEl0ZW0oJ2InLCAnMicpIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdi
JywgJzMnKSIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAzKTsKIH0KIAotZnVu
Y3Rpb24gcnVuVGVzdCgpCitmdW5jdGlvbiBzdGVwMygpCiB7Ci0gICAgaWYgKCF3aW5kb3cuc2Vz
c2lvblN0b3JhZ2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgRE9FUyBO
T1QgZXhpc3QiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBkb2N1bWVudC5i
b2R5LnNldEF0dHJpYnV0ZSgib25zdG9yYWdlIiwgImhhbmRsZVN0b3JhZ2VFdmVudCgpOyIpOwot
ICAgIAotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFSIik7Ci0g
ICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJBUiIpOwotICAgIHdpbmRv
dy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0
b3JhZ2UucmVtb3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25T
dG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRo
ZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiAgVGhlIGV2
ZW50IGxpc3RlbmVyIGlzIHNldHVwIHZpYSBib2R5LnNldEF0dHJpYnV0ZSgpLjxicj4KLTxkaXYg
aWQ9ImxvZ2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CisgICAgc2hvdWxkQmUoInN0b3Jh
Z2VFdmVudExpc3QubGVuZ3RoIiwgIjUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0
b3JhZ2VFdmVudExpc3RbMV0ua2V5IiwgIkZVIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdl
RXZlbnRMaXN0WzFdLm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9y
YWdlRXZlbnRMaXN0WzFdLm5ld1ZhbHVlIiwgIkJBUiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygic3RvcmFnZUV2ZW50TGlzdFsyXS5rZXkiLCAiYSIpOworICAgIHNob3VsZEJlTnVsbCgi
c3RvcmFnZUV2ZW50TGlzdFsyXS5vbGRWYWx1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygic3RvcmFnZUV2ZW50TGlzdFsyXS5uZXdWYWx1ZSIsICIxIik7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzNdLmtleSIsICJiIik7CisgICAgc2hvdWxkQmVO
dWxsKCJzdG9yYWdlRXZlbnRMaXN0WzNdLm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzNdLm5ld1ZhbHVlIiwgIjIiKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNF0ua2V5IiwgImIiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNF0ub2xkVmFsdWUiLCAiMiIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSIs
ICIzIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5yZW1vdmVJdGVtKCdGT08nKSIpOworCisg
ICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXA0KTsKK30KKworZnVuY3Rpb24gc3RlcDQoKQor
eworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICI2Iik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzVdLmtleSIsICJGT08iKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNV0ub2xkVmFsdWUiLCAi
QkFSIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzVdLm5ld1ZhbHVlIik7
CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5yZW1vdmVJdGVtKCdGVScpIik7CisKKyAgICBydW5B
ZnRlclN0b3JhZ2VFdmVudHMoc3RlcDUpOworfQorCitmdW5jdGlvbiBzdGVwNSgpCit7CisgICAg
c2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjciKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNl0ua2V5IiwgIkZVIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzZdLm9sZFZhbHVlIiwgIkJBUiIpOwor
ICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFs2XS5uZXdWYWx1ZSIpOworICAgIGV2
YWxBbmRMb2coInN0b3JhZ2UuY2xlYXIoKSIpOworIAorICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50
cyhzdGVwNik7Cit9CisKK2Z1bmN0aW9uIHN0ZXA2KCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFn
ZUV2ZW50TGlzdC5sZW5ndGgiLCAiOCIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50
TGlzdFs3XS5rZXkiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbN10ub2xk
VmFsdWUiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbN10ubmV3VmFsdWUi
KTsKKyAKKyAgICBjb21wbGV0aW9uQ2FsbGJhY2soKTsKK30KKwordGVzdFN0b3JhZ2VzKHRlc3Qp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Nhc2Utc2Vuc2l0aXZlLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0
LXRlc3RzL2Nhc2Utc2Vuc2l0aXZlLmpzCShyZXZpc2lvbiA1MzIzMikJKGZyb20gTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9jb21wbGV4LXZhbHVlcy5qczo1MzIz
MikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3Rz
L2Nhc2Utc2Vuc2l0aXZlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTkgQEAKK2Rlc2Ny
aXB0aW9uKCJUZXN0IHNvbWUgY29ybmVyIGNhc2UgRE9NIFN0b3JhZ2UgdmFsdWVzLiIpOworCitl
dmVudENvdW50ZXIgPSAwOworZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KCkgeworICAgIGV2
ZW50Q291bnRlcisrOworfQorCitmdW5jdGlvbiB0ZXN0S2V5VmFsdWUoa2V5LCB2YWx1ZSkKK3sK
KyAgICBrZXlTdHJpbmcgPSAic3RvcmFnZVsnIiArIGtleSArICInXSI7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ0eXBlb2YgIiArIGtleVN0cmluZywgInN0cmluZyIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZyhrZXlTdHJpbmcsIHZhbHVlKTsKKworICAgIGtleVN0cmluZyA9ICJz
dG9yYWdlLiIgKyBrZXk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgIiArIGtl
eVN0cmluZywgInN0cmluZyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhrZXlTdHJpbmcs
IHZhbHVlKTsKKworICAgIGtleVN0cmluZyA9ICJzdG9yYWdlLmdldEl0ZW0oJyIgKyBrZXkgKyAi
JykiOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mICIgKyBrZXlTdHJpbmcsICJz
dHJpbmciKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoa2V5U3RyaW5nLCB2YWx1ZSk7Cit9
CisKK2Z1bmN0aW9uIHRlc3Qoc3RvcmFnZVN0cmluZykKK3sKKyAgICBzdG9yYWdlID0gZXZhbChz
dG9yYWdlU3RyaW5nKTsKKyAgICBpZiAoIXN0b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZhaWxlZChz
dG9yYWdlU3RyaW5nICsgIiBET0VTIE5PVCBleGlzdCIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgZGVidWcoIlRlc3RpbmcgIiArIHN0b3JhZ2VTdHJpbmcpOworCisgICAgZXZhbEFu
ZExvZygic3RvcmFnZS5jbGVhcigpIik7CisgICAgc2hvdWxkQmUoInN0b3JhZ2UubGVuZ3RoIiwg
IjAiKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVv
ZiBzdG9yYWdlWydmb28nXSIsICJ1bmRlZmluZWQiKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgi
c3RvcmFnZVsnZm9vJ10iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBzdG9y
YWdlLmZvbyIsICJ1bmRlZmluZWQiKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgic3RvcmFnZS5m
b28iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBzdG9yYWdlLmdldEl0ZW0o
J2ZvbycpIiwgIm9iamVjdCIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZS5nZXRJdGVtKCdm
b28nKSIpOworCisgICAgZGVidWcoIiIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vMSA9
IG51bGwiKTsKKyAgICB0ZXN0S2V5VmFsdWUoImZvbzEiLCAibnVsbCIpOworICAgIGV2YWxBbmRM
b2coInN0b3JhZ2VbJ2ZvbzInXSA9IG51bGwiKTsKKyAgICB0ZXN0S2V5VmFsdWUoImZvbzIiLCAi
bnVsbCIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnZm9vMycsIG51bGwpIik7
CisgICAgdGVzdEtleVZhbHVlKCJmb28zIiwgIm51bGwiKTsKKworICAgIGRlYnVnKCIiKTsKKyAg
ICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbzQgPSB1bmRlZmluZWQiKTsKKyAgICB0ZXN0S2V5VmFs
dWUoImZvbzQiLCAidW5kZWZpbmVkIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZVsnZm9vNSdd
ID0gdW5kZWZpbmVkIik7CisgICAgdGVzdEtleVZhbHVlKCJmb281IiwgInVuZGVmaW5lZCIpOwor
ICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnZm9vNicsIHVuZGVmaW5lZCkiKTsKKyAg
ICB0ZXN0S2V5VmFsdWUoImZvbzYiLCAidW5kZWZpbmVkIik7CisKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZXZhbEFuZExvZygic3RvcmFnZS5mb283ID0gMiIpOworICAgIHRlc3RLZXlWYWx1ZSgiZm9v
NyIsICIyIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZVsnZm9vOCddID0gMiIpOworICAgIHRl
c3RLZXlWYWx1ZSgiZm9vOCIsICIyIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVt
KCdmb285JywgMikiKTsKKyAgICB0ZXN0S2V5VmFsdWUoImZvbzkiLCAiMiIpOworCisgICAgZGVi
dWcoIiIpOworICAgIGsgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NTQyNSkgKyBTdHJpbmcuZnJv
bUNoYXJDb2RlKDI1NSkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NTQyNTIzMjEpICsgU3RyaW5n
LmZyb21DaGFyQ29kZSgwKSArICdoZWxsbyc7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28x
MCA9IGsiKTsKKyAgICB0ZXN0S2V5VmFsdWUoImZvbzEwIiwgayk7CisgICAgZXZhbEFuZExvZygi
c3RvcmFnZVsnZm9vMTEnXSA9IGsiKTsKKyAgICB0ZXN0S2V5VmFsdWUoImZvbzExIiwgayk7Cisg
ICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspIik7CisgICAgdGVzdEtl
eVZhbHVlKCJmb28xMiIsIGspOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJWZXJpZnkg
c3RvcmFnZSBldmVudHMgYXJlIGNhc2Ugc2Vuc2l0aXZlIik7CisgICAgZXZhbEFuZExvZygic3Rv
cmFnZS5mb28gPSAndGVzdCciKTsKKyAgICBkZWJ1ZygiU2V0dGluZyBldmVudCBsaXN0ZW5lciIp
OworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwgaGFuZGxlU3RvcmFnZUV2
ZW50LCBmYWxzZSk7CisgICAgc2hvdWxkQmUoImV2ZW50Q291bnRlciIsICIwIik7CisgICAgZXZh
bEFuZExvZygic3RvcmFnZS5mb28gPSAndGVzdCciKTsKKyAgICBzaG91bGRCZSgiZXZlbnRDb3Vu
dGVyIiwgIjAiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICdURVNUJyIpOworICAg
IHNob3VsZEJlKCJldmVudENvdW50ZXIiLCAiMSIpOworCisgICAgLy8gUmVzZXQgdGhlIGNvdW50
ZXIgZm9yIG5leHQgdGVzdHMgKGlmIGFueSkuCisgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoInN0b3JhZ2UiLCBoYW5kbGVTdG9yYWdlRXZlbnQsIGZhbHNlKTsKKyAgICBldmVudENvdW50
ZXIgPSAwOworfQorCit0ZXN0KCJzZXNzaW9uU3RvcmFnZSIpOworZGVidWcoIiIpOworZGVidWco
IiIpOwordGVzdCgibG9jYWxTdG9yYWdlIik7CisKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKSW5kZXg6IExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Nhc2Utc2Vuc2l0aXZlLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRl
c3RzL2Nhc2Utc2Vuc2l0aXZlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvY2FzZS1zZW5zaXRpdmUuanMJKHdvcmtp
bmcgY29weSkKQEAgLTEsMjggKzEsOSBAQAogZGVzY3JpcHRpb24oIlRlc3Qgc29tZSBjb3JuZXIg
Y2FzZSBET00gU3RvcmFnZSB2YWx1ZXMuIik7CiAKLWV2ZW50Q291bnRlciA9IDA7Ci1mdW5jdGlv
biBoYW5kbGVTdG9yYWdlRXZlbnQoKSB7Ci0gICAgZXZlbnRDb3VudGVyKys7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3RLZXlWYWx1ZShrZXksIHZhbHVlKQorZnVuY3Rpb24gdGVzdChzdG9yYWdlU3RyaW5n
LCBjYWxsYmFjaykKIHsKLSAgICBrZXlTdHJpbmcgPSAic3RvcmFnZVsnIiArIGtleSArICInXSI7
Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgIiArIGtleVN0cmluZywgInN0cmlu
ZyIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhrZXlTdHJpbmcsIHZhbHVlKTsKLQotICAg
IGtleVN0cmluZyA9ICJzdG9yYWdlLiIgKyBrZXk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ0eXBlb2YgIiArIGtleVN0cmluZywgInN0cmluZyIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZyhrZXlTdHJpbmcsIHZhbHVlKTsKLQotICAgIGtleVN0cmluZyA9ICJzdG9yYWdlLmdldEl0
ZW0oJyIgKyBrZXkgKyAiJykiOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mICIg
KyBrZXlTdHJpbmcsICJzdHJpbmciKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoa2V5U3Ry
aW5nLCB2YWx1ZSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qoc3RvcmFnZVN0cmluZykKLXsKLSAgICBz
dG9yYWdlID0gZXZhbChzdG9yYWdlU3RyaW5nKTsKKyAgICB3aW5kb3cuY29tcGxldGlvbkNhbGxi
YWNrID0gY2FsbGJhY2s7CisgICAgd2luZG93LnN0b3JhZ2UgPSBldmFsKHN0b3JhZ2VTdHJpbmcp
OwogICAgIGlmICghc3RvcmFnZSkgewogICAgICAgICB0ZXN0RmFpbGVkKHN0b3JhZ2VTdHJpbmcg
KyAiIERPRVMgTk9UIGV4aXN0Iik7CiAgICAgICAgIHJldHVybjsKQEAgLTM0LDY2ICsxNSwzNiBA
QCBmdW5jdGlvbiB0ZXN0KHN0b3JhZ2VTdHJpbmcpCiAgICAgc2hvdWxkQmUoInN0b3JhZ2UubGVu
Z3RoIiwgIjAiKTsKIAogICAgIGRlYnVnKCIiKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InR5cGVvZiBzdG9yYWdlWydmb28nXSIsICJ1bmRlZmluZWQiKTsKLSAgICBzaG91bGRCZVVuZGVm
aW5lZCgic3RvcmFnZVsnZm9vJ10iKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVv
ZiBzdG9yYWdlLmZvbyIsICJ1bmRlZmluZWQiKTsKLSAgICBzaG91bGRCZVVuZGVmaW5lZCgic3Rv
cmFnZS5mb28iKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBzdG9yYWdlLmdl
dEl0ZW0oJ2ZvbycpIiwgIm9iamVjdCIpOwotICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZS5nZXRJ
dGVtKCdmb28nKSIpOwotCi0gICAgZGVidWcoIiIpOwotICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uu
Zm9vMSA9IG51bGwiKTsKLSAgICB0ZXN0S2V5VmFsdWUoImZvbzEiLCAibnVsbCIpOwotICAgIGV2
YWxBbmRMb2coInN0b3JhZ2VbJ2ZvbzInXSA9IG51bGwiKTsKLSAgICB0ZXN0S2V5VmFsdWUoImZv
bzIiLCAibnVsbCIpOwotICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnZm9vMycsIG51
bGwpIik7Ci0gICAgdGVzdEtleVZhbHVlKCJmb28zIiwgIm51bGwiKTsKKyAgICBkZWJ1ZygiVmVy
aWZ5IHN0b3JhZ2UgZXZlbnRzIGFyZSBjYXNlIHNlbnNpdGl2ZSIpOworICAgIGV2YWxBbmRMb2co
InN0b3JhZ2UuZm9vID0gJ3Rlc3QnIik7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZXZhbEFuZExv
Zygic3RvcmFnZS5mb280ID0gdW5kZWZpbmVkIik7Ci0gICAgdGVzdEtleVZhbHVlKCJmb280Iiwg
InVuZGVmaW5lZCIpOwotICAgIGV2YWxBbmRMb2coInN0b3JhZ2VbJ2ZvbzUnXSA9IHVuZGVmaW5l
ZCIpOwotICAgIHRlc3RLZXlWYWx1ZSgiZm9vNSIsICJ1bmRlZmluZWQiKTsKLSAgICBldmFsQW5k
TG9nKCJzdG9yYWdlLnNldEl0ZW0oJ2ZvbzYnLCB1bmRlZmluZWQpIik7Ci0gICAgdGVzdEtleVZh
bHVlKCJmb282IiwgInVuZGVmaW5lZCIpOworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVw
MSk7Cit9CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZXZhbEFuZExvZygic3RvcmFnZS5mb283ID0g
MiIpOwotICAgIHRlc3RLZXlWYWx1ZSgiZm9vNyIsICIyIik7Ci0gICAgZXZhbEFuZExvZygic3Rv
cmFnZVsnZm9vOCddID0gMiIpOwotICAgIHRlc3RLZXlWYWx1ZSgiZm9vOCIsICIyIik7Ci0gICAg
ZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdmb285JywgMikiKTsKLSAgICB0ZXN0S2V5VmFs
dWUoImZvbzkiLCAiMiIpOworZnVuY3Rpb24gc3RlcDEoKQoreworICAgIGRlYnVnKCJSZXNldCBz
dG9yYWdlIGV2ZW50IGxpc3QiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlRXZlbnRMaXN0ID0g
bmV3IEFycmF5KCkiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICd0ZXN0JyIpOwog
Ci0gICAgZGVidWcoIiIpOwotICAgIGsgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NTQyNSkgKyBT
dHJpbmcuZnJvbUNoYXJDb2RlKDI1NSkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NTQyNTIzMjEp
ICsgU3RyaW5nLmZyb21DaGFyQ29kZSgwKSArICdoZWxsbyc7Ci0gICAgZXZhbEFuZExvZygic3Rv
cmFnZS5mb28xMCA9IGsiKTsKLSAgICB0ZXN0S2V5VmFsdWUoImZvbzEwIiwgayk7Ci0gICAgZXZh
bEFuZExvZygic3RvcmFnZVsnZm9vMTEnXSA9IGsiKTsKLSAgICB0ZXN0S2V5VmFsdWUoImZvbzEx
Iiwgayk7Ci0gICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspIik7Ci0g
ICAgdGVzdEtleVZhbHVlKCJmb28xMiIsIGspOworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhz
dGVwMik7Cit9CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlZlcmlmeSBzdG9yYWdlIGV2
ZW50cyBhcmUgY2FzZSBzZW5zaXRpdmUiKTsKLSAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9
ICd0ZXN0JyIpOwotICAgIGRlYnVnKCJTZXR0aW5nIGV2ZW50IGxpc3RlbmVyIik7Ci0gICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCBoYW5kbGVTdG9yYWdlRXZlbnQsIGZhbHNl
KTsKLSAgICBzaG91bGRCZSgiZXZlbnRDb3VudGVyIiwgIjAiKTsKLSAgICBldmFsQW5kTG9nKCJz
dG9yYWdlLmZvbyA9ICd0ZXN0JyIpOwotICAgIHNob3VsZEJlKCJldmVudENvdW50ZXIiLCAiMCIp
OworZnVuY3Rpb24gc3RlcDIoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxl
bmd0aCIsICIwIik7CiAgICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28gPSAnVEVTVCciKTsKLSAg
ICBzaG91bGRCZSgiZXZlbnRDb3VudGVyIiwgIjEiKTsKIAotICAgIC8vIFJlc2V0IHRoZSBjb3Vu
dGVyIGZvciBuZXh0IHRlc3RzIChpZiBhbnkpLgotICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3Rl
bmVyKCJzdG9yYWdlIiwgaGFuZGxlU3RvcmFnZUV2ZW50LCBmYWxzZSk7Ci0gICAgZXZlbnRDb3Vu
dGVyID0gMDsKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDMpOworfQorCitmdW5jdGlv
biBzdGVwMygpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjEi
KTsKKworICAgIGNvbXBsZXRpb25DYWxsYmFjaygpOwogfQogCi10ZXN0KCJzZXNzaW9uU3RvcmFn
ZSIpOwotZGVidWcoIiIpOwotZGVidWcoIiIpOwotdGVzdCgibG9jYWxTdG9yYWdlIik7Cit0ZXN0
U3RvcmFnZXModGVzdCk7CiAKLXdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotaXNT
dWNjZXNzZnVsbHlQYXJzZWQoKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRl
eDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvZG9j
dW1lbnRVUkkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2V2ZW50cy9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHJldmlzaW9uIDUzMjMyKQkoZnJv
bSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJ
LmpzOjUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3Jp
cHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAor
ZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBjaGFuZ2luZyBkb2N1bWVudFVSSSBoYXMgbm8gZWZmZWN0
cyBvbiBzdG9yYWdlIGV2ZW50cy4iKTsKKworZnVuY3Rpb24gdGVzdChzdG9yYWdlU3RyaW5nKQor
eworICAgIHdpbmRvdy5zdG9yYWdlID0gZXZhbChzdG9yYWdlU3RyaW5nKTsKKyAgICBpZiAoIXN0
b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZhaWxlZChzdG9yYWdlU3RyaW5nICsgIiBET0VTIE5PVCBl
eGlzdCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGVidWcoIlRlc3RpbmcgIiAr
IHN0b3JhZ2VTdHJpbmcpOworCisgICAgd2luZG93Lm9uc3RvcmFnZSA9IG51bGw7CisgICAgZXZh
bEFuZExvZygic3RvcmFnZS5jbGVhcigpIik7CisgICAgc2hvdWxkQmUoInN0b3JhZ2UubGVuZ3Ro
IiwgIjAiKTsKKworICAgIGV2YWxBbmRMb2coIndpbmRvdy5vbnN0b3JhZ2UgPSBmaXJzdEV2ZW50
Iik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28gPSAnMTIzJyIpOworfQorCitmdW5jdGlv
biBmaXJzdEV2ZW50KGUpCit7CisgICAgZGVidWcoIkZpcnN0IGV2ZW50IGZpcmVkIik7CisgICAg
ZGVidWcoIlNhdmluZyBVUkkiKTsKKyAgICB3aW5kb3cubGFzdFVSSSA9IGUudXJpOworCisgICAg
ZXZhbEFuZExvZygiZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnYWJjJyIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZG9jdW1lbnRVUkkiLCAiYWJjIik7CisKKyAgICBldmFs
QW5kTG9nKCJ3aW5kb3cub25zdG9yYWdlID0gc2Vjb25kRXZlbnQiKTsKKyAgICBldmFsQW5kTG9n
KCJzdG9yYWdlLmZvbyA9ICd4eXonIik7Cit9CisKK2Z1bmN0aW9uIHNlY29uZEV2ZW50KGUpCit7
CisgICAgZGVidWcoIlNlY29uZCBldmVudCBmaXJlZCIpOworICAgIHNob3VsZEJlVHJ1ZShTdHJp
bmcod2luZG93Lmxhc3RVUkkgPT0gZS51cmkpKTsKKworICAgIGlmIChkb25lKSB7CisgICAgICAg
IHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICBpc1N1Y2Nlc3NmdWxs
eVBhcnNlZCgpOworICAgIH0KK30KKword2luZG93LmRvbmUgPSBmYWxzZTsKK3Rlc3QoInNlc3Np
b25TdG9yYWdlIik7CitkZWJ1ZygiIik7CitkZWJ1ZygiIik7Cit3aW5kb3cuZG9uZSA9IHRydWU7
Cit0ZXN0KCJsb2NhbFN0b3JhZ2UiKTsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2RvY3VtZW50
VVJJLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2
ZW50cy9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNyAr
MSw4IEBACiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGNoYW5naW5nIGRvY3VtZW50VVJJIGhhcyBu
byBlZmZlY3RzIG9uIHN0b3JhZ2UgZXZlbnRzLiIpOwogCi1mdW5jdGlvbiB0ZXN0KHN0b3JhZ2VT
dHJpbmcpCitmdW5jdGlvbiB0ZXN0KHN0b3JhZ2VTdHJpbmcsIGNhbGxiYWNrKQogeworICAgIHdp
bmRvdy5jb21wbGV0aW9uQ2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICB3aW5kb3cuc3RvcmFnZSA9
IGV2YWwoc3RvcmFnZVN0cmluZyk7CiAgICAgaWYgKCFzdG9yYWdlKSB7CiAgICAgICAgIHRlc3RG
YWlsZWQoc3RvcmFnZVN0cmluZyArICIgRE9FUyBOT1QgZXhpc3QiKTsKQEAgLTEwLDQxICsxMSw0
MiBAQCBmdW5jdGlvbiB0ZXN0KHN0b3JhZ2VTdHJpbmcpCiAKICAgICBkZWJ1ZygiVGVzdGluZyAi
ICsgc3RvcmFnZVN0cmluZyk7CiAKLSAgICB3aW5kb3cub25zdG9yYWdlID0gbnVsbDsKICAgICBl
dmFsQW5kTG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsKICAgICBzaG91bGRCZSgic3RvcmFnZS5sZW5n
dGgiLCAiMCIpOwogCi0gICAgZXZhbEFuZExvZygid2luZG93Lm9uc3RvcmFnZSA9IGZpcnN0RXZl
bnQiKTsKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDEpOworfQorCitmdW5jdGlvbiBz
dGVwMSgpCit7CisgICAgZGVidWcoIlJlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdCIpOworICAgIGV2
YWxBbmRMb2coInN0b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKSIpOwogICAgIGV2YWxBbmRM
b2coInN0b3JhZ2UuZm9vID0gJzEyMyciKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhz
dGVwMik7CiB9CiAKLWZ1bmN0aW9uIGZpcnN0RXZlbnQoZSkKK2Z1bmN0aW9uIHN0ZXAyKCkKIHsK
LSAgICBkZWJ1ZygiRmlyc3QgZXZlbnQgZmlyZWQiKTsKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2
ZW50TGlzdC5sZW5ndGgiLCAiMSIpOwogICAgIGRlYnVnKCJTYXZpbmcgVVJJIik7Ci0gICAgd2lu
ZG93Lmxhc3RVUkkgPSBlLnVyaTsKKyAgICB3aW5kb3cubGFzdFVSSSA9IHN0b3JhZ2VFdmVudExp
c3RbMF0udXJpOwogCiAgICAgZXZhbEFuZExvZygiZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnYWJj
JyIpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZG9jdW1lbnRVUkkiLCAi
YWJjIik7Ci0KLSAgICBldmFsQW5kTG9nKCJ3aW5kb3cub25zdG9yYWdlID0gc2Vjb25kRXZlbnQi
KTsKICAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICd4eXonIik7CisKKyAgICBydW5BZnRl
clN0b3JhZ2VFdmVudHMoc3RlcDMpOwogfQogCi1mdW5jdGlvbiBzZWNvbmRFdmVudChlKQorZnVu
Y3Rpb24gc3RlcDMoKQogewotICAgIGRlYnVnKCJTZWNvbmQgZXZlbnQgZmlyZWQiKTsKLSAgICBz
aG91bGRCZVRydWUoU3RyaW5nKHdpbmRvdy5sYXN0VVJJID09IGUudXJpKSk7CisgICAgc2hvdWxk
QmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjIiKTsKKyAgICBzaG91bGRCZVRydWUoU3Ry
aW5nKHdpbmRvdy5sYXN0VVJJID09IHN0b3JhZ2VFdmVudExpc3RbMV0udXJpKSk7CiAKLSAgICBp
ZiAoZG9uZSkgewotICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLSAg
ICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICB9CisgICAgY29tcGxldGlvbkNhbGxi
YWNrKCk7CiB9CiAKLXdpbmRvdy5kb25lID0gZmFsc2U7Ci10ZXN0KCJzZXNzaW9uU3RvcmFnZSIp
OwotZGVidWcoIiIpOwotZGVidWcoIiIpOwotd2luZG93LmRvbmUgPSB0cnVlOwotdGVzdCgibG9j
YWxTdG9yYWdlIik7Cit0ZXN0U3RvcmFnZXModGVzdCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3Rv
cmFnZS9pZnJhbWUtZXZlbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsNzkgKzAsMCBAQAotVGhpcyBpcyB0aGUgbWFpbiBmcmFtZSBvZiBhIDItZnJhbWUgZG9jdW1l
bnQuIEVhY2ggZnJhbWUgaXMgaW4gdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFuZCB0aGVyZWZv
cmUgc2hhcmVzIHRoZSBzYW1lIGxvY2FsU3RvcmFnZSBvYmplY3QuIEFzIGEgcmVzdWx0LCBlYWNo
IGZyYW1lIHNob3VsZCByZWNlaXZlIGEgU3RvcmFnZUV2ZW50IHdoZW4gZWl0aGVyIGZyYW1lIGNo
YW5nZXMgdGhlIGxvY2FsU3RvcmFnZSBvYmplY3QuCi0KLU1haW4gZnJhbWUgYWJvdXQgdG8gcnVu
IHNldEl0ZW0gb24gbG9jYWxTdG9yYWdlLi4uCi1NYWluIEZyYW1lIHJlY2VpdmVkIFN0b3JhZ2VF
dmVudDoKLUtleSAtIE1haW4gRnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZhbHVlIC0gbnVs
bAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJh
bWUtZXZlbnRzLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2Fs
U3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0gTWFpbiBG
cmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAotU3Rv
cmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLVN1YmZyYW1l
IGFib3V0IHRvIGNoYW5nZSBsb2NhbFN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQgU3Rv
cmFnZUV2ZW50OgotS2V5IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZhbHVlIC0g
bnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9y
ZXNvdXJjZXMvaWZyYW1lLWV2ZW50cy1zZWNvbmQuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3
aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLVN1YmZyYW1lIHJlY2VpdmVkIHN0b3JhZ2Ug
ZXZlbnQ6Ci1LZXkgLSBTdWJmcmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBudWxs
Ci1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Jlc291
cmNlcy9pZnJhbWUtZXZlbnRzLXNlY29uZC5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRv
dydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UKLQotTWFpbiBmcmFtZSBhYm91dCB0byBydW4gcmVtb3Zl
SXRlbSBvbiBsb2NhbFN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQgU3RvcmFnZUV2ZW50
OgotS2V5IC0gTWFpbiBGcmFtZQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gU0VUCi1V
UkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1l
dmVudHMuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9y
YWdlCi0KLVN1YmZyYW1lIHJlY2VpdmVkIHN0b3JhZ2UgZXZlbnQ6Ci1LZXkgLSBNYWluIEZyYW1l
Ci1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBTRVQKLVVSSSAtIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdl
IEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UKLQotU3ViZnJhbWUgYWJv
dXQgdG8gY2hhbmdlIGxvY2FsU3RvcmFnZS4uLgotTWFpbiBmcmFtZSBhYm91dCB0byBjbGVhciBs
b2NhbFN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQgU3RvcmFnZUV2ZW50OgotS2V5IC0g
Ci1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAotU3RvcmFn
ZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLVN1YmZyYW1lIHJl
Y2VpdmVkIHN0b3JhZ2UgZXZlbnQ6Ci1LZXkgLSAKLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1
ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3Jh
Z2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRv
dy5sb2NhbFN0b3JhZ2UKLQotU3ViZnJhbWUgYWJvdXQgdG8gY2hhbmdlIGxvY2FsU3RvcmFnZS4u
LgotTWFpbiBGcmFtZSByZWNlaXZlZCBTdG9yYWdlRXZlbnQ6Ci1LZXkgLSBTdWJmcmFtZQotTmV3
IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Jlc291cmNlcy9pZnJhbWUtZXZlbnRzLXNlY29uZC5o
dG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UKLQot
U3ViZnJhbWUgcmVjZWl2ZWQgc3RvcmFnZSBldmVudDoKLUtleSAtIFN1YmZyYW1lCi1OZXcgVmFs
dWUgLSBTRVQKLU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2UvcmVzb3VyY2VzL2lmcmFtZS1ldmVudHMtc2Vjb25kLmh0bWwK
LVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3RvcmFnZQotCi0KSW5k
ZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaWZyYW1lLWV2
ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCShyZXZpc2lvbiA1MzIzMikKKysrIExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDY2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2NsZWFyTG9jYWxTdG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwotfQotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9uIG5v
cm1hbGl6ZVVSTCh1cmwpCi17Ci0gICAgcmV0dXJuIHVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRl
eE9mKCJMYXlvdXRUZXN0cyIpKTsKLX0KLQotZnVuY3Rpb24gZmluaXNoKCkKLXsKLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCkKLX0KLQotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KGUpCi17Ci0g
ICAgbG9nKCJNYWluIEZyYW1lIHJlY2VpdmVkIFN0b3JhZ2VFdmVudDoiKTsKLSAgICBsb2coIktl
eSAgICAgICAgICAgLSAiICsgZS5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAgICAtICIgKyBl
Lm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZS5vbGRWYWx1ZSk7Ci0g
ICAgbG9nKCJVUkkgICAgICAgICAgIC0gIiArIG5vcm1hbGl6ZVVSTChlLnVyaSkpOwotICAgIGxv
ZygiU3RvcmFnZSBBcmVhICAtICIgKyAoKGUuc3RvcmFnZUFyZWEgPT0gd2luZG93LmxvY2FsU3Rv
cmFnZSkgPyAiVGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlIiA6ICJBbm90aGVyIHdp
bmRvdydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UiKSk7Ci0gICAgbG9nKCIiKTsKLSAgICAKLSAgICBp
ZiAoZS5rZXkgPT0gIlN1YmZyYW1lIikKLSAgICAgICAgZmluaXNoKCk7Ci19Ci0KLWZ1bmN0aW9u
IHN0YXJ0VGVzdCgpCi17Ci0gICAgaWYgKCF3aW5kb3cubG9jYWxTdG9yYWdlKSB7Ci0gICAgICAg
IGxvZygid2luZG93LmxvY2FsU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwotICAgICAgICBmaW5p
c2goKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJzdG9yYWdlIiwgaGFuZGxlU3RvcmFnZUV2ZW50LCBmYWxzZSk7Ci0gICAgbG9nKCJNYWlu
IGZyYW1lIGFib3V0IHRvIHJ1biBzZXRJdGVtIG9uIGxvY2FsU3RvcmFnZS4uLiIpOwotICAgIGxv
Y2FsU3RvcmFnZS5zZXRJdGVtKCJNYWluIEZyYW1lIiwgIlNFVCIpOwotICAgIGxvZygiTWFpbiBm
cmFtZSBhYm91dCB0byBydW4gcmVtb3ZlSXRlbSBvbiBsb2NhbFN0b3JhZ2UuLi4iKTsKLSAgICBs
b2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiTWFpbiBGcmFtZSIpOwotICAgIGxvZygiTWFpbiBmcmFt
ZSBhYm91dCB0byBjbGVhciBsb2NhbFN0b3JhZ2UuLi4iKTsKLSAgICBsb2NhbFN0b3JhZ2UuY2xl
YXIoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgp
OyI+Ci1UaGlzIGlzIHRoZSBtYWluIGZyYW1lIG9mIGEgMi1mcmFtZSBkb2N1bWVudC4gIEVhY2gg
ZnJhbWUgaXMgaW4gdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFuZCB0aGVyZWZvcmUgc2hhcmVz
IHRoZSBzYW1lIGxvY2FsU3RvcmFnZSBvYmplY3QuCi1BcyBhIHJlc3VsdCwgZWFjaCBmcmFtZSBz
aG91bGQgcmVjZWl2ZSBhIFN0b3JhZ2VFdmVudCB3aGVuIGVpdGhlciBmcmFtZSBjaGFuZ2VzIHRo
ZSBsb2NhbFN0b3JhZ2Ugb2JqZWN0Ljxicj4KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1l
LWV2ZW50cy1zZWNvbmQuaHRtbCI+PC9pZnJhbWU+PGJyPgotPGRpdiBpZD0ibG9nZ2VyIj48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0
LWFuZC1zZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDU0ICsxLDI5IEBACiBUaGlzIGlzIGEgdGVzdCB0byBt
YWtlIHN1cmUgeW91IGNhbiBnZXQgYW5kIHNldCB2YWx1ZXMgaW4gbG9jYWxTdG9yYWdlIGJ5IGlu
ZGV4LgogU2V0dGluZyBGT08gdXNpbmcgdGhlIGluZGV4IHNldHRlci4KLVN0b3JhZ2UgZXZlbnQg
ZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCiBS
ZWFkaW5nIEZPTzoKIEJBUgogQkFSCiBCQVIKIAogU2V0dGluZyBGT08gYWdhaW4sIHVzaW5nIHNl
dEl0ZW0uCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVoK
LU9sZCBWYWx1ZSAtIEJBUgotCiBSZWFkaW5nIEZPTzoKIEJBWgogQkFaCiBCQVoKIAogU2V0dGlu
ZyBGT08gYWdhaW4sIHVzaW5nIHRoZSBpbmRleCBzZXR0ZXIuCi1TdG9yYWdlIGV2ZW50IGZpcmVk
OgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVQKLU9sZCBWYWx1ZSAtIEJBWgotCiBSZWFkaW5n
IEZPTzoKIEJBVAogQkFUCiBCQVQKIAogU2V0dGluZyBGT08gYWdhaW4sIHVzaW5nIHByb3BlcnR5
LXNsb3Qgc3ludGF4Ci1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUg
LSBCQVRNQU4KLU9sZCBWYWx1ZSAtIEJBVAotCiBSZWFkaW5nIEZPTzoKIEJBVE1BTgogQkFUTUFO
CiBCQVRNQU4KIAogUmVtb3ZpbmcgRk9PLCB0aGVuIHRyeWluZyB0byByZWFkIGl0Ci1TdG9yYWdl
IGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBC
QVRNQU4KLQogUmVhZGluZyBGT086CiB1bmRlZmluZWQKIHVuZGVmaW5lZApJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0
b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDE1ICsxOSw2IEBAIGZ1bmN0aW9uIGZpbmlzaCgpCiAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQogfQogCi1mdW5jdGlvbiBo
YW5kbGVTdG9yYWdlRXZlbnQoZSkKLXsKLSAgICBsb2coIlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7
Ci0gICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGUua2V5KTsKLSAgICBsb2coIk5ldyBWYWx1
ZSAgICAgLSAiICsgZS5uZXdWYWx1ZSk7Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiArIGUu
b2xkVmFsdWUpOwotICAgIGxvZygiIik7Ci19Ci0KIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAg
IGlmICghd2luZG93LmxvY2FsU3RvcmFnZSkgewpAQCAtMzYsOCArMjcsNiBAQCBmdW5jdGlvbiBy
dW5UZXN0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigic3RvcmFnZSIsIGhhbmRsZVN0b3JhZ2VFdmVudCwgZmFsc2UpOwotICAgIAog
ICAgIGxvZygiU2V0dGluZyBGT08gdXNpbmcgdGhlIGluZGV4IHNldHRlci4iKTsKICAgICBsb2Nh
bFN0b3JhZ2VbIkZPTyJdID0gIkJBUiI7CiAgICAgbG9nKCJSZWFkaW5nIEZPTzoiKTsKSW5kZXg6
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0
dHJpYnV0ZS1tYXJrdXAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0IHRvIG1h
a2Ugc3VyZSBsb2NhbFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFy
ZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gYm9keS5vbnN0
b3JhZ2UuIFRoZSBldmVudCBsaXN0ZW5lciBpcyBzZXR1cCBpbiB0aGUgYm9keSBlbGVtZW50J3Mg
bWFya3VwLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFS
Ci1PbGQgVmFsdWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3
IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1L
ZXkgLSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotCi1TdG9yYWdlIGV2
ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBUgot
Ci0KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25z
dG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3Vw
Lmh0bWwJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLW1hcmt1cC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQ3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NsZWFyTG9jYWxTdG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9uIGhhbmRs
ZVN0b3JhZ2VFdmVudCgpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnQpIHsKLSAgICAgICAgbG9n
KCJHbG9iYWwgZXZlbnQgbm90IGF2YWlsYWJsZS4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICAKLSAgICBsb2coIlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkgICAg
ICAgICAgIC0gIiArIGV2ZW50LmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGV2
ZW50Lm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZXZlbnQub2xkVmFs
dWUpOwotICAgIGxvZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICgh
d2luZG93LmxvY2FsU3RvcmFnZSkgewotICAgICAgICBsb2coIndpbmRvdy5sb2NhbFN0b3JhZ2Ug
RE9FUyBOT1QgZXhpc3QiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICB3aW5k
b3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oIkZPTyIsICJCQVIiKTsKLSAgICB3aW5kb3cubG9jYWxT
dG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJBUiIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVt
b3ZlSXRlbSgiRk9PIik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJGVSIp
OwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyIgb25z
dG9yYWdlPSJoYW5kbGVTdG9yYWdlRXZlbnQoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBz
dXJlIGxvY2FsU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNh
dWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9uZGluZyB0byBib2R5Lm9uc3RvcmFn
ZS4gIFRoZSBldmVudCBsaXN0ZW5lciBpcyBzZXR1cCBpbiB0aGUgYm9keSBlbGVtZW50J3MgbWFy
a3VwLjxicj4KLTxkaXYgaWQ9ImxvZ2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1h
dHRyaWJ1dGUtc2V0YXR0cmlidXRlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUt
c2V0YXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0
YXR0cmlidXRlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi1U
aGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgTG9jYWxTdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0
b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBjb3JyZXNw
b25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiBUaGUgZXZlbnQgbGlzdGVuZXIgaXMgc2V0dXAgdmlh
IGJvZHkuc2V0QXR0cmlidXRlKCkuCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1O
ZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLQotU3RvcmFnZSBldmVudCBmaXJlZDoK
LUtleSAtIEZVCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLQotU3RvcmFnZSBl
dmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFS
Ci0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gbnVsbAotT2xk
IFZhbHVlIC0gQkFSCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9y
YWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1
dGUtc2V0YXR0cmlidXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDkgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2xlYXJMb2NhbFN0b3JhZ2UuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0aW9uIGxvZyhh
KQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5lckhUTUwgKz0g
YSArICI8YnI+IjsKLX0KLQotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KCkKLXsKLSAgICBp
ZiAoIXdpbmRvdy5ldmVudCkgewotICAgICAgICBsb2coIkdsb2JhbCBldmVudCBub3QgYXZhaWxh
YmxlLiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGxvZygiU3RvcmFnZSBl
dmVudCBmaXJlZDoiKTsKLSAgICBsb2coIktleSAgICAgICAgICAgLSAiICsgZXZlbnQua2V5KTsK
LSAgICBsb2coIk5ldyBWYWx1ZSAgICAgLSAiICsgZXZlbnQubmV3VmFsdWUpOwotICAgIGxvZygi
T2xkIFZhbHVlICAgICAtICIgKyBldmVudC5vbGRWYWx1ZSk7Ci0gICAgbG9nKCIiKTsKLX0KLQot
ZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgaWYgKCF3aW5kb3cubG9jYWxTdG9yYWdlKSB7Ci0g
ICAgICAgIGxvZygid2luZG93LmxvY2FsU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJv
bnN0b3JhZ2UiLCAiaGFuZGxlU3RvcmFnZUV2ZW50KCk7Iik7Ci0gICAgCi0gICAgd2luZG93Lmxv
Y2FsU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFSIik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFn
ZS5zZXRJdGVtKCJGVSIsICJCQVIiKTsKLSAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0
ZW0oIkZPTyIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiRlUiKTsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgotVGhpcyBp
cyBhIHRlc3QgdG8gbWFrZSBzdXJlIExvY2FsU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdl
RXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9uZGlu
ZyB0byBib2R5Lm9uc3RvcmFnZS4gIFRoZSBldmVudCBsaXN0ZW5lciBpcyBzZXR1cCB2aWEgYm9k
eS5zZXRBdHRyaWJ1dGUoKS48YnI+Ci08ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldHdpbmRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2Ut
YXR0cmlidXRlLXNldHdpbmRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmli
dXRlLXNldHdpbmRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBA
QAotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIExvY2FsU3RvcmFnZSBtdXRhdGlvbnMgZmly
ZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29y
cmVzcG9uZGluZyB0byB3aW5kb3cub25zdG9yYWdlLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtl
eSAtIEZPTwotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZl
bnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0K
LVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBW
YWx1ZSAtIEJBUgotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAt
IG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotCi0KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93Lmh0bWwJKHJldmlzaW9uIDUzMjMyKQorKysg
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0
cmlidXRlLXNldHdpbmRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyTG9jYWxTdG9yYWdlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBsb2co
YSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9
IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgpCi17Ci0gICAg
aWYgKCF3aW5kb3cuZXZlbnQpIHsKLSAgICAgICAgbG9nKCJHbG9iYWwgZXZlbnQgbm90IGF2YWls
YWJsZS4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBsb2coIlN0b3JhZ2Ug
ZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGV2ZW50LmtleSk7
Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGV2ZW50Lm5ld1ZhbHVlKTsKLSAgICBsb2co
Ik9sZCBWYWx1ZSAgICAgLSAiICsgZXZlbnQub2xkVmFsdWUpOwotICAgIGxvZygiIik7Ci19Ci0K
LWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICghd2luZG93LmxvY2FsU3RvcmFnZSkgewot
ICAgICAgICBsb2coIndpbmRvdy5sb2NhbFN0b3JhZ2UgRE9FUyBOT1QgZXhpc3QiKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIHdpbmRvdy5vbnN0b3JhZ2UgPSBoYW5kbGVTdG9yYWdl
RXZlbnQ7Ci0gICAgCi0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFS
Iik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJGVSIsICJCQVIiKTsKLSAgICB3
aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIkZPTyIpOwotICAgIHdpbmRvdy5sb2NhbFN0
b3JhZ2UucmVtb3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIExvY2FsU3Rv
cmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUg
ZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9uZGluZyB0byB3aW5kb3cub25zdG9yYWdlLjxicj4KLTxk
aXYgaWQ9ImxvZ2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3NpbXBsZS1ldmVudHMtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0
b3JhZ2Uvc2ltcGxlLWV2ZW50cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUtZXZlbnRzLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyNiArMCwwIEBACi1UaGlzIGlzIGEgdGVz
dCB0byBtYWtlIHN1cmUgbG9jYWxTdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMK
LVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZh
bHVlIC0gbnVsbAotRXZlbnQgaGFzIGEgVVJJCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkg
LSBGVQotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi1FdmVudCBoYXMgYSBVUkkK
LQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gbnVsbAotT2xk
IFZhbHVlIC0gQkFSCi1FdmVudCBoYXMgYSBVUkkKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtl
eSAtIEZVCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLUV2ZW50IGhhcyBhIFVS
SQotCi0KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uv
c2ltcGxlLWV2ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc2ltcGxlLWV2ZW50cy5odG1sCShyZXZpc2lvbiA1MzIzMikK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc2ltcGxlLWV2
ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyTG9jYWxTdG9yYWdlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1
bmN0aW9uIGZpbmlzaCgpCi17Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCi19Ci0KLWZ1bmN0aW9u
IGhhbmRsZVN0b3JhZ2VFdmVudChlKQotewotICAgIGxvZygiU3RvcmFnZSBldmVudCBmaXJlZDoi
KTsKLSAgICBsb2coIktleSAgICAgICAgICAgLSAiICsgZS5rZXkpOwotICAgIGxvZygiTmV3IFZh
bHVlICAgICAtICIgKyBlLm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsg
ZS5vbGRWYWx1ZSk7Ci0gICAgaWYgKGUudXJpKQotICAgICAgICBsb2coIkV2ZW50IGhhcyBhIFVS
SSIpOwotICAgIGxvZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICgh
d2luZG93LmxvY2FsU3RvcmFnZSkgewotICAgICAgICBsb2coIndpbmRvdy5sb2NhbFN0b3JhZ2Ug
RE9FUyBOT1QgZXhpc3QiKTsKLSAgICAgICAgZmluaXNoKCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgCi0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCBoYW5kbGVT
dG9yYWdlRXZlbnQsIGZhbHNlKTsKLQotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgi
Rk9PIiwgIkJBUiIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiRlUiLCAiQkFS
Iik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5k
b3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7Ci0gICAgCi0gICAgZmluaXNoKCk7Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLVRoaXMg
aXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBsb2NhbFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFn
ZUV2ZW50czxicj4KLTxkaXYgaWQ9ImxvZ2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2NvbXBsZXgt
dmFsdWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
Y3JpcHQtdGVzdHMvY29tcGxleC12YWx1ZXMuanMJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9jb21wbGV4LXZhbHVlcy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSw1IEBACiBkZXNjcmlwdGlvbigiVGVzdCBzb21lIGNv
cm5lciBjYXNlIERPTSBTdG9yYWdlIHZhbHVlcy4iKTsKIAotZXZlbnRDb3VudGVyID0gMDsKLWZ1
bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgpIHsKLSAgICBldmVudENvdW50ZXIrKzsKLX0KLQog
ZnVuY3Rpb24gdGVzdEtleVZhbHVlKGtleSwgdmFsdWUpCiB7CiAgICAga2V5U3RyaW5nID0gInN0
b3JhZ2VbJyIgKyBrZXkgKyAiJ10iOwpAQCAtNzMsMjEgKzY4LDYgQEAgZnVuY3Rpb24gdGVzdChz
dG9yYWdlU3RyaW5nKQogICAgIHRlc3RLZXlWYWx1ZSgiZm9vMTEiLCBrKTsKICAgICBldmFsQW5k
TG9nKCJzdG9yYWdlLnNldEl0ZW0oJ2ZvbzEyJywgaykiKTsKICAgICB0ZXN0S2V5VmFsdWUoImZv
bzEyIiwgayk7Ci0KLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlZlcmlmeSBzdG9yYWdlIGV2
ZW50cyBhcmUgY2FzZSBzZW5zaXRpdmUiKTsKLSAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9
ICd0ZXN0JyIpOwotICAgIGRlYnVnKCJTZXR0aW5nIGV2ZW50IGxpc3RlbmVyIik7Ci0gICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCBoYW5kbGVTdG9yYWdlRXZlbnQsIGZhbHNl
KTsKLSAgICBzaG91bGRCZSgiZXZlbnRDb3VudGVyIiwgIjAiKTsKLSAgICBldmFsQW5kTG9nKCJz
dG9yYWdlLmZvbyA9ICd0ZXN0JyIpOwotICAgIHNob3VsZEJlKCJldmVudENvdW50ZXIiLCAiMCIp
OwotICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0gJ1RFU1QnIik7Ci0gICAgc2hvdWxkQmUo
ImV2ZW50Q291bnRlciIsICIxIik7Ci0KLSAgICAvLyBSZXNldCB0aGUgY291bnRlciBmb3IgbmV4
dCB0ZXN0cyAoaWYgYW55KS4KLSAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFn
ZSIsIGhhbmRsZVN0b3JhZ2VFdmVudCwgZmFsc2UpOwotICAgIGV2ZW50Q291bnRlciA9IDA7CiB9
CiAKIHRlc3QoInNlc3Npb25TdG9yYWdlIik7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHJl
dmlzaW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10
ZXN0cy9kb2N1bWVudFVSSS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw1MCArMCwwIEBACi1kZXNj
cmlwdGlvbigiVGVzdCB0aGF0IGNoYW5naW5nIGRvY3VtZW50VVJJIGhhcyBubyBlZmZlY3RzIG9u
IHN0b3JhZ2UgZXZlbnRzLiIpOwotCi1mdW5jdGlvbiB0ZXN0KHN0b3JhZ2VTdHJpbmcpCi17Ci0g
ICAgd2luZG93LnN0b3JhZ2UgPSBldmFsKHN0b3JhZ2VTdHJpbmcpOwotICAgIGlmICghc3RvcmFn
ZSkgewotICAgICAgICB0ZXN0RmFpbGVkKHN0b3JhZ2VTdHJpbmcgKyAiIERPRVMgTk9UIGV4aXN0
Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkZWJ1ZygiVGVzdGluZyAiICsgc3Rv
cmFnZVN0cmluZyk7Ci0KLSAgICB3aW5kb3cub25zdG9yYWdlID0gbnVsbDsKLSAgICBldmFsQW5k
TG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsKLSAgICBzaG91bGRCZSgic3RvcmFnZS5sZW5ndGgiLCAi
MCIpOwotCi0gICAgZXZhbEFuZExvZygid2luZG93Lm9uc3RvcmFnZSA9IGZpcnN0RXZlbnQiKTsK
LSAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICcxMjMnIik7Ci19Ci0KLWZ1bmN0aW9uIGZp
cnN0RXZlbnQoZSkKLXsKLSAgICBkZWJ1ZygiRmlyc3QgZXZlbnQgZmlyZWQiKTsKLSAgICBkZWJ1
ZygiU2F2aW5nIFVSSSIpOwotICAgIHdpbmRvdy5sYXN0VVJJID0gZS51cmk7Ci0KLSAgICBldmFs
QW5kTG9nKCJkb2N1bWVudC5kb2N1bWVudFVSSSA9ICdhYmMnIik7Ci0gICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJkb2N1bWVudC5kb2N1bWVudFVSSSIsICJhYmMiKTsKLQotICAgIGV2YWxBbmRM
b2coIndpbmRvdy5vbnN0b3JhZ2UgPSBzZWNvbmRFdmVudCIpOwotICAgIGV2YWxBbmRMb2coInN0
b3JhZ2UuZm9vID0gJ3h5eiciKTsKLX0KLQotZnVuY3Rpb24gc2Vjb25kRXZlbnQoZSkKLXsKLSAg
ICBkZWJ1ZygiU2Vjb25kIGV2ZW50IGZpcmVkIik7Ci0gICAgc2hvdWxkQmVUcnVlKFN0cmluZyh3
aW5kb3cubGFzdFVSSSA9PSBlLnVyaSkpOwotCi0gICAgaWYgKGRvbmUpIHsKLSAgICAgICAgd2lu
ZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0gICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFy
c2VkKCk7Ci0gICAgfQotfQotCi13aW5kb3cuZG9uZSA9IGZhbHNlOwotdGVzdCgic2Vzc2lvblN0
b3JhZ2UiKTsKLWRlYnVnKCIiKTsKLWRlYnVnKCIiKTsKLXdpbmRvdy5kb25lID0gdHJ1ZTsKLXRl
c3QoImxvY2FsU3RvcmFnZSIpOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L3Nlc3Npb25zdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaW5kZXgt
Z2V0LWFuZC1zZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNTQgKzEsMjkgQEAKIFRoaXMgaXMgYSB0ZXN0
IHRvIG1ha2Ugc3VyZSB5b3UgY2FuIGdldCBhbmQgc2V0IHZhbHVlcyBpbiBTZXNzaW9uU3RvcmFn
ZSBieSBpbmRleC4KIFNldHRpbmcgRk9PIHVzaW5nIHRoZSBpbmRleCBzZXR0ZXIuCi1TdG9yYWdl
IGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51
bGwKLQogUmVhZGluZyBGT086CiBCQVIKIEJBUgogQkFSCiAKIFNldHRpbmcgRk9PIGFnYWluLCB1
c2luZyBzZXRJdGVtLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVl
IC0gQkFaCi1PbGQgVmFsdWUgLSBCQVIKLQogUmVhZGluZyBGT086CiBCQVoKIEJBWgogQkFaCiAK
IFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyB0aGUgaW5kZXggc2V0dGVyLgotU3RvcmFnZSBldmVu
dCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFUCi1PbGQgVmFsdWUgLSBCQVoKLQog
UmVhZGluZyBGT086CiBCQVQKIEJBVAogQkFUCiAKIFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyBw
cm9wZXJ0eS1zbG90IHN5bnRheAotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3
IFZhbHVlIC0gQkFUTUFOCi1PbGQgVmFsdWUgLSBCQVQKLQogUmVhZGluZyBGT086CiBCQVRNQU4K
IEJBVE1BTgogQkFUTUFOCiAKIFJlbW92aW5nIEZPTywgdGhlbiB0cnlpbmcgdG8gcmVhZCBpdAot
U3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZh
bHVlIC0gQkFUTUFOCi0KIFJlYWRpbmcgRk9POgogdW5kZWZpbmVkCiB1bmRlZmluZWQKSW5kZXg6
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQt
YW5kLXNldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC5odG1sCShyZXZpc2lvbiA1MzIzMikK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1n
ZXQtYW5kLXNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSwxNSArMTksNiBAQCBmdW5jdGlv
biBmaW5pc2goKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkKIH0K
IAotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KGUpCi17Ci0gICAgbG9nKCJTdG9yYWdlIGV2
ZW50IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBlLmtleSk7Ci0gICAg
bG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGUubmV3VmFsdWUpOwotICAgIGxvZygiT2xkIFZhbHVl
ICAgICAtICIgKyBlLm9sZFZhbHVlKTsKLSAgICBsb2coIiIpOwotfQotCiBmdW5jdGlvbiBydW5U
ZXN0KCkKIHsKICAgICBpZiAoIXdpbmRvdy5zZXNzaW9uU3RvcmFnZSkgewpAQCAtMzYsOCArMjcs
NiBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsIGhhbmRsZVN0b3JhZ2VFdmVudCwg
ZmFsc2UpOwotICAgIAogICAgIGxvZygiU2V0dGluZyBGT08gdXNpbmcgdGhlIGluZGV4IHNldHRl
ci4iKTsKICAgICBzZXNzaW9uU3RvcmFnZVsiRk9PIl0gPSAiQkFSIjsKICAgICBsb2coIlJlYWRp
bmcgRk9POiIpOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25z
dG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9y
YWdlLWF0dHJpYnV0ZS1tYXJrdXAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0
cmlidXRlLW1hcmt1cC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBA
QAotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25TdG9yYWdlIG11dGF0aW9ucyBm
aXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBj
b3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiBUaGUgZXZlbnQgbGlzdGVuZXIgaXMgc2V0
dXAgaW4gdGhlIGJvZHkgZWxlbWVudCdzIG1hcmt1cC4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1L
ZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2
ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAot
Ci1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQg
VmFsdWUgLSBCQVIKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUg
LSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3Jh
Z2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAkocmV2aXNpb24gNTMyMzIpCisrKyBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0
dHJpYnV0ZS1tYXJrdXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBsb2co
YSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9
IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgpCi17Ci0gICAg
aWYgKCF3aW5kb3cuZXZlbnQpIHsKLSAgICAgICAgbG9nKCJHbG9iYWwgZXZlbnQgbm90IGF2YWls
YWJsZS4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBsb2coIlN0b3JhZ2Ug
ZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGV2ZW50LmtleSk7
Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGV2ZW50Lm5ld1ZhbHVlKTsKLSAgICBsb2co
Ik9sZCBWYWx1ZSAgICAgLSAiICsgZXZlbnQub2xkVmFsdWUpOwotICAgIGxvZygiIik7Ci19Ci0K
LWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICghd2luZG93LnNlc3Npb25TdG9yYWdlKSB7
Ci0gICAgICAgIGxvZygid2luZG93LnNlc3Npb25TdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNl
dEl0ZW0oIkZPTyIsICJCQVIiKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgi
RlUiLCAiQkFSIik7Ci0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oIkZPTyIp
OwotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGVSIpOwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyIgb25zdG9yYWdlPSJoYW5k
bGVTdG9yYWdlRXZlbnQoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25T
dG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRo
ZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiAgVGhlIGV2
ZW50IGxpc3RlbmVyIGlzIHNldHVwIGluIHRoZSBib2R5IGVsZW1lbnQncyBtYXJrdXAuPGJyPgot
PGRpdiBpZD0ibG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRl
LXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Rv
cmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0
cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLVRoaXMg
aXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9y
YWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9u
ZGluZyB0byBib2R5Lm9uc3RvcmFnZS4gVGhlIGV2ZW50IGxpc3RlbmVyIGlzIHNldHVwIHZpYSBi
b2R5LnNldEF0dHJpYnV0ZSgpLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3
IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1L
ZXkgLSBGVQotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZl
bnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBUgot
Ci1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBW
YWx1ZSAtIEJBUgotCi0KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNz
aW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0
b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiA1MzIzMikKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0
cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3Jh
Z2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0aW9u
IGxvZyhhKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5lckhU
TUwgKz0gYSArICI8YnI+IjsKLX0KLQotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KCkKLXsK
LSAgICBpZiAoIXdpbmRvdy5ldmVudCkgewotICAgICAgICBsb2coIkdsb2JhbCBldmVudCBub3Qg
YXZhaWxhYmxlLiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGxvZygiU3Rv
cmFnZSBldmVudCBmaXJlZDoiKTsKLSAgICBsb2coIktleSAgICAgICAgICAgLSAiICsgZXZlbnQu
a2V5KTsKLSAgICBsb2coIk5ldyBWYWx1ZSAgICAgLSAiICsgZXZlbnQubmV3VmFsdWUpOwotICAg
IGxvZygiT2xkIFZhbHVlICAgICAtICIgKyBldmVudC5vbGRWYWx1ZSk7Ci0gICAgbG9nKCIiKTsK
LX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgaWYgKCF3aW5kb3cuc2Vzc2lvblN0b3Jh
Z2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgRE9FUyBOT1QgZXhpc3Qi
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBkb2N1bWVudC5ib2R5LnNldEF0
dHJpYnV0ZSgib25zdG9yYWdlIiwgImhhbmRsZVN0b3JhZ2VFdmVudCgpOyIpOwotICAgIAotICAg
IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFSIik7Ci0gICAgd2luZG93
LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJBUiIpOwotICAgIHdpbmRvdy5zZXNzaW9u
U3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVt
b3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25TdG9yYWdlIG11
dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBs
aXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiAgVGhlIGV2ZW50IGxpc3Rl
bmVyIGlzIHNldHVwIHZpYSBib2R5LnNldEF0dHJpYnV0ZSgpLjxicj4KLTxkaXYgaWQ9ImxvZ2dl
ciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3ctZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
ZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldHdpbmRvdy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Np
b25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUg
U2Vzc2lvblN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVn
aHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gd2luZG93Lm9uc3RvcmFn
ZS4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xk
IFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1
ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0g
Rk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotU3RvcmFnZSBldmVudCBm
aXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9y
YWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3
aW5kb3cuaHRtbAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw0OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1
bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnQpIHsK
LSAgICAgICAgbG9nKCJHbG9iYWwgZXZlbnQgbm90IGF2YWlsYWJsZS4iKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICAKLSAgICBsb2coIlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAg
bG9nKCJLZXkgICAgICAgICAgIC0gIiArIGV2ZW50LmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUg
ICAgIC0gIiArIGV2ZW50Lm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsg
ZXZlbnQub2xkVmFsdWUpOwotICAgIGxvZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQot
ewotICAgIGlmICghd2luZG93LnNlc3Npb25TdG9yYWdlKSB7Ci0gICAgICAgIGxvZygid2luZG93
LnNlc3Npb25TdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICB3aW5kb3cub25zdG9yYWdlID0gaGFuZGxlU3RvcmFnZUV2ZW50OwotICAgIAotICAg
IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFSIik7Ci0gICAgd2luZG93
LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJBUiIpOwotICAgIHdpbmRvdy5zZXNzaW9u
U3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVt
b3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25TdG9yYWdlIG11
dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBs
aXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIHdpbmRvdy5vbnN0b3JhZ2UuPGJyPgotPGRpdiBpZD0i
bG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1wbGUtZXZlbnRzLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3Jh
Z2Uvc2ltcGxlLWV2ZW50cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS1ldmVudHMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDI2ICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0
IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRz
Ci1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBW
YWx1ZSAtIG51bGwKLUV2ZW50IGhhcyBhIFVSSQotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5
IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotRXZlbnQgaGFzIGEgVVJJ
Ci0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9s
ZCBWYWx1ZSAtIEJBUgotRXZlbnQgaGFzIGEgVVJJCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1L
ZXkgLSBGVQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFSCi1FdmVudCBoYXMgYSBV
UkkKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3Jh
Z2Uvc2ltcGxlLWV2ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1wbGUtZXZlbnRzLmh0bWwJKHJldmlzaW9uIDUz
MjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Np
bXBsZS1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7
Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaCgpCi17Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCi19Ci0K
LWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudChlKQotewotICAgIGxvZygiU3RvcmFnZSBldmVu
dCBmaXJlZDoiKTsKLSAgICBsb2coIktleSAgICAgICAgICAgLSAiICsgZS5rZXkpOwotICAgIGxv
ZygiTmV3IFZhbHVlICAgICAtICIgKyBlLm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAg
ICAgLSAiICsgZS5vbGRWYWx1ZSk7Ci0gICAgaWYgKGUudXJpKQotICAgICAgICBsb2coIkV2ZW50
IGhhcyBhIFVSSSIpOwotICAgIGxvZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewot
ICAgIGlmICghd2luZG93LnNlc3Npb25TdG9yYWdlKSB7Ci0gICAgICAgIGxvZygid2luZG93LnNl
c3Npb25TdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIGZpbmlzaCgpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9y
YWdlIiwgaGFuZGxlU3RvcmFnZUV2ZW50LCBmYWxzZSk7Ci0KLSAgICB3aW5kb3cuc2Vzc2lvblN0
b3JhZ2Uuc2V0SXRlbSgiRk9PIiwgIkJBUiIpOwotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5z
ZXRJdGVtKCJGVSIsICJCQVIiKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRl
bSgiRk9PIik7Ci0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7Ci0g
ICAgCi0gICAgZmluaXNoKCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCk7Ij4KLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFn
ZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzPGJyPgotPGRpdiBpZD0ibG9nZ2VyIj48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47093</attachid>
            <date>2010-01-20 19:39:00 -0800</date>
            <delta_ts>2010-01-20 19:47:57 -0800</delta_ts>
            <desc>Oops...now with change log + all the files</desc>
            <filename>bug-30546-20100120193859.patch</filename>
            <type>text/plain</type>
            <size>89257</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzU5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDEtMjAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBzdG9yYWdlIGV2ZW50cyBtYXRjaCB0aGUgc3BlYy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTQ2CisKKyAgICAgICAgVGhpcyBtZWF0IG9m
IHRoZSBwYXRjaCBJIGp1c3QgcG9zdGVkIGlzIHZlcnkgc2ltcGxlLiAgSXQncyBqdXN0IG1ha2lu
ZyBldmVudHMKKyAgICAgICAgYXN5bmNocm9ub3VzLCBub3QgcG9zdGluZyB0aGVtIHRvIHRoZSBm
cmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVtLCBwYXNzaW5nIGEgbnVsbAorICAgICAgICBmb3IgdGhl
IGtleSB3aGVuIGlzc3VpbmcgYSBjbGVhciBzdG9yYWdlIGV2ZW50LCBhbmQgbWFraW5nIHRoZSBl
dmVudHMKKyAgICAgICAgbm9uLWNhbmNlbGFibGUvbm9uLWJ1YmJsZWFibGUuLi5hbGwgb2Ygd2hp
Y2ggYXJlIGNsZWFybHkgc3RhdGVkIGluIHRoZSBzcGVjLgorCisgICAgICAgIFRoZSBhc3luY2hy
b25vdXMgYW5kIG5vdCBwb3N0aW5nIHRvIHRoZSBmcmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVtIGZv
cmNlZCBtZSB0d28KKyAgICAgICAgcmUtd3JpdGUgYWxsIHRoZSBsYXlvdXQgdGVzdHMgdGhhdCBk
ZWFsdCB3aXRoIHN0b3JhZ2UgZXZlbnRzLiAgVGhlcmUncyBhIGxvdCBvZgorICAgICAgICBjb2Rl
IHRoZXJlLCBidXQgSSB0cmllZCB0byBiZSBmYWlybHkgY2FyZWZ1bCB0byBlbnN1cmUgdGhhdCB0
ZXN0IGNvdmVyYWdlIGRpZAorICAgICAgICBub3Qgc2hyaW5rIGluIGFueSBhcmVhLgorCisgICAg
ICAgIFRlc3RzOiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLWJvZHktYXR0cmlidXRl
Lmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtc2V0
YXR0cmlidXRlLmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMv
YmFzaWMuaHRtbAorICAgICAgICAgICAgICAgc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9jYXNl
LXNlbnNpdGl2ZS5odG1sCisgICAgICAgICAgICAgICBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRz
L2RvY3VtZW50VVJJLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmVucXVldWVTdG9yYWdlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0
b3JhZ2VFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VF
dmVudDo6U3RvcmFnZUV2ZW50KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGw6
CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKToKKwogMjAxMC0wMS0y
MCAgRnVtaXRvc2hpIFVrYWkgIDx1a2FpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNTMyMzIp
CisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1Nyw2ICsz
NTcsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBib29sIGlzCiAgICAgLCBt
X2hhc09wZW5EYXRhYmFzZXMoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1fdXNpbmdHZW9sb2NhdGlv
bihmYWxzZSkKKyAgICAsIG1fc3RvcmFnZUV2ZW50VGltZXIodGhpcywgJkRvY3VtZW50OjpzdG9y
YWdlRXZlbnRUaW1lckZpcmVkKQogI2lmIEVOQUJMRShXTUwpCiAgICAgLCBtX2NvbnRhaW5zV01M
Q29udGVudChmYWxzZSkKICNlbmRpZgpAQCAtMjk2Niw2ICsyOTY3LDI0IEBAIHZvaWQgRG9jdW1l
bnQ6OmRpc3BhdGNoV2luZG93TG9hZEV2ZW50KCkKICAgICBkb21XaW5kb3ctPmRpc3BhdGNoTG9h
ZEV2ZW50KCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmVucXVldWVTdG9yYWdlRXZlbnQoUGFzc1Jl
ZlB0cjxFdmVudD4gc3RvcmFnZUV2ZW50KQoreworICAgIG1fc3RvcmFnZUV2ZW50UXVldWUuYXBw
ZW5kKHN0b3JhZ2VFdmVudCk7CisgICAgaWYgKCFtX3N0b3JhZ2VFdmVudFRpbWVyLmlzQWN0aXZl
KCkpCisgICAgICAgIG1fc3RvcmFnZUV2ZW50VGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2
b2lkIERvY3VtZW50OjpzdG9yYWdlRXZlbnRUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopCit7
CisgICAgVmVjdG9yPFJlZlB0cjxFdmVudD4gPiBzdG9yYWdlRXZlbnRRdWV1ZTsKKyAgICBzdG9y
YWdlRXZlbnRRdWV1ZS5zd2FwKG1fc3RvcmFnZUV2ZW50UXVldWUpOworCisgICAgdHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPEV2ZW50PiA+Ojpjb25zdF9pdGVyYXRvciBJdGVyYXRvcjsKKyAgICBJdGVy
YXRvciBlbmQgPSBzdG9yYWdlRXZlbnRRdWV1ZS5lbmQoKTsKKyAgICBmb3IgKEl0ZXJhdG9yIGl0
ID0gc3RvcmFnZUV2ZW50UXVldWUuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBk
aXNwYXRjaFdpbmRvd0V2ZW50KCppdCk7Cit9CisKIFBhc3NSZWZQdHI8RXZlbnQ+IERvY3VtZW50
OjpjcmVhdGVFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgUmVmUHRyPEV2ZW50PiBldmVudDsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gNTMyMzIp
CisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MTUsNiArNjE1
LDkgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hXaW5kb3dFdmVudChQYXNzUmVmUHRyPEV2
ZW50PiwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gPSAwKTsKICAgICB2b2lkIGRpc3BhdGNoV2lu
ZG93TG9hZEV2ZW50KCk7CiAKKyAgICB2b2lkIGVucXVldWVTdG9yYWdlRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4pOworICAgIHZvaWQgc3RvcmFnZUV2ZW50VGltZXJGaXJlZChUaW1lcjxEb2N1bWVu
dD4qKTsKKwogICAgIFBhc3NSZWZQdHI8RXZlbnQ+IGNyZWF0ZUV2ZW50KGNvbnN0IFN0cmluZyYg
ZXZlbnRUeXBlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAvLyBrZWVwIHRyYWNrIG9mIHdoYXQg
dHlwZXMgb2YgZXZlbnQgbGlzdGVuZXJzIGFyZSByZWdpc3RlcmVkLCBzbyB3ZSBkb24ndApAQCAt
MTE5Miw2ICsxMTk1LDkgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fdXNpbmdHZW9sb2Nh
dGlvbjsKIAorICAgIFRpbWVyPERvY3VtZW50PiBtX3N0b3JhZ2VFdmVudFRpbWVyOworICAgIFZl
Y3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9zdG9yYWdlRXZlbnRRdWV1ZTsKKwogI2lmIEVOQUJMRShX
TUwpCiAgICAgYm9vbCBtX2NvbnRhaW5zV01MQ29udGVudDsKICNlbmRpZgpJbmRleDogV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VFdmVudC5jcHAJKHJldmlzaW9uIDUzMjMyKQorKysgV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgUGFzc1JlZlB0
cjxTdG9yYWdlRXZlbnQ+IFN0b3JhZ2VFdmVudDo6YwogfQogCiBTdG9yYWdlRXZlbnQ6OlN0b3Jh
Z2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcm
IHVyaSwgU3RvcmFnZSogc3RvcmFnZUFyZWEpCi0gICAgOiBFdmVudCh0eXBlLCBmYWxzZSwgdHJ1
ZSkKKyAgICA6IEV2ZW50KHR5cGUsIGZhbHNlLCBmYWxzZSkKICAgICAsIG1fa2V5KGtleSkKICAg
ICAsIG1fb2xkVmFsdWUob2xkVmFsdWUpCiAgICAgLCBtX25ld1ZhbHVlKG5ld1ZhbHVlKQpJbmRl
eDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwJKHJldmlzaW9uIDUzMjMyKQorKysgV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAg
bW9kdWxlIHN0b3JhZ2UgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPURP
TV9TVE9SQUdFCiAgICAgXSBTdG9yYWdlRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcga2V5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGtleTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBvbGRWYWx1ZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERP
TVN0cmluZyBuZXdWYWx1ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1
cmk7CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCShy
ZXZpc2lvbiA1MzIzMikKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsMjUgKzUwLDI1IEBAIHZvaWQgU3RvcmFnZUV2ZW50
RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goY28KICAgICBpZiAoc3RvcmFnZVR5cGUgPT0gU2Vzc2lvblN0
b3JhZ2UpIHsKICAgICAgICAgLy8gU2VuZCBldmVudHMgb25seSB0byBvdXIgcGFnZS4KICAgICAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0g
ZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+ZXF1YWwoc2VjdXJpdHlPcmlnaW4pKQorICAg
ICAgICAgICAgaWYgKHNvdXJjZUZyYW1lICE9IGZyYW1lICYmIGZyYW1lLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbikpCiAgICAgICAgICAgICAgICAg
ZnJhbWVzLmFwcGVuZChmcmFtZSk7CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgZnJhbWVzW2ldLT5k
b2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFt
ZS0+ZG9jdW1lbnQoKS0+dXJsKCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPnNlc3Npb25TdG9y
YWdlKCkpKTsKKyAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVN0b3Jh
Z2VFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBr
ZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBm
cmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3RvcmFnZSgpKSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgLy8gU2VuZCBldmVudHMgdG8gZXZlcnkgcGFnZS4KICAgICAgICAgY29uc3QgSGFz
aFNldDxQYWdlKj4mIHBhZ2VzID0gcGFnZS0+Z3JvdXAoKS5wYWdlcygpOwogICAgICAgICBIYXNo
U2V0PFBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gcGFnZXMuZW5kKCk7CiAgICAgICAgIGZv
ciAoSGFzaFNldDxQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcGFnZXMuYmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICgqaXQpLT5t
YWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkp
IHsKLSAgICAgICAgICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCktPmVxdWFsKHNlY3VyaXR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlRnJh
bWUgIT0gZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmVxdWFs
KHNlY3VyaXR5T3JpZ2luKSkKICAgICAgICAgICAgICAgICAgICAgZnJhbWVzLmFwcGVuZChmcmFt
ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1
bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZSgp
KSk7CisgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVTdG9yYWdlRXZl
bnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBv
bGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgZnJhbWVz
W2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKCkpKTsKICAgICB9CiB9CiAKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDUzNTk0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNzQgQEAKKzIwMTAtMDEtMjAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBzdG9yYWdlIGV2ZW50cyBtYXRjaCB0aGUgc3BlYy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTQ2CisKKyAgICAgICAgVGhpcyBtZWF0
IG9mIHRoZSBwYXRjaCBJIGp1c3QgcG9zdGVkIGlzIHZlcnkgc2ltcGxlLiAgSXQncyBqdXN0IG1h
a2luZyBldmVudHMKKyAgICAgICAgYXN5bmNocm9ub3VzLCBub3QgcG9zdGluZyB0aGVtIHRvIHRo
ZSBmcmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVtLCBwYXNzaW5nIGEgbnVsbAorICAgICAgICBmb3Ig
dGhlIGtleSB3aGVuIGlzc3VpbmcgYSBjbGVhciBzdG9yYWdlIGV2ZW50LCBhbmQgbWFraW5nIHRo
ZSBldmVudHMKKyAgICAgICAgbm9uLWNhbmNlbGFibGUvbm9uLWJ1YmJsZWFibGUuLi5hbGwgb2Yg
d2hpY2ggYXJlIGNsZWFybHkgc3RhdGVkIGluIHRoZSBzcGVjLgorCisgICAgICAgIFRoZSBhc3lu
Y2hyb25vdXMgYW5kIG5vdCBwb3N0aW5nIHRvIHRoZSBmcmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVt
IGZvcmNlZCBtZSB0d28KKyAgICAgICAgcmUtd3JpdGUgYWxsIHRoZSBsYXlvdXQgdGVzdHMgdGhh
dCBkZWFsdCB3aXRoIHN0b3JhZ2UgZXZlbnRzLiAgVGhlcmUncyBhIGxvdCBvZgorICAgICAgICBj
b2RlIHRoZXJlLCBidXQgSSB0cmllZCB0byBiZSBmYWlybHkgY2FyZWZ1bCB0byBlbnN1cmUgdGhh
dCB0ZXN0IGNvdmVyYWdlIGRpZAorICAgICAgICBub3Qgc2hyaW5rIGluIGFueSBhcmVhLgorCisg
ICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1lbnRVUkktZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHM6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jh
c2ljLWJvZHktYXR0cmlidXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3Rv
cmFnZS9ldmVudHMvYmFzaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtc2V0YXR0cmlidXRl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMu
aHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9jYXNlLXNl
bnNpdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFn
ZS9ldmVudHMvY2FzZS1zZW5zaXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvZG9jdW1lbnRVUkkuaHRtbDogQWRkZWQuCisg
ICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9yZXNvdXJjZXM6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2JvZHktZXZlbnQtaGFu
ZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jl
c291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2Rv
bXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9zZXRhdHRyaWJ1dGUtZXZlbnQtaGFuZGxlci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0
czogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVz
dHMvVEVNUExBVEUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3Rv
cmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLWJvZHktYXR0cmlidXRlLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy1z
ZXRhdHRyaWJ1dGUuanM6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVu
dHMvc2NyaXB0LXRlc3RzL2Jhc2ljLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0
b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9jYXNlLXNlbnNpdGl2ZS5qczogQWRkZWQuCisgICAg
ICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkku
anM6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaWZy
YW1lLWV2ZW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21z
dG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pbmRl
eC1nZXQtYW5kLXNldC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0
b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJp
YnV0ZS1tYXJrdXAuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0cmlidXRlLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29u
c3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0cmlidXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
c3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldHdp
bmRvdy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldHdpbmRvdy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc2ltcGxlLWV2ZW50
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zaW1wbGUtZXZlbnRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFn
ZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9jb21wbGV4LXZhbHVlcy5qczoKKyAgICAgICAgKiBz
dG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRz
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vz
c2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHN0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2luZGV4LWdl
dC1hbmQtc2V0Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9y
YWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJp
YnV0ZS1tYXJrdXAuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uv
c2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFn
ZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRl
LXNldHdpbmRvdy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21z
dG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Np
bXBsZS1ldmVudHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9t
c3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1wbGUtZXZlbnRzLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvd2luZG93LWF0dHJpYnV0ZXMtZXhp
c3QuaHRtbDoKKwogMjAxMC0wMS0yMCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gQWRkIGZhaWxpbmcgdGVzdCBmYXN0L2Nzcy9idXR0b24t
aGVpZ2h0Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4
LXZhbHVlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisr
KyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvY29tcGxleC12YWx1ZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsMTUgKzEwMiw2IEBAIFBBU1Mgc3RvcmFnZS5mb28x
MiBpcyAi7peBw7/ssKFoZWxsbyIKIFBBU1MgdHlwZW9mIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTIn
KSBpcyAic3RyaW5nIgogUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LCh
aGVsbG8iCiAKLVZlcmlmeSBzdG9yYWdlIGV2ZW50cyBhcmUgY2FzZSBzZW5zaXRpdmUKLXN0b3Jh
Z2UuZm9vID0gJ3Rlc3QnCi1TZXR0aW5nIGV2ZW50IGxpc3RlbmVyCi1QQVNTIGV2ZW50Q291bnRl
ciBpcyAwCi1zdG9yYWdlLmZvbyA9ICd0ZXN0JwotUEFTUyBldmVudENvdW50ZXIgaXMgMAotc3Rv
cmFnZS5mb28gPSAnVEVTVCcKLVBBU1MgZXZlbnRDb3VudGVyIGlzIDEKLQogCiBUZXN0aW5nIGxv
Y2FsU3RvcmFnZQogc3RvcmFnZS5jbGVhcigpCkBAIC0yMTAsMTUgKzIwMSw2IEBAIFBBU1MgdHlw
ZW9mIHN0b3JhZ2UuZm9vMTIgaXMgInN0cmluZyIKIFBBU1Mgc3RvcmFnZS5mb28xMiBpcyAi7peB
w7/ssKFoZWxsbyIKIFBBU1MgdHlwZW9mIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTInKSBpcyAic3Ry
aW5nIgogUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LChaGVsbG8iCi0K
LVZlcmlmeSBzdG9yYWdlIGV2ZW50cyBhcmUgY2FzZSBzZW5zaXRpdmUKLXN0b3JhZ2UuZm9vID0g
J3Rlc3QnCi1TZXR0aW5nIGV2ZW50IGxpc3RlbmVyCi1QQVNTIGV2ZW50Q291bnRlciBpcyAwCi1z
dG9yYWdlLmZvbyA9ICd0ZXN0JwotUEFTUyBldmVudENvdW50ZXIgaXMgMAotc3RvcmFnZS5mb28g
PSAnVEVTVCcKLVBBU1MgZXZlbnRDb3VudGVyIGlzIDEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1lbnRVUkktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1
MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAsMCBAQAotVGVzdCB0aGF0IGNoYW5n
aW5nIGRvY3VtZW50VVJJIGhhcyBubyBlZmZlY3RzIG9uIHN0b3JhZ2UgZXZlbnRzLgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotVGVzdGluZyBzZXNzaW9uU3RvcmFnZQotc3RvcmFn
ZS5jbGVhcigpCi1QQVNTIHN0b3JhZ2UubGVuZ3RoIGlzIDAKLXdpbmRvdy5vbnN0b3JhZ2UgPSBm
aXJzdEV2ZW50Ci1zdG9yYWdlLmZvbyA9ICcxMjMnCi1GaXJzdCBldmVudCBmaXJlZAotU2F2aW5n
IFVSSQotZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnYWJjJwotUEFTUyBkb2N1bWVudC5kb2N1bWVu
dFVSSSBpcyAiYWJjIgotd2luZG93Lm9uc3RvcmFnZSA9IHNlY29uZEV2ZW50Ci1zdG9yYWdlLmZv
byA9ICd4eXonCi1TZWNvbmQgZXZlbnQgZmlyZWQKLVBBU1MgdHJ1ZSBpcyB0cnVlCi0KLQotVGVz
dGluZyBsb2NhbFN0b3JhZ2UKLXN0b3JhZ2UuY2xlYXIoKQotUEFTUyBzdG9yYWdlLmxlbmd0aCBp
cyAwCi13aW5kb3cub25zdG9yYWdlID0gZmlyc3RFdmVudAotc3RvcmFnZS5mb28gPSAnMTIzJwot
Rmlyc3QgZXZlbnQgZmlyZWQKLVNhdmluZyBVUkkKLWRvY3VtZW50LmRvY3VtZW50VVJJID0gJ2Fi
YycKLVBBU1MgZG9jdW1lbnQuZG9jdW1lbnRVUkkgaXMgImFiYyIKLXdpbmRvdy5vbnN0b3JhZ2Ug
PSBzZWNvbmRFdmVudAotc3RvcmFnZS5mb28gPSAneHl6JwotU2Vjb25kIGV2ZW50IGZpcmVkCi1Q
QVNTIHRydWUgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVu
dFVSSS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9k
b2N1bWVudFVSSS5odG1sCShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvd2luZG93LWF0dHJpYnV0ZXMtZXhp
c3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS93aW5kb3ctYXR0cmlidXRlcy1leGlzdC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTE4LDUgKzE4LDQgQEAgU3RvcmFnZSBvYmplY3QgbG9jYWxTdG9yYWdlIGhhcyBj
bGVhcgogd2luZG93LmxvY2FsU3RvcmFnZSA9PSB3aW5kb3cubG9jYWxTdG9yYWdlOiB0cnVlCiB3
aW5kb3cubG9jYWxTdG9yYWdlID09PSB3aW5kb3cubG9jYWxTdG9yYWdlOiB0cnVlCiB3aW5kb3cu
b25zdG9yYWdlIGV4aXN0cwotVGhlIG9uc3RvcmFnZSBwcm9wZXJ0eSB3b3JrcyB3aGVuIGEgc3Rv
cmFnZSBldmVudCBpcyBmaXJlZC4KIApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0Lmh0bWwJKHJldmlz
aW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRy
aWJ1dGVzLWV4aXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE2ICsyNiw2IEBAIGZ1bmN0
aW9uIHRlc3RTdG9yYWdlKG5hbWUsIHN0b3JhZ2UpCiAgICAgICAgIGxvZygiU3RvcmFnZSBvYmpl
Y3QgIiArIG5hbWUgKyAiIGhhcyBjbGVhciIpOwogfQogCi1mdW5jdGlvbiB0ZXN0T25zdG9yYWdl
KCkKLXsKLSAgICB3aW5kb3cub25zdG9yYWdlID0gZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAg
ICAgICBsb2coIlRoZSBvbnN0b3JhZ2UgcHJvcGVydHkgd29ya3Mgd2hlbiBhIHN0b3JhZ2UgZXZl
bnQgaXMgZmlyZWQuIik7Ci0gICAgfQotICAgIAotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbInRl
c3QiXSA9ICJ0ZXN0IjsKLX0KLQogZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCJzZXNz
aW9uU3RvcmFnZSIgaW4gd2luZG93KSB7CkBAIC01NCwxMCArNDQsOSBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkKICAgICB9IGVsc2UKICAgICAgICAgbG9nKCJ3aW5kb3cubG9jYWxTdG9yYWdlIERPRVMg
Tk9UIGV4aXN0Iik7CiAKLSAgICBpZiAoIm9uc3RvcmFnZSIgaW4gd2luZG93KSB7CisgICAgaWYg
KCJvbnN0b3JhZ2UiIGluIHdpbmRvdykKICAgICAgICAgbG9nKCJ3aW5kb3cub25zdG9yYWdlIGV4
aXN0cyIpOwotICAgICAgICB0ZXN0T25zdG9yYWdlKCk7Ci0gICAgfSBlbHNlCisgICAgZWxzZQog
ICAgICAgICBsb2coIndpbmRvdy5vbnN0b3JhZ2UgRE9FUyBOT1QgZXhpc3QiKTsKIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLWJvZHkt
YXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDIgQEAKK1Ro
aXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBET00gU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9y
YWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9u
ZGluZyB0byB3aW5kb3cub25zdG9yYWdlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworVGVzdGluZyBzZXNzaW9uU3RvcmFnZQorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2Uu
bGVuZ3RoIGlzIDAKK2lmcmFtZS5vbmxvYWQgPSBzdGVwMQoraWZyYW1lLnNyYyA9ICdyZXNvdXJj
ZXMvYm9keS1ldmVudC1oYW5kbGVyLmh0bWwnCitSZXNldCBzdG9yYWdlIGV2ZW50IGxpc3QKK3N0
b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKQorc3RvcmFnZS5zZXRJdGVtKCdGT08nLCAnQkFS
JykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMQorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzBdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLm9sZFZhbHVlIGlz
IG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5uZXdWYWx1ZSBpcyAiQkFSIgorc3RvcmFn
ZS5zZXRJdGVtKCdGVScsICdCQVInKQorc3RvcmFnZS5zZXRJdGVtKCdhJywgJzEnKQorc3RvcmFn
ZS5zZXRJdGVtKCdiJywgJzInKQorc3RvcmFnZS5zZXRJdGVtKCdiJywgJzMnKQorUEFTUyBzdG9y
YWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA1CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ua2V5IGlz
ICJGVSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbMV0ubmV3VmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlz
dFsyXS5rZXkgaXMgImEiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ub2xkVmFsdWUgaXMgbnVs
bAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLm5ld1ZhbHVlIGlzICIxIgorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzNdLmtleSBpcyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5vbGRWYWx1
ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ubmV3VmFsdWUgaXMgIjIiCitQQVNT
IHN0b3JhZ2VFdmVudExpc3RbNF0ua2V5IGlzICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRd
Lm9sZFZhbHVlIGlzICIyIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLm5ld1ZhbHVlIGlzICIz
Igorc3RvcmFnZS5yZW1vdmVJdGVtKCdGT08nKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0
aCBpcyA2CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ua2V5IGlzICJGT08iCitQQVNTIHN0b3Jh
Z2VFdmVudExpc3RbNV0ub2xkVmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1
XS5uZXdWYWx1ZSBpcyBudWxsCitzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZVJykKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdC5sZW5ndGggaXMgNworUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLmtleSBpcyAi
RlUiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ub2xkVmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFs2XS5uZXdWYWx1ZSBpcyBudWxsCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgOAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLmtl
eSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbN10ub2xkVmFsdWUgaXMgbnVsbAorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzddLm5ld1ZhbHVlIGlzIG51bGwKKworCitUZXN0aW5nIGxvY2Fs
U3RvcmFnZQorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2UubGVuZ3RoIGlzIDAKK2lmcmFt
ZS5vbmxvYWQgPSBzdGVwMQoraWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvYm9keS1ldmVudC1oYW5k
bGVyLmh0bWwnCitSZXNldCBzdG9yYWdlIGV2ZW50IGxpc3QKK3N0b3JhZ2VFdmVudExpc3QgPSBu
ZXcgQXJyYXkoKQorc3RvcmFnZS5zZXRJdGVtKCdGT08nLCAnQkFSJykKK1BBU1Mgc3RvcmFnZUV2
ZW50TGlzdC5sZW5ndGggaXMgMQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLmtleSBpcyAiRk9P
IgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFswXS5uZXdWYWx1ZSBpcyAiQkFSIgorc3RvcmFnZS5zZXRJdGVtKCdGVScsICdC
QVInKQorc3RvcmFnZS5zZXRJdGVtKCdhJywgJzEnKQorc3RvcmFnZS5zZXRJdGVtKCdiJywgJzIn
KQorc3RvcmFnZS5zZXRJdGVtKCdiJywgJzMnKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0
aCBpcyA1CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ua2V5IGlzICJGVSIKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFsxXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0u
bmV3VmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5rZXkgaXMgImEiCitQ
QVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0WzJdLm5ld1ZhbHVlIGlzICIxIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLmtleSBp
cyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbM10ubmV3VmFsdWUgaXMgIjIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
NF0ua2V5IGlzICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLm9sZFZhbHVlIGlzICIyIgor
UEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLm5ld1ZhbHVlIGlzICIzIgorc3RvcmFnZS5yZW1vdmVJ
dGVtKCdGT08nKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA2CitQQVNTIHN0b3Jh
Z2VFdmVudExpc3RbNV0ua2V5IGlzICJGT08iCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ub2xk
VmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1XS5uZXdWYWx1ZSBpcyBudWxs
CitzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZVJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgg
aXMgNworUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLmtleSBpcyAiRlUiCitQQVNTIHN0b3JhZ2VF
dmVudExpc3RbNl0ub2xkVmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5u
ZXdWYWx1ZSBpcyBudWxsCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5s
ZW5ndGggaXMgOAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLmtleSBpcyBudWxsCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbN10ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0
WzddLm5ld1ZhbHVlIGlzIG51bGwKKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKworCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvZXZlbnRzL2Jhc2ljLWJvZHktYXR0cmlidXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJpYnV0ZS5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9i
YXNpYy1ib2R5LWF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50VGVzdEhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iYXNpYy1ib2R5LWF0
dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVu
dHMvYmFzaWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk4IEBACitUaGlz
IGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgRE9NIFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFn
ZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRp
bmcgdG8gd2luZG93Lm9uc3RvcmFnZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1Rlc3Rpbmcgc2Vzc2lvblN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlLmxl
bmd0aCBpcyAwCitSZXNldCBzdG9yYWdlIGV2ZW50IGxpc3QKK3N0b3JhZ2VFdmVudExpc3QgPSBu
ZXcgQXJyYXkoKQorc3RvcmFnZS5zZXRJdGVtKCdGT08nLCAnQkFSJykKK1BBU1Mgc3RvcmFnZUV2
ZW50TGlzdC5sZW5ndGggaXMgMQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLmtleSBpcyAiRk9P
IgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFswXS5uZXdWYWx1ZSBpcyAiQkFSIgorc3RvcmFnZS5zZXRJdGVtKCdGVScsICdC
QVInKQorc3RvcmFnZS5zZXRJdGVtKCdhJywgJzEnKQorc3RvcmFnZS5zZXRJdGVtKCdiJywgJzIn
KQorc3RvcmFnZS5zZXRJdGVtKCdiJywgJzMnKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0
aCBpcyA1CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ua2V5IGlzICJGVSIKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFsxXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0u
bmV3VmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5rZXkgaXMgImEiCitQ
QVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0WzJdLm5ld1ZhbHVlIGlzICIxIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLmtleSBp
cyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbM10ubmV3VmFsdWUgaXMgIjIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
NF0ua2V5IGlzICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLm9sZFZhbHVlIGlzICIyIgor
UEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLm5ld1ZhbHVlIGlzICIzIgorc3RvcmFnZS5yZW1vdmVJ
dGVtKCdGT08nKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA2CitQQVNTIHN0b3Jh
Z2VFdmVudExpc3RbNV0ua2V5IGlzICJGT08iCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ub2xk
VmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1XS5uZXdWYWx1ZSBpcyBudWxs
CitzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZVJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgg
aXMgNworUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLmtleSBpcyAiRlUiCitQQVNTIHN0b3JhZ2VF
dmVudExpc3RbNl0ub2xkVmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5u
ZXdWYWx1ZSBpcyBudWxsCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5s
ZW5ndGggaXMgOAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLmtleSBpcyBudWxsCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbN10ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0
WzddLm5ld1ZhbHVlIGlzIG51bGwKKworCitUZXN0aW5nIGxvY2FsU3RvcmFnZQorc3RvcmFnZS5j
bGVhcigpCitQQVNTIHN0b3JhZ2UubGVuZ3RoIGlzIDAKK1Jlc2V0IHN0b3JhZ2UgZXZlbnQgbGlz
dAorc3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgpCitzdG9yYWdlLnNldEl0ZW0oJ0ZPTycs
ICdCQVInKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHN0b3JhZ2VF
dmVudExpc3RbMF0ua2V5IGlzICJGT08iCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ub2xkVmFs
dWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLm5ld1ZhbHVlIGlzICJCQVIiCitz
dG9yYWdlLnNldEl0ZW0oJ0ZVJywgJ0JBUicpCitzdG9yYWdlLnNldEl0ZW0oJ2EnLCAnMScpCitz
dG9yYWdlLnNldEl0ZW0oJ2InLCAnMicpCitzdG9yYWdlLnNldEl0ZW0oJ2InLCAnMycpCitQQVNT
IHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDUKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5r
ZXkgaXMgIkZVIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLm9sZFZhbHVlIGlzIG51bGwKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5uZXdWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0WzJdLmtleSBpcyAiYSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5vbGRWYWx1ZSBp
cyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ubmV3VmFsdWUgaXMgIjEiCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbM10ua2V5IGlzICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLm9s
ZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5uZXdWYWx1ZSBpcyAiMiIK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5rZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExp
c3RbNF0ub2xkVmFsdWUgaXMgIjIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNF0ubmV3VmFsdWUg
aXMgIjMiCitzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZPTycpCitQQVNTIHN0b3JhZ2VFdmVudExpc3Qu
bGVuZ3RoIGlzIDYKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1XS5rZXkgaXMgIkZPTyIKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdFs1XS5vbGRWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzVdLm5ld1ZhbHVlIGlzIG51bGwKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRlUnKQorUEFTUyBz
dG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA3CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ua2V5
IGlzICJGVSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5vbGRWYWx1ZSBpcyAiQkFSIgorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzZdLm5ld1ZhbHVlIGlzIG51bGwKK3N0b3JhZ2UuY2xlYXIoKQor
UEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA4CitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
N10ua2V5IGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1ZSBpcyBudWxs
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbN10ubmV3VmFsdWUgaXMgbnVsbAorCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtc2V0YXR0cmlidXRlLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZl
bnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAyIEBACitUaGlzIGlzIGEgdGVzdCB0
byBtYWtlIHN1cmUgRE9NIFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0
IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gd2luZG93
Lm9uc3RvcmFnZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3Rpbmcgc2Vz
c2lvblN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCitp
ZnJhbWUub25sb2FkID0gc3RlcDEKK2lmcmFtZS5zcmMgPSAncmVzb3VyY2VzL3NldGF0dHJpYnV0
ZS1ldmVudC1oYW5kbGVyLmh0bWwnCitSZXNldCBzdG9yYWdlIGV2ZW50IGxpc3QKK3N0b3JhZ2VF
dmVudExpc3QgPSBuZXcgQXJyYXkoKQorc3RvcmFnZS5zZXRJdGVtKCdGT08nLCAnQkFSJykKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBd
LmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLm9sZFZhbHVlIGlzIG51bGwK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5uZXdWYWx1ZSBpcyAiQkFSIgorc3RvcmFnZS5zZXRJ
dGVtKCdGVScsICdCQVInKQorc3RvcmFnZS5zZXRJdGVtKCdhJywgJzEnKQorc3RvcmFnZS5zZXRJ
dGVtKCdiJywgJzInKQorc3RvcmFnZS5zZXRJdGVtKCdiJywgJzMnKQorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0Lmxlbmd0aCBpcyA1CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ua2V5IGlzICJGVSIK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VF
dmVudExpc3RbMV0ubmV3VmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5r
ZXkgaXMgImEiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ub2xkVmFsdWUgaXMgbnVsbAorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzJdLm5ld1ZhbHVlIGlzICIxIgorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzNdLmtleSBpcyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5vbGRWYWx1ZSBpcyBu
dWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ubmV3VmFsdWUgaXMgIjIiCitQQVNTIHN0b3Jh
Z2VFdmVudExpc3RbNF0ua2V5IGlzICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLm9sZFZh
bHVlIGlzICIyIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLm5ld1ZhbHVlIGlzICIzIgorc3Rv
cmFnZS5yZW1vdmVJdGVtKCdGT08nKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA2
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ua2V5IGlzICJGT08iCitQQVNTIHN0b3JhZ2VFdmVu
dExpc3RbNV0ub2xkVmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1XS5uZXdW
YWx1ZSBpcyBudWxsCitzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZVJykKK1BBU1Mgc3RvcmFnZUV2ZW50
TGlzdC5sZW5ndGggaXMgNworUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLmtleSBpcyAiRlUiCitQ
QVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ub2xkVmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2
ZW50TGlzdFs2XS5uZXdWYWx1ZSBpcyBudWxsCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdC5sZW5ndGggaXMgOAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLmtleSBpcyBu
dWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbN10ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9y
YWdlRXZlbnRMaXN0WzddLm5ld1ZhbHVlIGlzIG51bGwKKworCitUZXN0aW5nIGxvY2FsU3RvcmFn
ZQorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2UubGVuZ3RoIGlzIDAKK2lmcmFtZS5vbmxv
YWQgPSBzdGVwMQoraWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvc2V0YXR0cmlidXRlLWV2ZW50LWhh
bmRsZXIuaHRtbCcKK1Jlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdAorc3RvcmFnZUV2ZW50TGlzdCA9
IG5ldyBBcnJheSgpCitzdG9yYWdlLnNldEl0ZW0oJ0ZPTycsICdCQVInKQorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ua2V5IGlzICJG
T08iCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9y
YWdlRXZlbnRMaXN0WzBdLm5ld1ZhbHVlIGlzICJCQVIiCitzdG9yYWdlLnNldEl0ZW0oJ0ZVJywg
J0JBUicpCitzdG9yYWdlLnNldEl0ZW0oJ2EnLCAnMScpCitzdG9yYWdlLnNldEl0ZW0oJ2InLCAn
MicpCitzdG9yYWdlLnNldEl0ZW0oJ2InLCAnMycpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVu
Z3RoIGlzIDUKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5rZXkgaXMgIkZVIgorUEFTUyBzdG9y
YWdlRXZlbnRMaXN0WzFdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsx
XS5uZXdWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLmtleSBpcyAiYSIK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VF
dmVudExpc3RbMl0ubmV3VmFsdWUgaXMgIjEiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ua2V5
IGlzICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdFszXS5uZXdWYWx1ZSBpcyAiMiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlz
dFs0XS5rZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNF0ub2xkVmFsdWUgaXMgIjIi
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNF0ubmV3VmFsdWUgaXMgIjMiCitzdG9yYWdlLnJlbW92
ZUl0ZW0oJ0ZPTycpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDYKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFs1XS5rZXkgaXMgIkZPTyIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1XS5v
bGRWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLm5ld1ZhbHVlIGlzIG51
bGwKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRlUnKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0
aCBpcyA3CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ua2V5IGlzICJGVSIKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFs2XS5vbGRWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZd
Lm5ld1ZhbHVlIGlzIG51bGwKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0
Lmxlbmd0aCBpcyA4CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbN10ua2V5IGlzIG51bGwKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExp
c3RbN10ubmV3VmFsdWUgaXMgbnVsbAorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCisKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9ldmVudHMvYmFzaWMtc2V0YXR0cmlidXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1dGUuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFz
aWMtc2V0YXR0cmlidXRlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnRUZXN0SGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Jhc2ljLXNldGF0dHJpYnV0
ZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2V2ZW50VGVzdEhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9iYXNpYy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Nhc2Utc2Vuc2l0aXZlLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZl
bnRzL2Nhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitUZXN0IHNvbWUgY29ybmVyIGNhc2UgRE9N
IFN0b3JhZ2UgdmFsdWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdGlu
ZyBzZXNzaW9uU3RvcmFnZQorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2UubGVuZ3RoIGlz
IDAKKworVmVyaWZ5IHN0b3JhZ2UgZXZlbnRzIGFyZSBjYXNlIHNlbnNpdGl2ZQorc3RvcmFnZS5m
b28gPSAndGVzdCcKK1Jlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdAorc3RvcmFnZUV2ZW50TGlzdCA9
IG5ldyBBcnJheSgpCitzdG9yYWdlLmZvbyA9ICd0ZXN0JworUEFTUyBzdG9yYWdlRXZlbnRMaXN0
Lmxlbmd0aCBpcyAwCitzdG9yYWdlLmZvbyA9ICdURVNUJworUEFTUyBzdG9yYWdlRXZlbnRMaXN0
Lmxlbmd0aCBpcyAxCisKKworVGVzdGluZyBsb2NhbFN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQor
UEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCisKK1ZlcmlmeSBzdG9yYWdlIGV2ZW50cyBhcmUgY2Fz
ZSBzZW5zaXRpdmUKK3N0b3JhZ2UuZm9vID0gJ3Rlc3QnCitSZXNldCBzdG9yYWdlIGV2ZW50IGxp
c3QKK3N0b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKQorc3RvcmFnZS5mb28gPSAndGVzdCcK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMAorc3RvcmFnZS5mb28gPSAnVEVTVCcK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMQorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvY2FzZS1zZW5zaXRpdmUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Nhc2Utc2Vuc2l0aXZlLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRz
L2Nhc2Utc2Vuc2l0aXZlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnRUZXN0SGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Nhc2Utc2Vuc2l0aXZlLmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9ldmVudHMvZG9jdW1lbnRVUkktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvZG9jdW1lbnRVUkktZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2
ZW50cy9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAg
QEAKK1Rlc3QgdGhhdCBjaGFuZ2luZyBkb2N1bWVudFVSSSBoYXMgbm8gZWZmZWN0cyBvbiBzdG9y
YWdlIGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3Rpbmcgc2Vz
c2lvblN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCitS
ZXNldCBzdG9yYWdlIGV2ZW50IGxpc3QKK3N0b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKQor
c3RvcmFnZS5mb28gPSAnMTIzJworUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAxCitT
YXZpbmcgVVJJCitkb2N1bWVudC5kb2N1bWVudFVSSSA9ICdhYmMnCitQQVNTIGRvY3VtZW50LmRv
Y3VtZW50VVJJIGlzICJhYmMiCitzdG9yYWdlLmZvbyA9ICd4eXonCitQQVNTIHN0b3JhZ2VFdmVu
dExpc3QubGVuZ3RoIGlzIDIKK1BBU1MgdHJ1ZSBpcyB0cnVlCisKKworVGVzdGluZyBsb2NhbFN0
b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCitSZXNldCBz
dG9yYWdlIGV2ZW50IGxpc3QKK3N0b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKQorc3RvcmFn
ZS5mb28gPSAnMTIzJworUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAxCitTYXZpbmcg
VVJJCitkb2N1bWVudC5kb2N1bWVudFVSSSA9ICdhYmMnCitQQVNTIGRvY3VtZW50LmRvY3VtZW50
VVJJIGlzICJhYmMiCitzdG9yYWdlLmZvbyA9ICd4eXonCitQQVNTIHN0b3JhZ2VFdmVudExpc3Qu
bGVuZ3RoIGlzIDIKK1BBU1MgdHJ1ZSBpcyB0cnVlCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2V2ZW50cy9kb2N1bWVudFVSSS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvZG9jdW1lbnRVUkkuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvZG9jdW1lbnRV
UkkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50
cy9yZXNvdXJjZXMvYm9keS1ldmVudC1oYW5kbGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9yZXNvdXJjZXMvYm9keS1ldmVudC1oYW5k
bGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
ZXZlbnRzL3Jlc291cmNlcy9ib2R5LWV2ZW50LWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw4IEBACis8aHRtbD48aGVhZD48c2NyaXB0PgorCitmdW5jdGlvbiBoYW5kbGVTdG9y
YWdlRXZlbnQoZSkgeworICAgIHdpbmRvdy5wYXJlbnQuc3RvcmFnZUV2ZW50TGlzdC5wdXNoKGUp
OworfQorCis8L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25zdG9yYWdlPSJoYW5kbGVTdG9yYWdlRXZl
bnQod2luZG93LmV2ZW50KTsiPgorPC9ib2R5PjwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2V2ZW50VGVzdEhhcm5lc3MuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9yZXNvdXJj
ZXMvZXZlbnRUZXN0SGFybmVzcy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2V2ZW50VGVzdEhhcm5lc3MuanMJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZnJhbWUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJJRlJBTUUiKTsKK2lmcmFtZS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1l
bnQuYm9keS5pbm5lclRleHQgPSAiTm90aGluZyB0byBzZWUgaGVyZS4iOworCitzdG9yYWdlRXZl
bnRMaXN0ID0gbmV3IEFycmF5KCk7CitpZnJhbWUuY29udGVudFdpbmRvdy5vbnN0b3JhZ2UgPSBm
dW5jdGlvbiAoZSkgeworICAgIHdpbmRvdy5wYXJlbnQuc3RvcmFnZUV2ZW50TGlzdC5wdXNoKGUp
OworfQorCitmdW5jdGlvbiBydW5BZnRlclN0b3JhZ2VFdmVudHMoY2FsbGJhY2spIHsKKyAgICB2
YXIgY3VycmVudENvdW50ID0gc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGg7CisgICAgZnVuY3Rpb24g
b25UaW1lb3V0KCkgeworICAgICAgICBpZiAoY3VycmVudENvdW50ICE9IHN0b3JhZ2VFdmVudExp
c3QubGVuZ3RoKQorICAgICAgICAgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKGNhbGxiYWNrKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9CisgICAgc2V0VGlt
ZW91dChvblRpbWVvdXQsIDApOworfQorCitmdW5jdGlvbiB0ZXN0U3RvcmFnZXModGVzdENhbGxi
YWNrKQoreworICAgIC8vIFdoZW4gd2UncmUgZG9uZSB0ZXN0aW5nIExvY2FsU3RvcmFnZSwgdGhp
cyBpcyBydW4uCisgICAgZnVuY3Rpb24gYWxsRG9uZSgpCisgICAgeworICAgICAgICBkZWJ1Zygi
Iik7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CisgICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQorICAgIH0KKworICAgIC8vIFdo
ZW4gd2UncmUgZG9uZSB0ZXN0aW5nIHdpdGggU2Vzc2lvblN0b3JhZ2UsIHRoaXMgaXMgcnVuLgor
ICAgIGZ1bmN0aW9uIHJ1bkxvY2FsU3RvcmFnZSgpCisgICAgeworICAgICAgICBkZWJ1ZygiIik7
CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgdGVzdENhbGxiYWNrKCJsb2NhbFN0b3JhZ2Ui
LCBhbGxEb25lKTsKKyAgICB9CisKKyAgICAvLyBGaXJzdCBydW4gdGhlIHRlc3Qgd2l0aCBTZXNz
aW9uU3RvcmFnZS4KKyAgICB0ZXN0Q2FsbGJhY2soInNlc3Npb25TdG9yYWdlIiwgcnVuTG9jYWxT
dG9yYWdlKTsKK30KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMv
cmVzb3VyY2VzL3NldGF0dHJpYnV0ZS1ldmVudC1oYW5kbGVyLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9yZXNvdXJjZXMvc2V0YXR0cmli
dXRlLWV2ZW50LWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL3NldGF0dHJpYnV0ZS1ldmVudC1oYW5kbGVy
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1sPjxoZWFkPjwvaGVhZD48
Ym9keT4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudChlKSB7CisgICAg
d2luZG93LnBhcmVudC5zdG9yYWdlRXZlbnRMaXN0LnB1c2goZSk7Cit9CisKK2RvY3VtZW50LmJv
ZHkuc2V0QXR0cmlidXRlKCJvbnN0b3JhZ2UiLCAiaGFuZGxlU3RvcmFnZUV2ZW50KHdpbmRvdy5l
dmVudCk7Iik7CisKKzwvc2NyaXB0PgorPC9ib2R5PjwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQt
dGVzdHMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gNTMyMzIpCShmcm9tIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbDo1MzIzMikKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRF
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RF
TVBMQVRFLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2V2ZW50cy9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzEsMTMgQEAKIDxodG1sPgogPGhlYWQ+Ci08bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJZT1VS
X0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy1ib2R5LWF0
dHJpYnV0ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
ZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy1ib2R5LWF0dHJpYnV0ZS5qcwkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Jh
c2ljLWJvZHktYXR0cmlidXRlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk4IEBACitkZXNj
cmlwdGlvbigiVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIERPTSBTdG9yYWdlIG11dGF0aW9u
cyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5l
ciBjb3JyZXNwb25kaW5nIHRvIHdpbmRvdy5vbnN0b3JhZ2UuIik7CisKK2Z1bmN0aW9uIHRlc3Qo
c3RvcmFnZVN0cmluZywgY2FsbGJhY2spCit7CisgICAgd2luZG93LmNvbXBsZXRpb25DYWxsYmFj
ayA9IGNhbGxiYWNrOworICAgIHdpbmRvdy5zdG9yYWdlID0gZXZhbChzdG9yYWdlU3RyaW5nKTsK
KyAgICBpZiAoIXN0b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZhaWxlZChzdG9yYWdlU3RyaW5nICsg
IiBET0VTIE5PVCBleGlzdCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGVidWco
IlRlc3RpbmcgIiArIHN0b3JhZ2VTdHJpbmcpOworCisgICAgZXZhbEFuZExvZygic3RvcmFnZS5j
bGVhcigpIik7CisgICAgc2hvdWxkQmUoInN0b3JhZ2UubGVuZ3RoIiwgIjAiKTsKKworICAgIGV2
YWxBbmRMb2coImlmcmFtZS5vbmxvYWQgPSBzdGVwMSIpOworICAgIGV2YWxBbmRMb2coImlmcmFt
ZS5zcmMgPSAncmVzb3VyY2VzL2JvZHktZXZlbnQtaGFuZGxlci5odG1sJyIpOworfQorCitmdW5j
dGlvbiBzdGVwMSgpCit7CisgICAgZGVidWcoIlJlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdCIpOwor
ICAgIGV2YWxBbmRMb2coInN0b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKSIpOworICAgIGV2
YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnRk9PJywgJ0JBUicpIik7CisKKyAgICBydW5BZnRl
clN0b3JhZ2VFdmVudHMoc3RlcDIpOworfQorCitmdW5jdGlvbiBzdGVwMigpCit7CisgICAgc2hv
dWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjEiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMF0ua2V5IiwgIkZPTyIpOworICAgIHNob3VsZEJl
TnVsbCgic3RvcmFnZUV2ZW50TGlzdFswXS5vbGRWYWx1ZSIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFswXS5uZXdWYWx1ZSIsICJCQVIiKTsKKyAgICBldmFs
QW5kTG9nKCJzdG9yYWdlLnNldEl0ZW0oJ0ZVJywgJ0JBUicpIik7CisgICAgZXZhbEFuZExvZygi
c3RvcmFnZS5zZXRJdGVtKCdhJywgJzEnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0
SXRlbSgnYicsICcyJykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNldEl0ZW0oJ2InLCAn
MycpIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDMpOworfQorCitmdW5jdGlv
biBzdGVwMygpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjUi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMV0ua2V5Iiwg
IkZVIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzFdLm9sZFZhbHVlIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzFdLm5ld1ZhbHVl
IiwgIkJBUiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFsy
XS5rZXkiLCAiYSIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFsyXS5vbGRW
YWx1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFsyXS5u
ZXdWYWx1ZSIsICIxIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRM
aXN0WzNdLmtleSIsICJiIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzNd
Lm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0
WzNdLm5ld1ZhbHVlIiwgIjIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VF
dmVudExpc3RbNF0ua2V5IiwgImIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3Jh
Z2VFdmVudExpc3RbNF0ub2xkVmFsdWUiLCAiMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygic3RvcmFnZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSIsICIzIik7CisgICAgZXZhbEFuZExvZygi
c3RvcmFnZS5yZW1vdmVJdGVtKCdGT08nKSIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRz
KHN0ZXA0KTsKK30KKworZnVuY3Rpb24gc3RlcDQoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdl
RXZlbnRMaXN0Lmxlbmd0aCIsICI2Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9y
YWdlRXZlbnRMaXN0WzVdLmtleSIsICJGT08iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InN0b3JhZ2VFdmVudExpc3RbNV0ub2xkVmFsdWUiLCAiQkFSIik7CisgICAgc2hvdWxkQmVOdWxs
KCJzdG9yYWdlRXZlbnRMaXN0WzVdLm5ld1ZhbHVlIik7CisgICAgZXZhbEFuZExvZygic3RvcmFn
ZS5yZW1vdmVJdGVtKCdGVScpIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDUp
OworfQorCitmdW5jdGlvbiBzdGVwNSgpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExp
c3QubGVuZ3RoIiwgIjciKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVu
dExpc3RbNl0ua2V5IiwgIkZVIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdl
RXZlbnRMaXN0WzZdLm9sZFZhbHVlIiwgIkJBUiIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFn
ZUV2ZW50TGlzdFs2XS5uZXdWYWx1ZSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuY2xlYXIo
KSIpOworIAorICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwNik7Cit9CisKK2Z1bmN0aW9u
IHN0ZXA2KCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiOCIp
OworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFs3XS5rZXkiKTsKKyAgICBzaG91
bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbN10ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZU51
bGwoInN0b3JhZ2VFdmVudExpc3RbN10ubmV3VmFsdWUiKTsKKyAKKyAgICBjb21wbGV0aW9uQ2Fs
bGJhY2soKTsKK30KKwordGVzdFN0b3JhZ2VzKHRlc3QpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMv
c2NyaXB0LXRlc3RzL2Jhc2ljLXNldGF0dHJpYnV0ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy1zZXRhdHRy
aWJ1dGUuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
ZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy1zZXRhdHRyaWJ1dGUuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsOTggQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUg
RE9NIFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQg
YnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gd2luZG93Lm9uc3RvcmFnZS4i
KTsKKworZnVuY3Rpb24gdGVzdChzdG9yYWdlU3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICB3aW5k
b3cuY29tcGxldGlvbkNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgd2luZG93LnN0b3JhZ2UgPSBl
dmFsKHN0b3JhZ2VTdHJpbmcpOworICAgIGlmICghc3RvcmFnZSkgeworICAgICAgICB0ZXN0RmFp
bGVkKHN0b3JhZ2VTdHJpbmcgKyAiIERPRVMgTk9UIGV4aXN0Iik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBkZWJ1ZygiVGVzdGluZyAiICsgc3RvcmFnZVN0cmluZyk7CisKKyAgICBl
dmFsQW5kTG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsKKyAgICBzaG91bGRCZSgic3RvcmFnZS5sZW5n
dGgiLCAiMCIpOworCisgICAgZXZhbEFuZExvZygiaWZyYW1lLm9ubG9hZCA9IHN0ZXAxIik7Cisg
ICAgZXZhbEFuZExvZygiaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvc2V0YXR0cmlidXRlLWV2ZW50
LWhhbmRsZXIuaHRtbCciKTsKK30KKworZnVuY3Rpb24gc3RlcDEoKQoreworICAgIGRlYnVnKCJS
ZXNldCBzdG9yYWdlIGV2ZW50IGxpc3QiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlRXZlbnRM
aXN0ID0gbmV3IEFycmF5KCkiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNldEl0ZW0oJ0ZP
TycsICdCQVInKSIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAyKTsKK30KKwor
ZnVuY3Rpb24gc3RlcDIoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0
aCIsICIxIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzBd
LmtleSIsICJGT08iKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbMF0ub2xk
VmFsdWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMF0u
bmV3VmFsdWUiLCAiQkFSIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdGVScs
ICdCQVInKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnYScsICcxJykiKTsK
KyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNldEl0ZW0oJ2InLCAnMicpIik7CisgICAgZXZhbEFu
ZExvZygic3RvcmFnZS5zZXRJdGVtKCdiJywgJzMnKSIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdl
RXZlbnRzKHN0ZXAzKTsKK30KKworZnVuY3Rpb24gc3RlcDMoKQoreworICAgIHNob3VsZEJlKCJz
dG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICI1Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJzdG9yYWdlRXZlbnRMaXN0WzFdLmtleSIsICJGVSIpOworICAgIHNob3VsZEJlTnVsbCgic3Rv
cmFnZUV2ZW50TGlzdFsxXS5vbGRWYWx1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
c3RvcmFnZUV2ZW50TGlzdFsxXS5uZXdWYWx1ZSIsICJCQVIiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMl0ua2V5IiwgImEiKTsKKyAgICBzaG91bGRCZU51
bGwoInN0b3JhZ2VFdmVudExpc3RbMl0ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMl0ubmV3VmFsdWUiLCAiMSIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFszXS5rZXkiLCAiYiIpOworICAgIHNob3Vs
ZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFszXS5vbGRWYWx1ZSIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFszXS5uZXdWYWx1ZSIsICIyIik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzRdLmtleSIsICJiIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzRdLm9sZFZhbHVlIiwgIjIi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNF0ubmV3VmFs
dWUiLCAiMyIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UucmVtb3ZlSXRlbSgnRk9PJykiKTsK
KworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwNCk7Cit9CisKK2Z1bmN0aW9uIHN0ZXA0
KCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiNiIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs1XS5rZXkiLCAiRk9PIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzVdLm9sZFZhbHVl
IiwgIkJBUiIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFs1XS5uZXdWYWx1
ZSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UucmVtb3ZlSXRlbSgnRlUnKSIpOworCisgICAg
cnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXA1KTsKK30KKworZnVuY3Rpb24gc3RlcDUoKQorewor
ICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICI3Iik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzZdLmtleSIsICJGVSIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs2XS5vbGRWYWx1ZSIsICJCQVIi
KTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFsdWUiKTsKKyAg
ICBldmFsQW5kTG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsKKyAKKyAgICBydW5BZnRlclN0b3JhZ2VF
dmVudHMoc3RlcDYpOworfQorCitmdW5jdGlvbiBzdGVwNigpCit7CisgICAgc2hvdWxkQmUoInN0
b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjgiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VF
dmVudExpc3RbN10ua2V5Iik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0Wzdd
Lm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzddLm5ld1Zh
bHVlIik7CisgCisgICAgY29tcGxldGlvbkNhbGxiYWNrKCk7Cit9CisKK3Rlc3RTdG9yYWdlcyh0
ZXN0KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0
cy9iYXNpYy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk3
IEBACitkZXNjcmlwdGlvbigiVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIERPTSBTdG9yYWdl
IG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVu
dCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIHdpbmRvdy5vbnN0b3JhZ2UuIik7CisKK2Z1bmN0
aW9uIHRlc3Qoc3RvcmFnZVN0cmluZywgY2FsbGJhY2spCit7CisgICAgd2luZG93LmNvbXBsZXRp
b25DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIHdpbmRvdy5zdG9yYWdlID0gZXZhbChzdG9yYWdl
U3RyaW5nKTsKKyAgICBpZiAoIXN0b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZhaWxlZChzdG9yYWdl
U3RyaW5nICsgIiBET0VTIE5PVCBleGlzdCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgZGVidWcoIlRlc3RpbmcgIiArIHN0b3JhZ2VTdHJpbmcpOworCisgICAgZXZhbEFuZExvZygi
c3RvcmFnZS5jbGVhcigpIik7CisgICAgc2hvdWxkQmUoInN0b3JhZ2UubGVuZ3RoIiwgIjAiKTsK
KworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwMSk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAx
KCkKK3sKKyAgICBkZWJ1ZygiUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0Iik7CisgICAgZXZhbEFu
ZExvZygic3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgpIik7CisgICAgZXZhbEFuZExvZygi
c3RvcmFnZS5zZXRJdGVtKCdGT08nLCAnQkFSJykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2
ZW50cyhzdGVwMik7Cit9CisKK2Z1bmN0aW9uIHN0ZXAyKCkKK3sKKyAgICBzaG91bGRCZSgic3Rv
cmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiMSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
c3RvcmFnZUV2ZW50TGlzdFswXS5rZXkiLCAiRk9PIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9y
YWdlRXZlbnRMaXN0WzBdLm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJz
dG9yYWdlRXZlbnRMaXN0WzBdLm5ld1ZhbHVlIiwgIkJBUiIpOworICAgIGV2YWxBbmRMb2coInN0
b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNl
dEl0ZW0oJ2EnLCAnMScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdiJywg
JzInKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnYicsICczJykiKTsKKwor
ICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwMyk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAzKCkK
K3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiNSIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFsxXS5rZXkiLCAiRlUiKTsKKyAg
ICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbMV0ub2xkVmFsdWUiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMV0ubmV3VmFsdWUiLCAiQkFSIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzJdLmtleSIsICJh
Iik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzJdLm9sZFZhbHVlIik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzJdLm5ld1ZhbHVlIiwg
IjEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbM10ua2V5
IiwgImIiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbM10ubmV3VmFs
dWUiLCAiMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs0
XS5rZXkiLCAiYiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlz
dFs0XS5vbGRWYWx1ZSIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdl
RXZlbnRMaXN0WzRdLm5ld1ZhbHVlIiwgIjMiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnJl
bW92ZUl0ZW0oJ0ZPTycpIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDQpOwor
fQorCitmdW5jdGlvbiBzdGVwNCgpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3Qu
bGVuZ3RoIiwgIjYiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExp
c3RbNV0ua2V5IiwgIkZPTyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2
ZW50TGlzdFs1XS5vbGRWYWx1ZSIsICJCQVIiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VF
dmVudExpc3RbNV0ubmV3VmFsdWUiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnJlbW92ZUl0
ZW0oJ0ZVJykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwNSk7Cit9CisKK2Z1
bmN0aW9uIHN0ZXA1KCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgi
LCAiNyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs2XS5r
ZXkiLCAiRlUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3Rb
Nl0ub2xkVmFsdWUiLCAiQkFSIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0
WzZdLm5ld1ZhbHVlIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5jbGVhcigpIik7CisgCisg
ICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXA2KTsKK30KKworZnVuY3Rpb24gc3RlcDYoKQor
eworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICI4Iik7CisgICAgc2hv
dWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzddLmtleSIpOworICAgIHNob3VsZEJlTnVsbCgi
c3RvcmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1ZSIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFn
ZUV2ZW50TGlzdFs3XS5uZXdWYWx1ZSIpOworIAorICAgIGNvbXBsZXRpb25DYWxsYmFjaygpOwor
fQorCit0ZXN0U3RvcmFnZXModGVzdCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVz
dHMvY2FzZS1zZW5zaXRpdmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvY2FzZS1zZW5zaXRpdmUuanMJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0
cy9jYXNlLXNlbnNpdGl2ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorZGVzY3Jp
cHRpb24oIlRlc3Qgc29tZSBjb3JuZXIgY2FzZSBET00gU3RvcmFnZSB2YWx1ZXMuIik7CisKK2Z1
bmN0aW9uIHRlc3Qoc3RvcmFnZVN0cmluZywgY2FsbGJhY2spCit7CisgICAgd2luZG93LmNvbXBs
ZXRpb25DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIHdpbmRvdy5zdG9yYWdlID0gZXZhbChzdG9y
YWdlU3RyaW5nKTsKKyAgICBpZiAoIXN0b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZhaWxlZChzdG9y
YWdlU3RyaW5nICsgIiBET0VTIE5PVCBleGlzdCIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZGVidWcoIlRlc3RpbmcgIiArIHN0b3JhZ2VTdHJpbmcpOworCisgICAgZXZhbEFuZExv
Zygic3RvcmFnZS5jbGVhcigpIik7CisgICAgc2hvdWxkQmUoInN0b3JhZ2UubGVuZ3RoIiwgIjAi
KTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVmVyaWZ5IHN0b3JhZ2UgZXZlbnRzIGFy
ZSBjYXNlIHNlbnNpdGl2ZSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0gJ3Rlc3Qn
Iik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDEpOworfQorCitmdW5jdGlvbiBz
dGVwMSgpCit7CisgICAgZGVidWcoIlJlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdCIpOworICAgIGV2
YWxBbmRMb2coInN0b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKSIpOworICAgIGV2YWxBbmRM
b2coInN0b3JhZ2UuZm9vID0gJ3Rlc3QnIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMo
c3RlcDIpOworfQorCitmdW5jdGlvbiBzdGVwMigpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VF
dmVudExpc3QubGVuZ3RoIiwgIjAiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICdU
RVNUJyIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAzKTsKK30KKworZnVuY3Rp
b24gc3RlcDMoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICIx
Iik7CisKKyAgICBjb21wbGV0aW9uQ2FsbGJhY2soKTsKK30KKwordGVzdFN0b3JhZ2VzKHRlc3Qp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRl
c3RzL2RvY3VtZW50VVJJLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgY2hhbmdpbmcgZG9jdW1l
bnRVUkkgaGFzIG5vIGVmZmVjdHMgb24gc3RvcmFnZSBldmVudHMuIik7CisKK2Z1bmN0aW9uIHRl
c3Qoc3RvcmFnZVN0cmluZywgY2FsbGJhY2spCit7CisgICAgd2luZG93LmNvbXBsZXRpb25DYWxs
YmFjayA9IGNhbGxiYWNrOworICAgIHdpbmRvdy5zdG9yYWdlID0gZXZhbChzdG9yYWdlU3RyaW5n
KTsKKyAgICBpZiAoIXN0b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZhaWxlZChzdG9yYWdlU3RyaW5n
ICsgIiBET0VTIE5PVCBleGlzdCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGVi
dWcoIlRlc3RpbmcgIiArIHN0b3JhZ2VTdHJpbmcpOworCisgICAgZXZhbEFuZExvZygic3RvcmFn
ZS5jbGVhcigpIik7CisgICAgc2hvdWxkQmUoInN0b3JhZ2UubGVuZ3RoIiwgIjAiKTsKKworICAg
IHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwMSk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAxKCkKK3sK
KyAgICBkZWJ1ZygiUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0Iik7CisgICAgZXZhbEFuZExvZygi
c3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgpIik7CisgICAgZXZhbEFuZExvZygic3RvcmFn
ZS5mb28gPSAnMTIzJyIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAyKTsKK30K
KworZnVuY3Rpb24gc3RlcDIoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxl
bmd0aCIsICIxIik7CisgICAgZGVidWcoIlNhdmluZyBVUkkiKTsKKyAgICB3aW5kb3cubGFzdFVS
SSA9IHN0b3JhZ2VFdmVudExpc3RbMF0udXJpOworCisgICAgZXZhbEFuZExvZygiZG9jdW1lbnQu
ZG9jdW1lbnRVUkkgPSAnYWJjJyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1l
bnQuZG9jdW1lbnRVUkkiLCAiYWJjIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28gPSAn
eHl6JyIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAzKTsKK30KKworZnVuY3Rp
b24gc3RlcDMoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICIy
Iik7CisgICAgc2hvdWxkQmVUcnVlKFN0cmluZyh3aW5kb3cubGFzdFVSSSA9PSBzdG9yYWdlRXZl
bnRMaXN0WzFdLnVyaSkpOworCisgICAgY29tcGxldGlvbkNhbGxiYWNrKCk7Cit9CisKK3Rlc3RT
dG9yYWdlcyh0ZXN0KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDUzMjMy
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUt
ZXZlbnRzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3OSArMCwwIEBACi1UaGlz
IGlzIHRoZSBtYWluIGZyYW1lIG9mIGEgMi1mcmFtZSBkb2N1bWVudC4gRWFjaCBmcmFtZSBpcyBp
biB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYW5kIHRoZXJlZm9yZSBzaGFyZXMgdGhlIHNhbWUg
bG9jYWxTdG9yYWdlIG9iamVjdC4gQXMgYSByZXN1bHQsIGVhY2ggZnJhbWUgc2hvdWxkIHJlY2Vp
dmUgYSBTdG9yYWdlRXZlbnQgd2hlbiBlaXRoZXIgZnJhbWUgY2hhbmdlcyB0aGUgbG9jYWxTdG9y
YWdlIG9iamVjdC4KLQotTWFpbiBmcmFtZSBhYm91dCB0byBydW4gc2V0SXRlbSBvbiBsb2NhbFN0
b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQgU3RvcmFnZUV2ZW50OgotS2V5IC0gTWFpbiBG
cmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAotU3Rv
cmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLVN1YmZyYW1l
IHJlY2VpdmVkIHN0b3JhZ2UgZXZlbnQ6Ci1LZXkgLSBNYWluIEZyYW1lCi1OZXcgVmFsdWUgLSBT
RVQKLU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdp
bmRvdydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UKLQotU3ViZnJhbWUgYWJvdXQgdG8gY2hhbmdlIGxv
Y2FsU3RvcmFnZS4uLgotTWFpbiBGcmFtZSByZWNlaXZlZCBTdG9yYWdlRXZlbnQ6Ci1LZXkgLSBT
dWJmcmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Jlc291cmNlcy9pZnJhbWUtZXZl
bnRzLXNlY29uZC5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5sb2Nh
bFN0b3JhZ2UKLQotU3ViZnJhbWUgcmVjZWl2ZWQgc3RvcmFnZSBldmVudDoKLUtleSAtIFN1YmZy
YW1lCi1OZXcgVmFsdWUgLSBTRVQKLU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvcmVzb3VyY2VzL2lmcmFtZS1ldmVudHMt
c2Vjb25kLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3Rv
cmFnZQotCi1NYWluIGZyYW1lIGFib3V0IHRvIHJ1biByZW1vdmVJdGVtIG9uIGxvY2FsU3RvcmFn
ZS4uLgotTWFpbiBGcmFtZSByZWNlaXZlZCBTdG9yYWdlRXZlbnQ6Ci1LZXkgLSBNYWluIEZyYW1l
Ci1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBTRVQKLVVSSSAtIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdl
IEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UKLQotU3ViZnJhbWUgcmVj
ZWl2ZWQgc3RvcmFnZSBldmVudDoKLUtleSAtIE1haW4gRnJhbWUKLU5ldyBWYWx1ZSAtIG51bGwK
LU9sZCBWYWx1ZSAtIFNFVAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93
J3Mgd2luZG93LmxvY2FsU3RvcmFnZQotCi1TdWJmcmFtZSBhYm91dCB0byBjaGFuZ2UgbG9jYWxT
dG9yYWdlLi4uCi1NYWluIGZyYW1lIGFib3V0IHRvIGNsZWFyIGxvY2FsU3RvcmFnZS4uLgotTWFp
biBGcmFtZSByZWNlaXZlZCBTdG9yYWdlRXZlbnQ6Ci1LZXkgLSAKLU5ldyBWYWx1ZSAtIG51bGwK
LU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRv
dydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UKLQotU3ViZnJhbWUgcmVjZWl2ZWQgc3RvcmFnZSBldmVu
dDoKLUtleSAtIAotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0
bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3RvcmFnZQotCi1T
dWJmcmFtZSBhYm91dCB0byBjaGFuZ2UgbG9jYWxTdG9yYWdlLi4uCi1NYWluIEZyYW1lIHJlY2Vp
dmVkIFN0b3JhZ2VFdmVudDoKLUtleSAtIFN1YmZyYW1lCi1OZXcgVmFsdWUgLSBTRVQKLU9sZCBW
YWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0
b3JhZ2UvcmVzb3VyY2VzL2lmcmFtZS1ldmVudHMtc2Vjb25kLmh0bWwKLVN0b3JhZ2UgQXJlYSAt
IFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZlZCBz
dG9yYWdlIGV2ZW50OgotS2V5IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZhbHVl
IC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9yZXNvdXJjZXMvaWZyYW1lLWV2ZW50cy1zZWNvbmQuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhp
cyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvc3Rv
cmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUt
ZXZlbnRzLmh0bWwJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNjYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2xl
YXJMb2NhbFN0b3JhZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLWZ1bmN0
aW9uIGxvZyhhKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5l
ckhUTUwgKz0gYSArICI8YnI+IjsKLX0KLQotZnVuY3Rpb24gbm9ybWFsaXplVVJMKHVybCkKLXsK
LSAgICByZXR1cm4gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoIkxheW91dFRlc3RzIikp
OwotfQotCi1mdW5jdGlvbiBmaW5pc2goKQotewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQotfQot
Ci1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoZSkKLXsKLSAgICBsb2coIk1haW4gRnJhbWUg
cmVjZWl2ZWQgU3RvcmFnZUV2ZW50OiIpOwotICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBl
LmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGUubmV3VmFsdWUpOwotICAgIGxv
ZygiT2xkIFZhbHVlICAgICAtICIgKyBlLm9sZFZhbHVlKTsKLSAgICBsb2coIlVSSSAgICAgICAg
ICAgLSAiICsgbm9ybWFsaXplVVJMKGUudXJpKSk7Ci0gICAgbG9nKCJTdG9yYWdlIEFyZWEgIC0g
IiArICgoZS5zdG9yYWdlQXJlYSA9PSB3aW5kb3cubG9jYWxTdG9yYWdlKSA/ICJUaGlzIHdpbmRv
dydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UiIDogIkFub3RoZXIgd2luZG93J3Mgd2luZG93LmxvY2Fs
U3RvcmFnZSIpKTsKLSAgICBsb2coIiIpOwotICAgIAotICAgIGlmIChlLmtleSA9PSAiU3ViZnJh
bWUiKQotICAgICAgICBmaW5pc2goKTsKLX0KLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAg
ICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cubG9jYWxT
dG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIGZpbmlzaCgpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCBoYW5k
bGVTdG9yYWdlRXZlbnQsIGZhbHNlKTsKLSAgICBsb2coIk1haW4gZnJhbWUgYWJvdXQgdG8gcnVu
IHNldEl0ZW0gb24gbG9jYWxTdG9yYWdlLi4uIik7Ci0gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0o
Ik1haW4gRnJhbWUiLCAiU0VUIik7Ci0gICAgbG9nKCJNYWluIGZyYW1lIGFib3V0IHRvIHJ1biBy
ZW1vdmVJdGVtIG9uIGxvY2FsU3RvcmFnZS4uLiIpOwotICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJ
dGVtKCJNYWluIEZyYW1lIik7Ci0gICAgbG9nKCJNYWluIGZyYW1lIGFib3V0IHRvIGNsZWFyIGxv
Y2FsU3RvcmFnZS4uLiIpOwotICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpOwotfQotCi08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCk7Ij4KLVRoaXMgaXMgdGhlIG1h
aW4gZnJhbWUgb2YgYSAyLWZyYW1lIGRvY3VtZW50LiAgRWFjaCBmcmFtZSBpcyBpbiB0aGUgc2Ft
ZSBzZWN1cml0eSBvcmlnaW4gYW5kIHRoZXJlZm9yZSBzaGFyZXMgdGhlIHNhbWUgbG9jYWxTdG9y
YWdlIG9iamVjdC4KLUFzIGEgcmVzdWx0LCBlYWNoIGZyYW1lIHNob3VsZCByZWNlaXZlIGEgU3Rv
cmFnZUV2ZW50IHdoZW4gZWl0aGVyIGZyYW1lIGNoYW5nZXMgdGhlIGxvY2FsU3RvcmFnZSBvYmpl
Y3QuPGJyPgotPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUtZXZlbnRzLXNlY29uZC5odG1s
Ij48L2lmcmFtZT48YnI+Ci08ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pbmRl
eC1nZXQtYW5kLXNldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Rv
cmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsNTQgKzEsMjkgQEAKIFRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB5b3UgY2FuIGdl
dCBhbmQgc2V0IHZhbHVlcyBpbiBsb2NhbFN0b3JhZ2UgYnkgaW5kZXguCiBTZXR0aW5nIEZPTyB1
c2luZyB0aGUgaW5kZXggc2V0dGVyLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwot
TmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KIFJlYWRpbmcgRk9POgogQkFSCiBC
QVIKIEJBUgogCiBTZXR0aW5nIEZPTyBhZ2FpbiwgdXNpbmcgc2V0SXRlbS4KLVN0b3JhZ2UgZXZl
bnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBWgotT2xkIFZhbHVlIC0gQkFSCi0K
IFJlYWRpbmcgRk9POgogQkFaCiBCQVoKIEJBWgogCiBTZXR0aW5nIEZPTyBhZ2FpbiwgdXNpbmcg
dGhlIGluZGV4IHNldHRlci4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBW
YWx1ZSAtIEJBVAotT2xkIFZhbHVlIC0gQkFaCi0KIFJlYWRpbmcgRk9POgogQkFUCiBCQVQKIEJB
VAogCiBTZXR0aW5nIEZPTyBhZ2FpbiwgdXNpbmcgcHJvcGVydHktc2xvdCBzeW50YXgKLVN0b3Jh
Z2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBVE1BTgotT2xkIFZhbHVl
IC0gQkFUCi0KIFJlYWRpbmcgRk9POgogQkFUTUFOCiBCQVRNQU4KIEJBVE1BTgogCiBSZW1vdmlu
ZyBGT08sIHRoZW4gdHJ5aW5nIHRvIHJlYWQgaXQKLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkg
LSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBVE1BTgotCiBSZWFkaW5nIEZP
TzoKIHVuZGVmaW5lZAogdW5kZWZpbmVkCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pbmRleC1nZXQtYW5k
LXNldC5odG1sCShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTksMTUgKzE5LDYgQEAgZnVuY3Rpb24gZmluaXNoKCkKICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpCiB9CiAKLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudChl
KQotewotICAgIGxvZygiU3RvcmFnZSBldmVudCBmaXJlZDoiKTsKLSAgICBsb2coIktleSAgICAg
ICAgICAgLSAiICsgZS5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAgICAtICIgKyBlLm5ld1Zh
bHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZS5vbGRWYWx1ZSk7Ci0gICAgbG9n
KCIiKTsKLX0KLQogZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCF3aW5kb3cubG9jYWxT
dG9yYWdlKSB7CkBAIC0zNiw4ICsyNyw2IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIAotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdl
IiwgaGFuZGxlU3RvcmFnZUV2ZW50LCBmYWxzZSk7Ci0gICAgCiAgICAgbG9nKCJTZXR0aW5nIEZP
TyB1c2luZyB0aGUgaW5kZXggc2V0dGVyLiIpOwogICAgIGxvY2FsU3RvcmFnZVsiRk9PIl0gPSAi
QkFSIjsKICAgICBsb2coIlJlYWRpbmcgRk9POiIpOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLW1hcmt1cC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLW1hcmt1cC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9vbnN0b3JhZ2UtYXR0cmlidXRlLW1hcmt1cC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMjIgKzAsMCBAQAotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIGxvY2FsU3RvcmFn
ZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZl
bnQgbGlzdGVuZXIgY29ycmVzcG9uZGluZyB0byBib2R5Lm9uc3RvcmFnZS4gVGhlIGV2ZW50IGxp
c3RlbmVyIGlzIHNldHVwIGluIHRoZSBib2R5IGVsZW1lbnQncyBtYXJrdXAuCi1TdG9yYWdlIGV2
ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwK
LQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBW
YWx1ZSAtIG51bGwKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVl
IC0gbnVsbAotT2xkIFZhbHVlIC0gQkFSCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBG
VQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFSCi0KLQpJbmRleDogTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLW1h
cmt1cC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAkocmV2aXNpb24gNTMy
MzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3Rv
cmFnZS1hdHRyaWJ1dGUtbWFya3VwLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDcgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2xlYXJMb2NhbFN0b3Jh
Z2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0aW9u
IGxvZyhhKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5lckhU
TUwgKz0gYSArICI8YnI+IjsKLX0KLQotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KCkKLXsK
LSAgICBpZiAoIXdpbmRvdy5ldmVudCkgewotICAgICAgICBsb2coIkdsb2JhbCBldmVudCBub3Qg
YXZhaWxhYmxlLiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGxvZygiU3Rv
cmFnZSBldmVudCBmaXJlZDoiKTsKLSAgICBsb2coIktleSAgICAgICAgICAgLSAiICsgZXZlbnQu
a2V5KTsKLSAgICBsb2coIk5ldyBWYWx1ZSAgICAgLSAiICsgZXZlbnQubmV3VmFsdWUpOwotICAg
IGxvZygiT2xkIFZhbHVlICAgICAtICIgKyBldmVudC5vbGRWYWx1ZSk7Ci0gICAgbG9nKCIiKTsK
LX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgaWYgKCF3aW5kb3cubG9jYWxTdG9yYWdl
KSB7Ci0gICAgICAgIGxvZygid2luZG93LmxvY2FsU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0
SXRlbSgiRk9PIiwgIkJBUiIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiRlUi
LCAiQkFSIik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAg
ICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7Ci19Ci0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7IiBvbnN0b3JhZ2U9ImhhbmRsZVN0b3Jh
Z2VFdmVudCgpOyI+Ci1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgbG9jYWxTdG9yYWdlIG11
dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBs
aXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiAgVGhlIGV2ZW50IGxpc3Rl
bmVyIGlzIHNldHVwIGluIHRoZSBib2R5IGVsZW1lbnQncyBtYXJrdXAuPGJyPgotPGRpdiBpZD0i
bG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1
dGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0IHRvIG1h
a2Ugc3VyZSBMb2NhbFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFy
ZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gYm9keS5vbnN0
b3JhZ2UuIFRoZSBldmVudCBsaXN0ZW5lciBpcyBzZXR1cCB2aWEgYm9keS5zZXRBdHRyaWJ1dGUo
KS4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xk
IFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1
ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0g
Rk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotU3RvcmFnZSBldmVudCBm
aXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFn
ZS1hdHRyaWJ1dGUtc2V0YXR0cmlidXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0
dHJpYnV0ZS5odG1sCShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw0OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jbGVhckxvY2FsU3RvcmFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24gbG9nKGEpCi17Ci0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCArPSBhICsgIjxicj4iOwotfQotCi1m
dW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoKQotewotICAgIGlmICghd2luZG93LmV2ZW50KSB7
Ci0gICAgICAgIGxvZygiR2xvYmFsIGV2ZW50IG5vdCBhdmFpbGFibGUuIik7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgCi0gICAgbG9nKCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIpOwotICAg
IGxvZygiS2V5ICAgICAgICAgICAtICIgKyBldmVudC5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVl
ICAgICAtICIgKyBldmVudC5uZXdWYWx1ZSk7Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiAr
IGV2ZW50Lm9sZFZhbHVlKTsKLSAgICBsb2coIiIpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkK
LXsKLSAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cu
bG9jYWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgCi0gICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoIm9uc3RvcmFnZSIsICJoYW5kbGVT
dG9yYWdlRXZlbnQoKTsiKTsKLSAgICAKLSAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0o
IkZPTyIsICJCQVIiKTsKLSAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJB
UiIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiRk9PIik7Ci0gICAgd2lu
ZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJGVSIpOwotfQotCi08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1
cmUgTG9jYWxTdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1
Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdl
LiAgVGhlIGV2ZW50IGxpc3RlbmVyIGlzIHNldHVwIHZpYSBib2R5LnNldEF0dHJpYnV0ZSgpLjxi
cj4KLTxkaXYgaWQ9ImxvZ2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1
dGUtc2V0d2luZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi1UaGlzIGlzIGEgdGVzdCB0
byBtYWtlIHN1cmUgTG9jYWxTdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhh
dCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIHdpbmRv
dy5vbnN0b3JhZ2UuCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUg
LSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZV
Ci1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLQotU3RvcmFnZSBldmVudCBmaXJl
ZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFSCi0KLVN0b3Jh
Z2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0g
QkFSCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldHdpbmRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0
ZS1zZXR3aW5kb3cuaHRtbAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvY2xlYXJMb2NhbFN0b3JhZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0aW9uIGxvZyhhKQotewotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5lckhUTUwgKz0gYSArICI8YnI+IjsKLX0KLQot
ZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KCkKLXsKLSAgICBpZiAoIXdpbmRvdy5ldmVudCkg
ewotICAgICAgICBsb2coIkdsb2JhbCBldmVudCBub3QgYXZhaWxhYmxlLiIpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIAotICAgIGxvZygiU3RvcmFnZSBldmVudCBmaXJlZDoiKTsKLSAg
ICBsb2coIktleSAgICAgICAgICAgLSAiICsgZXZlbnQua2V5KTsKLSAgICBsb2coIk5ldyBWYWx1
ZSAgICAgLSAiICsgZXZlbnQubmV3VmFsdWUpOwotICAgIGxvZygiT2xkIFZhbHVlICAgICAtICIg
KyBldmVudC5vbGRWYWx1ZSk7Ci0gICAgbG9nKCIiKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgp
Ci17Ci0gICAgaWYgKCF3aW5kb3cubG9jYWxTdG9yYWdlKSB7Ci0gICAgICAgIGxvZygid2luZG93
LmxvY2FsU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgd2luZG93Lm9uc3RvcmFnZSA9IGhhbmRsZVN0b3JhZ2VFdmVudDsKLSAgICAKLSAgICB3
aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oIkZPTyIsICJCQVIiKTsKLSAgICB3aW5kb3cubG9j
YWxTdG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJBUiIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uu
cmVtb3ZlSXRlbSgiRk9PIik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJG
VSIpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+
Ci1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgTG9jYWxTdG9yYWdlIG11dGF0aW9ucyBmaXJl
IFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBjb3Jy
ZXNwb25kaW5nIHRvIHdpbmRvdy5vbnN0b3JhZ2UuPGJyPgotPGRpdiBpZD0ibG9nZ2VyIj48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2Uvc2ltcGxlLWV2ZW50cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUtZXZlbnRz
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3NpbXBsZS1ldmVudHMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDI2ICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBsb2Nh
bFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cwotU3RvcmFnZSBldmVudCBmaXJl
ZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi1FdmVudCBo
YXMgYSBVUkkKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBC
QVIKLU9sZCBWYWx1ZSAtIG51bGwKLUV2ZW50IGhhcyBhIFVSSQotCi1TdG9yYWdlIGV2ZW50IGZp
cmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLUV2ZW50
IGhhcyBhIFVSSQotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAt
IG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotRXZlbnQgaGFzIGEgVVJJCi0KLQpJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUtZXZlbnRzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9zaW1wbGUtZXZlbnRzLmh0bWwJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3Rv
cmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUtZXZlbnRzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNTcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvY2xlYXJMb2NhbFN0b3JhZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci19
Ci0KLWZ1bmN0aW9uIGxvZyhhKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dn
ZXIiKS5pbm5lckhUTUwgKz0gYSArICI8YnI+IjsKLX0KLQotZnVuY3Rpb24gZmluaXNoKCkKLXsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCkKLX0KLQotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50
KGUpCi17Ci0gICAgbG9nKCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAg
ICAgICAgICAtICIgKyBlLmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGUubmV3
VmFsdWUpOwotICAgIGxvZygiT2xkIFZhbHVlICAgICAtICIgKyBlLm9sZFZhbHVlKTsKLSAgICBp
ZiAoZS51cmkpCi0gICAgICAgIGxvZygiRXZlbnQgaGFzIGEgVVJJIik7Ci0gICAgbG9nKCIiKTsK
LX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgaWYgKCF3aW5kb3cubG9jYWxTdG9yYWdl
KSB7Ci0gICAgICAgIGxvZygid2luZG93LmxvY2FsU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwot
ICAgICAgICBmaW5pc2goKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsIGhhbmRsZVN0b3JhZ2VFdmVudCwgZmFsc2Up
OwotCi0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFSIik7Ci0gICAg
d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJGVSIsICJCQVIiKTsKLSAgICB3aW5kb3cubG9j
YWxTdG9yYWdlLnJlbW92ZUl0ZW0oIkZPTyIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVt
b3ZlSXRlbSgiRlUiKTsKLSAgICAKLSAgICBmaW5pc2goKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBz
dXJlIGxvY2FsU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzPGJyPgotPGRpdiBp
ZD0ibG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvY29tcGxleC12YWx1ZXMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9jb21wbGV4
LXZhbHVlcy5qcwkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2NyaXB0LXRlc3RzL2NvbXBsZXgtdmFsdWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDEwICsxLDUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0IHNvbWUgY29ybmVyIGNhc2UgRE9NIFN0b3Jh
Z2UgdmFsdWVzLiIpOwogCi1ldmVudENvdW50ZXIgPSAwOwotZnVuY3Rpb24gaGFuZGxlU3RvcmFn
ZUV2ZW50KCkgewotICAgIGV2ZW50Q291bnRlcisrOwotfQotCiBmdW5jdGlvbiB0ZXN0S2V5VmFs
dWUoa2V5LCB2YWx1ZSkKIHsKICAgICBrZXlTdHJpbmcgPSAic3RvcmFnZVsnIiArIGtleSArICIn
XSI7CkBAIC03MywyMSArNjgsNiBAQCBmdW5jdGlvbiB0ZXN0KHN0b3JhZ2VTdHJpbmcpCiAgICAg
dGVzdEtleVZhbHVlKCJmb28xMSIsIGspOwogICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRl
bSgnZm9vMTInLCBrKSIpOwogICAgIHRlc3RLZXlWYWx1ZSgiZm9vMTIiLCBrKTsKLQotICAgIGRl
YnVnKCIiKTsKLSAgICBkZWJ1ZygiVmVyaWZ5IHN0b3JhZ2UgZXZlbnRzIGFyZSBjYXNlIHNlbnNp
dGl2ZSIpOwotICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0gJ3Rlc3QnIik7Ci0gICAgZGVi
dWcoIlNldHRpbmcgZXZlbnQgbGlzdGVuZXIiKTsKLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigic3RvcmFnZSIsIGhhbmRsZVN0b3JhZ2VFdmVudCwgZmFsc2UpOwotICAgIHNob3VsZEJlKCJl
dmVudENvdW50ZXIiLCAiMCIpOwotICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0gJ3Rlc3Qn
Iik7Ci0gICAgc2hvdWxkQmUoImV2ZW50Q291bnRlciIsICIwIik7Ci0gICAgZXZhbEFuZExvZygi
c3RvcmFnZS5mb28gPSAnVEVTVCciKTsKLSAgICBzaG91bGRCZSgiZXZlbnRDb3VudGVyIiwgIjEi
KTsKLQotICAgIC8vIFJlc2V0IHRoZSBjb3VudGVyIGZvciBuZXh0IHRlc3RzIChpZiBhbnkpLgot
ICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwgaGFuZGxlU3RvcmFnZUV2
ZW50LCBmYWxzZSk7Ci0gICAgZXZlbnRDb3VudGVyID0gMDsKIH0KIAogdGVzdCgic2Vzc2lvblN0
b3JhZ2UiKTsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVz
dHMvZG9jdW1lbnRVUkkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL3NjcmlwdC10ZXN0cy9kb2N1bWVudFVSSS5qcwkocmV2aXNpb24gNTMyMzIpCisrKyBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUwICswLDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0IHRoYXQg
Y2hhbmdpbmcgZG9jdW1lbnRVUkkgaGFzIG5vIGVmZmVjdHMgb24gc3RvcmFnZSBldmVudHMuIik7
Ci0KLWZ1bmN0aW9uIHRlc3Qoc3RvcmFnZVN0cmluZykKLXsKLSAgICB3aW5kb3cuc3RvcmFnZSA9
IGV2YWwoc3RvcmFnZVN0cmluZyk7Ci0gICAgaWYgKCFzdG9yYWdlKSB7Ci0gICAgICAgIHRlc3RG
YWlsZWQoc3RvcmFnZVN0cmluZyArICIgRE9FUyBOT1QgZXhpc3QiKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGRlYnVnKCJUZXN0aW5nICIgKyBzdG9yYWdlU3RyaW5nKTsKLQotICAg
IHdpbmRvdy5vbnN0b3JhZ2UgPSBudWxsOwotICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuY2xlYXIo
KSIpOwotICAgIHNob3VsZEJlKCJzdG9yYWdlLmxlbmd0aCIsICIwIik7Ci0KLSAgICBldmFsQW5k
TG9nKCJ3aW5kb3cub25zdG9yYWdlID0gZmlyc3RFdmVudCIpOwotICAgIGV2YWxBbmRMb2coInN0
b3JhZ2UuZm9vID0gJzEyMyciKTsKLX0KLQotZnVuY3Rpb24gZmlyc3RFdmVudChlKQotewotICAg
IGRlYnVnKCJGaXJzdCBldmVudCBmaXJlZCIpOwotICAgIGRlYnVnKCJTYXZpbmcgVVJJIik7Ci0g
ICAgd2luZG93Lmxhc3RVUkkgPSBlLnVyaTsKLQotICAgIGV2YWxBbmRMb2coImRvY3VtZW50LmRv
Y3VtZW50VVJJID0gJ2FiYyciKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50
LmRvY3VtZW50VVJJIiwgImFiYyIpOwotCi0gICAgZXZhbEFuZExvZygid2luZG93Lm9uc3RvcmFn
ZSA9IHNlY29uZEV2ZW50Iik7Ci0gICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28gPSAneHl6JyIp
OwotfQotCi1mdW5jdGlvbiBzZWNvbmRFdmVudChlKQotewotICAgIGRlYnVnKCJTZWNvbmQgZXZl
bnQgZmlyZWQiKTsKLSAgICBzaG91bGRCZVRydWUoU3RyaW5nKHdpbmRvdy5sYXN0VVJJID09IGUu
dXJpKSk7Ci0KLSAgICBpZiAoZG9uZSkgewotICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKLSAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICB9Ci19Ci0K
LXdpbmRvdy5kb25lID0gZmFsc2U7Ci10ZXN0KCJzZXNzaW9uU3RvcmFnZSIpOwotZGVidWcoIiIp
OwotZGVidWcoIiIpOwotd2luZG93LmRvbmUgPSB0cnVlOwotdGVzdCgibG9jYWxTdG9yYWdlIik7
CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZy
YW1lLWV2ZW50cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2lmcmFtZS1ldmVudHMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9u
c3RvcmFnZS9pZnJhbWUtZXZlbnRzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3
OSArMCwwIEBACi1UaGlzIGlzIHRoZSBtYWluIGZyYW1lIG9mIGEgMi1mcmFtZSBkb2N1bWVudC4g
RWFjaCBmcmFtZSBpcyBpbiB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYW5kIHRoZXJlZm9yZSBz
aGFyZXMgdGhlIHNhbWUgc2Vzc2lvblN0b3JhZ2Ugb2JqZWN0LiBBcyBhIHJlc3VsdCwgZWFjaCBm
cmFtZSBzaG91bGQgcmVjZWl2ZSBhIFN0b3JhZ2VFdmVudCB3aGVuIGVpdGhlciBmcmFtZSBjaGFu
Z2VzIHRoZSBzZXNzaW9uU3RvcmFnZSBvYmplY3QuCi0KLU1haW4gZnJhbWUgYWJvdXQgdG8gcnVu
IHNldEl0ZW0gb24gc2Vzc2lvblN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQgU3RvcmFn
ZUV2ZW50OgotS2V5IC0gTWFpbiBGcmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBu
dWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uv
aWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5z
ZXNzaW9uU3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0g
TWFpbiBGcmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5o
dG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQot
Ci1TdWJmcmFtZSBhYm91dCB0byBjaGFuZ2Ugc2Vzc2lvblN0b3JhZ2UuLi4KLU1haW4gRnJhbWUg
cmVjZWl2ZWQgU3RvcmFnZUV2ZW50OgotS2V5IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAot
T2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nl
c3Npb25zdG9yYWdlL3Jlc291cmNlcy9pZnJhbWUtZXZlbnRzLXNlY29uZC5odG1sCi1TdG9yYWdl
IEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQotCi1TdWJmcmFtZSBy
ZWNlaXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAot
T2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nl
c3Npb25zdG9yYWdlL3Jlc291cmNlcy9pZnJhbWUtZXZlbnRzLXNlY29uZC5odG1sCi1TdG9yYWdl
IEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQotCi1NYWluIGZyYW1l
IGFib3V0IHRvIHJ1biByZW1vdmVJdGVtIG9uIHNlc3Npb25TdG9yYWdlLi4uCi1NYWluIEZyYW1l
IHJlY2VpdmVkIFN0b3JhZ2VFdmVudDoKLUtleSAtIE1haW4gRnJhbWUKLU5ldyBWYWx1ZSAtIG51
bGwKLU9sZCBWYWx1ZSAtIFNFVAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L3Nlc3Npb25zdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3
aW5kb3cncyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKLQotU3ViZnJhbWUgcmVjZWl2ZWQgc3RvcmFn
ZSBldmVudDoKLUtleSAtIE1haW4gRnJhbWUKLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAt
IFNFVAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdl
L2lmcmFtZS1ldmVudHMuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cu
c2Vzc2lvblN0b3JhZ2UKLQotU3ViZnJhbWUgYWJvdXQgdG8gY2hhbmdlIHNlc3Npb25TdG9yYWdl
Li4uCi1NYWluIGZyYW1lIGFib3V0IHRvIGNsZWFyIHNlc3Npb25TdG9yYWdlLi4uCi1NYWluIEZy
YW1lIHJlY2VpdmVkIFN0b3JhZ2VFdmVudDoKLUtleSAtIAotTmV3IFZhbHVlIC0gbnVsbAotT2xk
IFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Np
b25zdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cn
cyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKLQotU3ViZnJhbWUgcmVjZWl2ZWQgc3RvcmFnZSBldmVu
dDoKLUtleSAtIAotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2lmcmFtZS1ldmVudHMu
aHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UK
LQotU3ViZnJhbWUgYWJvdXQgdG8gY2hhbmdlIHNlc3Npb25TdG9yYWdlLi4uCi1NYWluIEZyYW1l
IHJlY2VpdmVkIFN0b3JhZ2VFdmVudDoKLUtleSAtIFN1YmZyYW1lCi1OZXcgVmFsdWUgLSBTRVQK
LU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
ZXNzaW9uc3RvcmFnZS9yZXNvdXJjZXMvaWZyYW1lLWV2ZW50cy1zZWNvbmQuaHRtbAotU3RvcmFn
ZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKLQotU3ViZnJhbWUg
cmVjZWl2ZWQgc3RvcmFnZSBldmVudDoKLUtleSAtIFN1YmZyYW1lCi1OZXcgVmFsdWUgLSBTRVQK
LU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
ZXNzaW9uc3RvcmFnZS9yZXNvdXJjZXMvaWZyYW1lLWV2ZW50cy1zZWNvbmQuaHRtbAotU3RvcmFn
ZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKLQotCkluZGV4OiBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNz
aW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw2NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9u
IG5vcm1hbGl6ZVVSTCh1cmwpCi17Ci0gICAgcmV0dXJuIHVybC5zdWJzdHJpbmcodXJsLmxhc3RJ
bmRleE9mKCJMYXlvdXRUZXN0cyIpKTsKLX0KLQotZnVuY3Rpb24gZmluaXNoKCkKLXsKLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCkKLX0KLQotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KGUpCi17
Ci0gICAgbG9nKCJNYWluIEZyYW1lIHJlY2VpdmVkIFN0b3JhZ2VFdmVudDoiKTsKLSAgICBsb2co
IktleSAgICAgICAgICAgLSAiICsgZS5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAgICAtICIg
KyBlLm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZS5vbGRWYWx1ZSk7
Ci0gICAgbG9nKCJVUkkgICAgICAgICAgIC0gIiArIG5vcm1hbGl6ZVVSTChlLnVyaSkpOwotICAg
IGxvZygiU3RvcmFnZSBBcmVhICAtICIgKyAoKGUuc3RvcmFnZUFyZWEgPT0gd2luZG93LnNlc3Np
b25TdG9yYWdlKSA/ICJUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZSIgOiAiQW5v
dGhlciB3aW5kb3cncyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UiKSk7Ci0gICAgbG9nKCIiKTsKLSAg
ICAKLSAgICBpZiAoZS5rZXkgPT0gIlN1YmZyYW1lIikKLSAgICAgICAgZmluaXNoKCk7Ci19Ci0K
LWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgaWYgKCF3aW5kb3cuc2Vzc2lvblN0b3JhZ2Up
IHsKLSAgICAgICAgbG9nKCJ3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgRE9FUyBOT1QgZXhpc3QiKTsK
LSAgICAgICAgZmluaXNoKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gCi0gICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCBoYW5kbGVTdG9yYWdlRXZlbnQsIGZhbHNlKTsK
LSAgICBsb2coIk1haW4gZnJhbWUgYWJvdXQgdG8gcnVuIHNldEl0ZW0gb24gc2Vzc2lvblN0b3Jh
Z2UuLi4iKTsKLSAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJNYWluIEZyYW1lIiwgIlNFVCIp
OwotICAgIGxvZygiTWFpbiBmcmFtZSBhYm91dCB0byBydW4gcmVtb3ZlSXRlbSBvbiBzZXNzaW9u
U3RvcmFnZS4uLiIpOwotICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oIk1haW4gRnJhbWUi
KTsKLSAgICBsb2coIk1haW4gZnJhbWUgYWJvdXQgdG8gY2xlYXIgc2Vzc2lvblN0b3JhZ2UuLi4i
KTsKLSAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCk7Ij4KLVRoaXMgaXMgdGhlIG1haW4gZnJhbWUgb2Yg
YSAyLWZyYW1lIGRvY3VtZW50LiAgRWFjaCBmcmFtZSBpcyBpbiB0aGUgc2FtZSBzZWN1cml0eSBv
cmlnaW4gYW5kIHRoZXJlZm9yZSBzaGFyZXMgdGhlIHNhbWUgc2Vzc2lvblN0b3JhZ2Ugb2JqZWN0
LgotQXMgYSByZXN1bHQsIGVhY2ggZnJhbWUgc2hvdWxkIHJlY2VpdmUgYSBTdG9yYWdlRXZlbnQg
d2hlbiBlaXRoZXIgZnJhbWUgY2hhbmdlcyB0aGUgc2Vzc2lvblN0b3JhZ2Ugb2JqZWN0Ljxicj4K
LTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lLWV2ZW50cy1zZWNvbmQuaHRtbCI+PC9pZnJh
bWU+PGJyPgotPGRpdiBpZD0ibG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQt
YW5kLXNldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lv
bnN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDU0ICsxLDI5IEBACiBUaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgeW91IGNhbiBnZXQg
YW5kIHNldCB2YWx1ZXMgaW4gU2Vzc2lvblN0b3JhZ2UgYnkgaW5kZXguCiBTZXR0aW5nIEZPTyB1
c2luZyB0aGUgaW5kZXggc2V0dGVyLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwot
TmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KIFJlYWRpbmcgRk9POgogQkFSCiBC
QVIKIEJBUgogCiBTZXR0aW5nIEZPTyBhZ2FpbiwgdXNpbmcgc2V0SXRlbS4KLVN0b3JhZ2UgZXZl
bnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBWgotT2xkIFZhbHVlIC0gQkFSCi0K
IFJlYWRpbmcgRk9POgogQkFaCiBCQVoKIEJBWgogCiBTZXR0aW5nIEZPTyBhZ2FpbiwgdXNpbmcg
dGhlIGluZGV4IHNldHRlci4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBW
YWx1ZSAtIEJBVAotT2xkIFZhbHVlIC0gQkFaCi0KIFJlYWRpbmcgRk9POgogQkFUCiBCQVQKIEJB
VAogCiBTZXR0aW5nIEZPTyBhZ2FpbiwgdXNpbmcgcHJvcGVydHktc2xvdCBzeW50YXgKLVN0b3Jh
Z2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBVE1BTgotT2xkIFZhbHVl
IC0gQkFUCi0KIFJlYWRpbmcgRk9POgogQkFUTUFOCiBCQVRNQU4KIEJBVE1BTgogCiBSZW1vdmlu
ZyBGT08sIHRoZW4gdHJ5aW5nIHRvIHJlYWQgaXQKLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkg
LSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBVE1BTgotCiBSZWFkaW5nIEZP
TzoKIHVuZGVmaW5lZAogdW5kZWZpbmVkCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaW5kZXgtZ2V0
LWFuZC1zZXQuaHRtbAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTksMTUgKzE5LDYgQEAgZnVuY3Rpb24gZmluaXNoKCkKICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCiB9CiAKLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VF
dmVudChlKQotewotICAgIGxvZygiU3RvcmFnZSBldmVudCBmaXJlZDoiKTsKLSAgICBsb2coIktl
eSAgICAgICAgICAgLSAiICsgZS5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAgICAtICIgKyBl
Lm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZS5vbGRWYWx1ZSk7Ci0g
ICAgbG9nKCIiKTsKLX0KLQogZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCF3aW5kb3cu
c2Vzc2lvblN0b3JhZ2UpIHsKQEAgLTM2LDggKzI3LDYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
InN0b3JhZ2UiLCBoYW5kbGVTdG9yYWdlRXZlbnQsIGZhbHNlKTsKLSAgICAKICAgICBsb2coIlNl
dHRpbmcgRk9PIHVzaW5nIHRoZSBpbmRleCBzZXR0ZXIuIik7CiAgICAgc2Vzc2lvblN0b3JhZ2Vb
IkZPTyJdID0gIkJBUiI7CiAgICAgbG9nKCJSZWFkaW5nIEZPTzoiKTsKSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRl
LW1hcmt1cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ug
c3VyZSBTZXNzaW9uU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJl
IGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9uZGluZyB0byBib2R5Lm9uc3Rv
cmFnZS4gVGhlIGV2ZW50IGxpc3RlbmVyIGlzIHNldHVwIGluIHRoZSBib2R5IGVsZW1lbnQncyBt
YXJrdXAuCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVIK
LU9sZCBWYWx1ZSAtIG51bGwKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcg
VmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtl
eSAtIEZPTwotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFSCi0KLVN0b3JhZ2UgZXZl
bnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFSCi0K
LQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29u
c3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFy
a3VwLmh0bWwJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsNDcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY2xlYXJTZXNzaW9uU3RvcmFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24gbG9nKGEpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCArPSBhICsgIjxicj4iOwotfQotCi1mdW5jdGlv
biBoYW5kbGVTdG9yYWdlRXZlbnQoKQotewotICAgIGlmICghd2luZG93LmV2ZW50KSB7Ci0gICAg
ICAgIGxvZygiR2xvYmFsIGV2ZW50IG5vdCBhdmFpbGFibGUuIik7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0gICAgCi0gICAgbG9nKCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIpOwotICAgIGxvZygi
S2V5ICAgICAgICAgICAtICIgKyBldmVudC5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAgICAt
ICIgKyBldmVudC5uZXdWYWx1ZSk7Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiArIGV2ZW50
Lm9sZFZhbHVlKTsKLSAgICBsb2coIiIpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAg
ICBpZiAoIXdpbmRvdy5zZXNzaW9uU3RvcmFnZSkgewotICAgICAgICBsb2coIndpbmRvdy5zZXNz
aW9uU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IAotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFSIik7Ci0gICAg
d2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJBUiIpOwotICAgIHdpbmRvdy5z
ZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3Jh
Z2UucmVtb3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKTsiIG9uc3RvcmFnZT0iaGFuZGxlU3RvcmFnZUV2ZW50KCk7Ij4KLVRoaXMg
aXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9y
YWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9u
ZGluZyB0byBib2R5Lm9uc3RvcmFnZS4gIFRoZSBldmVudCBsaXN0ZW5lciBpcyBzZXR1cCBpbiB0
aGUgYm9keSBlbGVtZW50J3MgbWFya3VwLjxicj4KLTxkaXYgaWQ9ImxvZ2dlciI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vz
c2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3Rv
cmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9y
YWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0cmlidXRlLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgU2Vz
c2lvblN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQg
YnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gYm9keS5vbnN0b3JhZ2UuIFRo
ZSBldmVudCBsaXN0ZW5lciBpcyBzZXR1cCB2aWEgYm9keS5zZXRBdHRyaWJ1dGUoKS4KLVN0b3Jh
Z2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0g
bnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgot
T2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcg
VmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtl
eSAtIEZVCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotCkluZGV4OiBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJp
YnV0ZS1zZXRhdHRyaWJ1dGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1
dGUuaHRtbAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw0OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1
bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnQpIHsK
LSAgICAgICAgbG9nKCJHbG9iYWwgZXZlbnQgbm90IGF2YWlsYWJsZS4iKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICAKLSAgICBsb2coIlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAg
bG9nKCJLZXkgICAgICAgICAgIC0gIiArIGV2ZW50LmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUg
ICAgIC0gIiArIGV2ZW50Lm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsg
ZXZlbnQub2xkVmFsdWUpOwotICAgIGxvZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQot
ewotICAgIGlmICghd2luZG93LnNlc3Npb25TdG9yYWdlKSB7Ci0gICAgICAgIGxvZygid2luZG93
LnNlc3Npb25TdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgCi0gICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoIm9uc3RvcmFnZSIsICJoYW5k
bGVTdG9yYWdlRXZlbnQoKTsiKTsKLSAgICAKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0
SXRlbSgiRk9PIiwgIkJBUiIpOwotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJG
VSIsICJCQVIiKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiRk9PIik7
Ci0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLVRoaXMgaXMgYSB0ZXN0
IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRz
IHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9uZGluZyB0byBi
b2R5Lm9uc3RvcmFnZS4gIFRoZSBldmVudCBsaXN0ZW5lciBpcyBzZXR1cCB2aWEgYm9keS5zZXRB
dHRyaWJ1dGUoKS48YnI+Ci08ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29u
c3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0
dHJpYnV0ZS1zZXR3aW5kb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmli
dXRlLXNldHdpbmRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBA
QAotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25TdG9yYWdlIG11dGF0aW9ucyBm
aXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBj
b3JyZXNwb25kaW5nIHRvIHdpbmRvdy5vbnN0b3JhZ2UuCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgot
S2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLQotU3RvcmFnZSBl
dmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwK
LQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gbnVsbAotT2xk
IFZhbHVlIC0gQkFSCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVl
IC0gbnVsbAotT2xkIFZhbHVlIC0gQkFSCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25z
dG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93Lmh0bWwJKHJldmlzaW9uIDUzMjMy
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3Rv
cmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDkgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2xlYXJTZXNzaW9u
U3RvcmFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLQotZnVu
Y3Rpb24gbG9nKGEpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlu
bmVySFRNTCArPSBhICsgIjxicj4iOwotfQotCi1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQo
KQotewotICAgIGlmICghd2luZG93LmV2ZW50KSB7Ci0gICAgICAgIGxvZygiR2xvYmFsIGV2ZW50
IG5vdCBhdmFpbGFibGUuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgbG9n
KCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBl
dmVudC5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAgICAtICIgKyBldmVudC5uZXdWYWx1ZSk7
Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiArIGV2ZW50Lm9sZFZhbHVlKTsKLSAgICBsb2co
IiIpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBpZiAoIXdpbmRvdy5zZXNzaW9u
U3RvcmFnZSkgewotICAgICAgICBsb2coIndpbmRvdy5zZXNzaW9uU3RvcmFnZSBET0VTIE5PVCBl
eGlzdCIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgd2luZG93Lm9uc3RvcmFnZSA9
IGhhbmRsZVN0b3JhZ2VFdmVudDsKLSAgICAKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0
SXRlbSgiRk9PIiwgIkJBUiIpOwotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJG
VSIsICJCQVIiKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiRk9PIik7
Ci0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLVRoaXMgaXMgYSB0ZXN0
IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRz
IHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9uZGluZyB0byB3
aW5kb3cub25zdG9yYWdlLjxicj4KLTxkaXYgaWQ9ImxvZ2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3Jh
Z2Uvc2ltcGxlLWV2ZW50cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS1ldmVudHMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
ZXNzaW9uc3RvcmFnZS9zaW1wbGUtZXZlbnRzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwyNiArMCwwIEBACi1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgU2Vzc2lvblN0b3Jh
Z2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cwotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtl
eSAtIEZPTwotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi1FdmVudCBoYXMgYSBV
UkkKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBCQVIKLU9s
ZCBWYWx1ZSAtIG51bGwKLUV2ZW50IGhhcyBhIFVSSQotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgot
S2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLUV2ZW50IGhhcyBh
IFVSSQotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIG51bGwK
LU9sZCBWYWx1ZSAtIEJBUgotRXZlbnQgaGFzIGEgVVJJCi0KLQpJbmRleDogTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS1ldmVudHMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uv
c2ltcGxlLWV2ZW50cy5odG1sCShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1wbGUtZXZlbnRzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNTcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvY2xlYXJTZXNzaW9uU3RvcmFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
LX0KLQotZnVuY3Rpb24gbG9nKGEpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxv
Z2dlciIpLmlubmVySFRNTCArPSBhICsgIjxicj4iOwotfQotCi1mdW5jdGlvbiBmaW5pc2goKQot
ewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQotfQotCi1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZl
bnQoZSkKLXsKLSAgICBsb2coIlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkg
ICAgICAgICAgIC0gIiArIGUua2V5KTsKLSAgICBsb2coIk5ldyBWYWx1ZSAgICAgLSAiICsgZS5u
ZXdWYWx1ZSk7Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiArIGUub2xkVmFsdWUpOwotICAg
IGlmIChlLnVyaSkKLSAgICAgICAgbG9nKCJFdmVudCBoYXMgYSBVUkkiKTsKLSAgICBsb2coIiIp
OwotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBpZiAoIXdpbmRvdy5zZXNzaW9uU3Rv
cmFnZSkgewotICAgICAgICBsb2coIndpbmRvdy5zZXNzaW9uU3RvcmFnZSBET0VTIE5PVCBleGlz
dCIpOwotICAgICAgICBmaW5pc2goKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsIGhhbmRsZVN0b3JhZ2VFdmVudCwg
ZmFsc2UpOwotCi0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZPTyIsICJCQVIi
KTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiRlUiLCAiQkFSIik7Ci0gICAg
d2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oIkZPTyIpOwotICAgIHdpbmRvdy5zZXNz
aW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGVSIpOwotICAgIAotICAgIGZpbmlzaCgpOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci1UaGlzIGlzIGEg
dGVzdCB0byBtYWtlIHN1cmUgU2Vzc2lvblN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2
ZW50czxicj4KLTxkaXYgaWQ9ImxvZ2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47094</attachid>
            <date>2010-01-20 19:48:02 -0800</date>
            <delta_ts>2010-01-20 20:11:59 -0800</delta_ts>
            <desc>Also realized the descriptions for the tests were stale.  Fixed.</desc>
            <filename>bug-30546-20100120194800.patch</filename>
            <type>text/plain</type>
            <size>89343</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzU5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDEtMjAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBzdG9yYWdlIGV2ZW50cyBtYXRjaCB0aGUgc3BlYy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTQ2CisKKyAgICAgICAgVGhpcyBtZWF0IG9m
IHRoZSBwYXRjaCBJIGp1c3QgcG9zdGVkIGlzIHZlcnkgc2ltcGxlLiAgSXQncyBqdXN0IG1ha2lu
ZyBldmVudHMKKyAgICAgICAgYXN5bmNocm9ub3VzLCBub3QgcG9zdGluZyB0aGVtIHRvIHRoZSBm
cmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVtLCBwYXNzaW5nIGEgbnVsbAorICAgICAgICBmb3IgdGhl
IGtleSB3aGVuIGlzc3VpbmcgYSBjbGVhciBzdG9yYWdlIGV2ZW50LCBhbmQgbWFraW5nIHRoZSBl
dmVudHMKKyAgICAgICAgbm9uLWNhbmNlbGFibGUvbm9uLWJ1YmJsZWFibGUuLi5hbGwgb2Ygd2hp
Y2ggYXJlIGNsZWFybHkgc3RhdGVkIGluIHRoZSBzcGVjLgorCisgICAgICAgIFRoZSBhc3luY2hy
b25vdXMgYW5kIG5vdCBwb3N0aW5nIHRvIHRoZSBmcmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVtIGZv
cmNlZCBtZSB0d28KKyAgICAgICAgcmUtd3JpdGUgYWxsIHRoZSBsYXlvdXQgdGVzdHMgdGhhdCBk
ZWFsdCB3aXRoIHN0b3JhZ2UgZXZlbnRzLiAgVGhlcmUncyBhIGxvdCBvZgorICAgICAgICBjb2Rl
IHRoZXJlLCBidXQgSSB0cmllZCB0byBiZSBmYWlybHkgY2FyZWZ1bCB0byBlbnN1cmUgdGhhdCB0
ZXN0IGNvdmVyYWdlIGRpZAorICAgICAgICBub3Qgc2hyaW5rIGluIGFueSBhcmVhLgorCisgICAg
ICAgIFRlc3RzOiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLWJvZHktYXR0cmlidXRl
Lmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtc2V0
YXR0cmlidXRlLmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMv
YmFzaWMuaHRtbAorICAgICAgICAgICAgICAgc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9jYXNl
LXNlbnNpdGl2ZS5odG1sCisgICAgICAgICAgICAgICBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRz
L2RvY3VtZW50VVJJLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmVucXVldWVTdG9yYWdlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0
b3JhZ2VFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VF
dmVudDo6U3RvcmFnZUV2ZW50KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGw6
CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKToKKwogMjAxMC0wMS0y
MCAgRnVtaXRvc2hpIFVrYWkgIDx1a2FpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNTMyMzIp
CisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1Nyw2ICsz
NTcsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBib29sIGlzCiAgICAgLCBt
X2hhc09wZW5EYXRhYmFzZXMoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1fdXNpbmdHZW9sb2NhdGlv
bihmYWxzZSkKKyAgICAsIG1fc3RvcmFnZUV2ZW50VGltZXIodGhpcywgJkRvY3VtZW50OjpzdG9y
YWdlRXZlbnRUaW1lckZpcmVkKQogI2lmIEVOQUJMRShXTUwpCiAgICAgLCBtX2NvbnRhaW5zV01M
Q29udGVudChmYWxzZSkKICNlbmRpZgpAQCAtMjk2Niw2ICsyOTY3LDI0IEBAIHZvaWQgRG9jdW1l
bnQ6OmRpc3BhdGNoV2luZG93TG9hZEV2ZW50KCkKICAgICBkb21XaW5kb3ctPmRpc3BhdGNoTG9h
ZEV2ZW50KCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmVucXVldWVTdG9yYWdlRXZlbnQoUGFzc1Jl
ZlB0cjxFdmVudD4gc3RvcmFnZUV2ZW50KQoreworICAgIG1fc3RvcmFnZUV2ZW50UXVldWUuYXBw
ZW5kKHN0b3JhZ2VFdmVudCk7CisgICAgaWYgKCFtX3N0b3JhZ2VFdmVudFRpbWVyLmlzQWN0aXZl
KCkpCisgICAgICAgIG1fc3RvcmFnZUV2ZW50VGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2
b2lkIERvY3VtZW50OjpzdG9yYWdlRXZlbnRUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopCit7
CisgICAgVmVjdG9yPFJlZlB0cjxFdmVudD4gPiBzdG9yYWdlRXZlbnRRdWV1ZTsKKyAgICBzdG9y
YWdlRXZlbnRRdWV1ZS5zd2FwKG1fc3RvcmFnZUV2ZW50UXVldWUpOworCisgICAgdHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPEV2ZW50PiA+Ojpjb25zdF9pdGVyYXRvciBJdGVyYXRvcjsKKyAgICBJdGVy
YXRvciBlbmQgPSBzdG9yYWdlRXZlbnRRdWV1ZS5lbmQoKTsKKyAgICBmb3IgKEl0ZXJhdG9yIGl0
ID0gc3RvcmFnZUV2ZW50UXVldWUuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBk
aXNwYXRjaFdpbmRvd0V2ZW50KCppdCk7Cit9CisKIFBhc3NSZWZQdHI8RXZlbnQ+IERvY3VtZW50
OjpjcmVhdGVFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgUmVmUHRyPEV2ZW50PiBldmVudDsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gNTMyMzIp
CisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MTUsNiArNjE1
LDkgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hXaW5kb3dFdmVudChQYXNzUmVmUHRyPEV2
ZW50PiwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gPSAwKTsKICAgICB2b2lkIGRpc3BhdGNoV2lu
ZG93TG9hZEV2ZW50KCk7CiAKKyAgICB2b2lkIGVucXVldWVTdG9yYWdlRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4pOworICAgIHZvaWQgc3RvcmFnZUV2ZW50VGltZXJGaXJlZChUaW1lcjxEb2N1bWVu
dD4qKTsKKwogICAgIFBhc3NSZWZQdHI8RXZlbnQ+IGNyZWF0ZUV2ZW50KGNvbnN0IFN0cmluZyYg
ZXZlbnRUeXBlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAvLyBrZWVwIHRyYWNrIG9mIHdoYXQg
dHlwZXMgb2YgZXZlbnQgbGlzdGVuZXJzIGFyZSByZWdpc3RlcmVkLCBzbyB3ZSBkb24ndApAQCAt
MTE5Miw2ICsxMTk1LDkgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fdXNpbmdHZW9sb2Nh
dGlvbjsKIAorICAgIFRpbWVyPERvY3VtZW50PiBtX3N0b3JhZ2VFdmVudFRpbWVyOworICAgIFZl
Y3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9zdG9yYWdlRXZlbnRRdWV1ZTsKKwogI2lmIEVOQUJMRShX
TUwpCiAgICAgYm9vbCBtX2NvbnRhaW5zV01MQ29udGVudDsKICNlbmRpZgpJbmRleDogV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VFdmVudC5jcHAJKHJldmlzaW9uIDUzMjMyKQorKysgV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgUGFzc1JlZlB0
cjxTdG9yYWdlRXZlbnQ+IFN0b3JhZ2VFdmVudDo6YwogfQogCiBTdG9yYWdlRXZlbnQ6OlN0b3Jh
Z2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcm
IHVyaSwgU3RvcmFnZSogc3RvcmFnZUFyZWEpCi0gICAgOiBFdmVudCh0eXBlLCBmYWxzZSwgdHJ1
ZSkKKyAgICA6IEV2ZW50KHR5cGUsIGZhbHNlLCBmYWxzZSkKICAgICAsIG1fa2V5KGtleSkKICAg
ICAsIG1fb2xkVmFsdWUob2xkVmFsdWUpCiAgICAgLCBtX25ld1ZhbHVlKG5ld1ZhbHVlKQpJbmRl
eDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwJKHJldmlzaW9uIDUzMjMyKQorKysgV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAg
bW9kdWxlIHN0b3JhZ2UgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPURP
TV9TVE9SQUdFCiAgICAgXSBTdG9yYWdlRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcga2V5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGtleTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBvbGRWYWx1ZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERP
TVN0cmluZyBuZXdWYWx1ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1
cmk7CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCShy
ZXZpc2lvbiA1MzIzMikKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsMjUgKzUwLDI1IEBAIHZvaWQgU3RvcmFnZUV2ZW50
RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goY28KICAgICBpZiAoc3RvcmFnZVR5cGUgPT0gU2Vzc2lvblN0
b3JhZ2UpIHsKICAgICAgICAgLy8gU2VuZCBldmVudHMgb25seSB0byBvdXIgcGFnZS4KICAgICAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0g
ZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+ZXF1YWwoc2VjdXJpdHlPcmlnaW4pKQorICAg
ICAgICAgICAgaWYgKHNvdXJjZUZyYW1lICE9IGZyYW1lICYmIGZyYW1lLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbikpCiAgICAgICAgICAgICAgICAg
ZnJhbWVzLmFwcGVuZChmcmFtZSk7CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgZnJhbWVzW2ldLT5k
b2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFt
ZS0+ZG9jdW1lbnQoKS0+dXJsKCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPnNlc3Npb25TdG9y
YWdlKCkpKTsKKyAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVN0b3Jh
Z2VFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBr
ZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBm
cmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3RvcmFnZSgpKSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgLy8gU2VuZCBldmVudHMgdG8gZXZlcnkgcGFnZS4KICAgICAgICAgY29uc3QgSGFz
aFNldDxQYWdlKj4mIHBhZ2VzID0gcGFnZS0+Z3JvdXAoKS5wYWdlcygpOwogICAgICAgICBIYXNo
U2V0PFBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gcGFnZXMuZW5kKCk7CiAgICAgICAgIGZv
ciAoSGFzaFNldDxQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcGFnZXMuYmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICgqaXQpLT5t
YWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkp
IHsKLSAgICAgICAgICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCktPmVxdWFsKHNlY3VyaXR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlRnJh
bWUgIT0gZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmVxdWFs
KHNlY3VyaXR5T3JpZ2luKSkKICAgICAgICAgICAgICAgICAgICAgZnJhbWVzLmFwcGVuZChmcmFt
ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1
bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZSgp
KSk7CisgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVTdG9yYWdlRXZl
bnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBv
bGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgZnJhbWVz
W2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKCkpKTsKICAgICB9CiB9CiAKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDUzNTk0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNzQgQEAKKzIwMTAtMDEtMjAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBzdG9yYWdlIGV2ZW50cyBtYXRjaCB0aGUgc3BlYy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTQ2CisKKyAgICAgICAgVGhpcyBtZWF0
IG9mIHRoZSBwYXRjaCBJIGp1c3QgcG9zdGVkIGlzIHZlcnkgc2ltcGxlLiAgSXQncyBqdXN0IG1h
a2luZyBldmVudHMKKyAgICAgICAgYXN5bmNocm9ub3VzLCBub3QgcG9zdGluZyB0aGVtIHRvIHRo
ZSBmcmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVtLCBwYXNzaW5nIGEgbnVsbAorICAgICAgICBmb3Ig
dGhlIGtleSB3aGVuIGlzc3VpbmcgYSBjbGVhciBzdG9yYWdlIGV2ZW50LCBhbmQgbWFraW5nIHRo
ZSBldmVudHMKKyAgICAgICAgbm9uLWNhbmNlbGFibGUvbm9uLWJ1YmJsZWFibGUuLi5hbGwgb2Yg
d2hpY2ggYXJlIGNsZWFybHkgc3RhdGVkIGluIHRoZSBzcGVjLgorCisgICAgICAgIFRoZSBhc3lu
Y2hyb25vdXMgYW5kIG5vdCBwb3N0aW5nIHRvIHRoZSBmcmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVt
IGZvcmNlZCBtZSB0d28KKyAgICAgICAgcmUtd3JpdGUgYWxsIHRoZSBsYXlvdXQgdGVzdHMgdGhh
dCBkZWFsdCB3aXRoIHN0b3JhZ2UgZXZlbnRzLiAgVGhlcmUncyBhIGxvdCBvZgorICAgICAgICBj
b2RlIHRoZXJlLCBidXQgSSB0cmllZCB0byBiZSBmYWlybHkgY2FyZWZ1bCB0byBlbnN1cmUgdGhh
dCB0ZXN0IGNvdmVyYWdlIGRpZAorICAgICAgICBub3Qgc2hyaW5rIGluIGFueSBhcmVhLgorCisg
ICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1lbnRVUkktZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHM6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jh
c2ljLWJvZHktYXR0cmlidXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3Rv
cmFnZS9ldmVudHMvYmFzaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtc2V0YXR0cmlidXRl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMu
aHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9jYXNlLXNl
bnNpdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFn
ZS9ldmVudHMvY2FzZS1zZW5zaXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvZG9jdW1lbnRVUkkuaHRtbDogQWRkZWQuCisg
ICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9yZXNvdXJjZXM6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2JvZHktZXZlbnQtaGFu
ZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jl
c291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2Rv
bXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9zZXRhdHRyaWJ1dGUtZXZlbnQtaGFuZGxlci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0
czogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVz
dHMvVEVNUExBVEUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3Rv
cmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLWJvZHktYXR0cmlidXRlLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy1z
ZXRhdHRyaWJ1dGUuanM6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVu
dHMvc2NyaXB0LXRlc3RzL2Jhc2ljLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0
b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9jYXNlLXNlbnNpdGl2ZS5qczogQWRkZWQuCisgICAg
ICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkku
anM6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaWZy
YW1lLWV2ZW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21z
dG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pbmRl
eC1nZXQtYW5kLXNldC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0
b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJp
YnV0ZS1tYXJrdXAuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0cmlidXRlLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29u
c3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0cmlidXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
c3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldHdp
bmRvdy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldHdpbmRvdy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc2ltcGxlLWV2ZW50
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zaW1wbGUtZXZlbnRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFn
ZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9jb21wbGV4LXZhbHVlcy5qczoKKyAgICAgICAgKiBz
dG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRz
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vz
c2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHN0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2luZGV4LWdl
dC1hbmQtc2V0Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9y
YWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJp
YnV0ZS1tYXJrdXAuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uv
c2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFn
ZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRl
LXNldHdpbmRvdy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21z
dG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Np
bXBsZS1ldmVudHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9t
c3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1wbGUtZXZlbnRzLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvd2luZG93LWF0dHJpYnV0ZXMtZXhp
c3QuaHRtbDoKKwogMjAxMC0wMS0yMCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gQWRkIGZhaWxpbmcgdGVzdCBmYXN0L2Nzcy9idXR0b24t
aGVpZ2h0Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4
LXZhbHVlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisr
KyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvY29tcGxleC12YWx1ZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsMTUgKzEwMiw2IEBAIFBBU1Mgc3RvcmFnZS5mb28x
MiBpcyAi7peBw7/ssKFoZWxsbyIKIFBBU1MgdHlwZW9mIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTIn
KSBpcyAic3RyaW5nIgogUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LCh
aGVsbG8iCiAKLVZlcmlmeSBzdG9yYWdlIGV2ZW50cyBhcmUgY2FzZSBzZW5zaXRpdmUKLXN0b3Jh
Z2UuZm9vID0gJ3Rlc3QnCi1TZXR0aW5nIGV2ZW50IGxpc3RlbmVyCi1QQVNTIGV2ZW50Q291bnRl
ciBpcyAwCi1zdG9yYWdlLmZvbyA9ICd0ZXN0JwotUEFTUyBldmVudENvdW50ZXIgaXMgMAotc3Rv
cmFnZS5mb28gPSAnVEVTVCcKLVBBU1MgZXZlbnRDb3VudGVyIGlzIDEKLQogCiBUZXN0aW5nIGxv
Y2FsU3RvcmFnZQogc3RvcmFnZS5jbGVhcigpCkBAIC0yMTAsMTUgKzIwMSw2IEBAIFBBU1MgdHlw
ZW9mIHN0b3JhZ2UuZm9vMTIgaXMgInN0cmluZyIKIFBBU1Mgc3RvcmFnZS5mb28xMiBpcyAi7peB
w7/ssKFoZWxsbyIKIFBBU1MgdHlwZW9mIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTInKSBpcyAic3Ry
aW5nIgogUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LChaGVsbG8iCi0K
LVZlcmlmeSBzdG9yYWdlIGV2ZW50cyBhcmUgY2FzZSBzZW5zaXRpdmUKLXN0b3JhZ2UuZm9vID0g
J3Rlc3QnCi1TZXR0aW5nIGV2ZW50IGxpc3RlbmVyCi1QQVNTIGV2ZW50Q291bnRlciBpcyAwCi1z
dG9yYWdlLmZvbyA9ICd0ZXN0JwotUEFTUyBldmVudENvdW50ZXIgaXMgMAotc3RvcmFnZS5mb28g
PSAnVEVTVCcKLVBBU1MgZXZlbnRDb3VudGVyIGlzIDEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1lbnRVUkktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1
MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAsMCBAQAotVGVzdCB0aGF0IGNoYW5n
aW5nIGRvY3VtZW50VVJJIGhhcyBubyBlZmZlY3RzIG9uIHN0b3JhZ2UgZXZlbnRzLgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotVGVzdGluZyBzZXNzaW9uU3RvcmFnZQotc3RvcmFn
ZS5jbGVhcigpCi1QQVNTIHN0b3JhZ2UubGVuZ3RoIGlzIDAKLXdpbmRvdy5vbnN0b3JhZ2UgPSBm
aXJzdEV2ZW50Ci1zdG9yYWdlLmZvbyA9ICcxMjMnCi1GaXJzdCBldmVudCBmaXJlZAotU2F2aW5n
IFVSSQotZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnYWJjJwotUEFTUyBkb2N1bWVudC5kb2N1bWVu
dFVSSSBpcyAiYWJjIgotd2luZG93Lm9uc3RvcmFnZSA9IHNlY29uZEV2ZW50Ci1zdG9yYWdlLmZv
byA9ICd4eXonCi1TZWNvbmQgZXZlbnQgZmlyZWQKLVBBU1MgdHJ1ZSBpcyB0cnVlCi0KLQotVGVz
dGluZyBsb2NhbFN0b3JhZ2UKLXN0b3JhZ2UuY2xlYXIoKQotUEFTUyBzdG9yYWdlLmxlbmd0aCBp
cyAwCi13aW5kb3cub25zdG9yYWdlID0gZmlyc3RFdmVudAotc3RvcmFnZS5mb28gPSAnMTIzJwot
Rmlyc3QgZXZlbnQgZmlyZWQKLVNhdmluZyBVUkkKLWRvY3VtZW50LmRvY3VtZW50VVJJID0gJ2Fi
YycKLVBBU1MgZG9jdW1lbnQuZG9jdW1lbnRVUkkgaXMgImFiYyIKLXdpbmRvdy5vbnN0b3JhZ2Ug
PSBzZWNvbmRFdmVudAotc3RvcmFnZS5mb28gPSAneHl6JwotU2Vjb25kIGV2ZW50IGZpcmVkCi1Q
QVNTIHRydWUgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVu
dFVSSS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9k
b2N1bWVudFVSSS5odG1sCShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvd2luZG93LWF0dHJpYnV0ZXMtZXhp
c3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS93aW5kb3ctYXR0cmlidXRlcy1leGlzdC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTE4LDUgKzE4LDQgQEAgU3RvcmFnZSBvYmplY3QgbG9jYWxTdG9yYWdlIGhhcyBj
bGVhcgogd2luZG93LmxvY2FsU3RvcmFnZSA9PSB3aW5kb3cubG9jYWxTdG9yYWdlOiB0cnVlCiB3
aW5kb3cubG9jYWxTdG9yYWdlID09PSB3aW5kb3cubG9jYWxTdG9yYWdlOiB0cnVlCiB3aW5kb3cu
b25zdG9yYWdlIGV4aXN0cwotVGhlIG9uc3RvcmFnZSBwcm9wZXJ0eSB3b3JrcyB3aGVuIGEgc3Rv
cmFnZSBldmVudCBpcyBmaXJlZC4KIApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0Lmh0bWwJKHJldmlz
aW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRy
aWJ1dGVzLWV4aXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE2ICsyNiw2IEBAIGZ1bmN0
aW9uIHRlc3RTdG9yYWdlKG5hbWUsIHN0b3JhZ2UpCiAgICAgICAgIGxvZygiU3RvcmFnZSBvYmpl
Y3QgIiArIG5hbWUgKyAiIGhhcyBjbGVhciIpOwogfQogCi1mdW5jdGlvbiB0ZXN0T25zdG9yYWdl
KCkKLXsKLSAgICB3aW5kb3cub25zdG9yYWdlID0gZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAg
ICAgICBsb2coIlRoZSBvbnN0b3JhZ2UgcHJvcGVydHkgd29ya3Mgd2hlbiBhIHN0b3JhZ2UgZXZl
bnQgaXMgZmlyZWQuIik7Ci0gICAgfQotICAgIAotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbInRl
c3QiXSA9ICJ0ZXN0IjsKLX0KLQogZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCJzZXNz
aW9uU3RvcmFnZSIgaW4gd2luZG93KSB7CkBAIC01NCwxMCArNDQsOSBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkKICAgICB9IGVsc2UKICAgICAgICAgbG9nKCJ3aW5kb3cubG9jYWxTdG9yYWdlIERPRVMg
Tk9UIGV4aXN0Iik7CiAKLSAgICBpZiAoIm9uc3RvcmFnZSIgaW4gd2luZG93KSB7CisgICAgaWYg
KCJvbnN0b3JhZ2UiIGluIHdpbmRvdykKICAgICAgICAgbG9nKCJ3aW5kb3cub25zdG9yYWdlIGV4
aXN0cyIpOwotICAgICAgICB0ZXN0T25zdG9yYWdlKCk7Ci0gICAgfSBlbHNlCisgICAgZWxzZQog
ICAgICAgICBsb2coIndpbmRvdy5vbnN0b3JhZ2UgRE9FUyBOT1QgZXhpc3QiKTsKIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLWJvZHkt
YXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDIgQEAKK1Ro
aXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBET00gU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9y
YWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgc3BlY2lmaWVk
IGFzIGFuIGF0dHJpYnV0ZSBvbiB0aGUgYm9keS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1Rlc3Rpbmcgc2Vzc2lvblN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9y
YWdlLmxlbmd0aCBpcyAwCitpZnJhbWUub25sb2FkID0gc3RlcDEKK2lmcmFtZS5zcmMgPSAncmVz
b3VyY2VzL2JvZHktZXZlbnQtaGFuZGxlci5odG1sJworUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0
CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2Uuc2V0SXRlbSgnRk9PJywg
J0JBUicpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDEKK1BBU1Mgc3RvcmFnZUV2
ZW50TGlzdFswXS5rZXkgaXMgIkZPTyIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5vbGRWYWx1
ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ubmV3VmFsdWUgaXMgIkJBUiIKK3N0
b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYScsICcxJykKK3N0
b3JhZ2Uuc2V0SXRlbSgnYicsICcyJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICczJykKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLmtl
eSBpcyAiRlUiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ub2xkVmFsdWUgaXMgbnVsbAorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzFdLm5ld1ZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVu
dExpc3RbMl0ua2V5IGlzICJhIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLm9sZFZhbHVlIGlz
IG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5uZXdWYWx1ZSBpcyAiMSIKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFszXS5rZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ub2xk
VmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLm5ld1ZhbHVlIGlzICIyIgor
UEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLmtleSBpcyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlz
dFs0XS5vbGRWYWx1ZSBpcyAiMiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSBp
cyAiMyIKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRk9PJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5s
ZW5ndGggaXMgNgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLmtleSBpcyAiRk9PIgorUEFTUyBz
dG9yYWdlRXZlbnRMaXN0WzVdLm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExp
c3RbNV0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5yZW1vdmVJdGVtKCdGVScpCitQQVNTIHN0
b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDcKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkg
aXMgIkZVIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLm9sZFZhbHVlIGlzICJCQVIiCitQQVNT
IHN0b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5jbGVhcigpCitQ
QVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDgKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3
XS5rZXkgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLm9sZFZhbHVlIGlzIG51bGwK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5uZXdWYWx1ZSBpcyBudWxsCisKKworVGVzdGluZyBs
b2NhbFN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCitp
ZnJhbWUub25sb2FkID0gc3RlcDEKK2lmcmFtZS5zcmMgPSAncmVzb3VyY2VzL2JvZHktZXZlbnQt
aGFuZGxlci5odG1sJworUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0
ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2Uuc2V0SXRlbSgnRk9PJywgJ0JBUicpCitQQVNTIHN0b3Jh
Z2VFdmVudExpc3QubGVuZ3RoIGlzIDEKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5rZXkgaXMg
IkZPTyIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbMF0ubmV3VmFsdWUgaXMgIkJBUiIKK3N0b3JhZ2Uuc2V0SXRlbSgnRlUn
LCAnQkFSJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYScsICcxJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYics
ICcyJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICczJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5s
ZW5ndGggaXMgNQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLmtleSBpcyAiRlUiCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbMV0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0
WzFdLm5ld1ZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ua2V5IGlzICJh
IgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFsyXS5uZXdWYWx1ZSBpcyAiMSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5r
ZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUgaXMgbnVsbAorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzNdLm5ld1ZhbHVlIGlzICIyIgorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzRdLmtleSBpcyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5vbGRWYWx1ZSBpcyAi
MiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSBpcyAiMyIKK3N0b3JhZ2UucmVt
b3ZlSXRlbSgnRk9PJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNgorUEFTUyBz
dG9yYWdlRXZlbnRMaXN0WzVdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVd
Lm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ubmV3VmFsdWUgaXMg
bnVsbAorc3RvcmFnZS5yZW1vdmVJdGVtKCdGVScpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVu
Z3RoIGlzIDcKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkgaXMgIkZVIgorUEFTUyBzdG9y
YWdlRXZlbnRMaXN0WzZdLm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
Nl0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2VFdmVudExp
c3QubGVuZ3RoIGlzIDgKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5rZXkgaXMgbnVsbAorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzddLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50
TGlzdFs3XS5uZXdWYWx1ZSBpcyBudWxsCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJpYnV0ZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVu
dHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBA
QAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudFRlc3RI
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmFzaWMtYm9k
eS1hdHRyaWJ1dGUuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
ZXZlbnRzL2Jhc2ljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OCBAQAor
VGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIERPTSBTdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0
b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBzZXQgdmlh
IHdpbmRvdy5vbnN0b3JhZ2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0
aW5nIHNlc3Npb25TdG9yYWdlCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGgg
aXMgMAorUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFy
cmF5KCkKK3N0b3JhZ2Uuc2V0SXRlbSgnRk9PJywgJ0JBUicpCitQQVNTIHN0b3JhZ2VFdmVudExp
c3QubGVuZ3RoIGlzIDEKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5rZXkgaXMgIkZPTyIKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVu
dExpc3RbMF0ubmV3VmFsdWUgaXMgIkJBUiIKK3N0b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykK
K3N0b3JhZ2Uuc2V0SXRlbSgnYScsICcxJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICcyJykKK3N0
b3JhZ2Uuc2V0SXRlbSgnYicsICczJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMg
NQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLmtleSBpcyAiRlUiCitQQVNTIHN0b3JhZ2VFdmVu
dExpc3RbMV0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLm5ld1Zh
bHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ua2V5IGlzICJhIgorUEFTUyBz
dG9yYWdlRXZlbnRMaXN0WzJdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlz
dFsyXS5uZXdWYWx1ZSBpcyAiMSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5rZXkgaXMgImIi
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzNdLm5ld1ZhbHVlIGlzICIyIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLmtl
eSBpcyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5vbGRWYWx1ZSBpcyAiMiIKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSBpcyAiMyIKK3N0b3JhZ2UucmVtb3ZlSXRlbSgn
Rk9PJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNgorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0WzVdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLm9sZFZhbHVl
IGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ubmV3VmFsdWUgaXMgbnVsbAorc3Rv
cmFnZS5yZW1vdmVJdGVtKCdGVScpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDcK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkgaXMgIkZVIgorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzZdLm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFs
dWUgaXMgbnVsbAorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3Ro
IGlzIDgKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5rZXkgaXMgbnVsbAorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzddLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5u
ZXdWYWx1ZSBpcyBudWxsCisKKworVGVzdGluZyBsb2NhbFN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIo
KQorUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCitSZXNldCBzdG9yYWdlIGV2ZW50IGxpc3QKK3N0
b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKQorc3RvcmFnZS5zZXRJdGVtKCdGT08nLCAnQkFS
JykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMQorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzBdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLm9sZFZhbHVlIGlz
IG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5uZXdWYWx1ZSBpcyAiQkFSIgorc3RvcmFn
ZS5zZXRJdGVtKCdGVScsICdCQVInKQorc3RvcmFnZS5zZXRJdGVtKCdhJywgJzEnKQorc3RvcmFn
ZS5zZXRJdGVtKCdiJywgJzInKQorc3RvcmFnZS5zZXRJdGVtKCdiJywgJzMnKQorUEFTUyBzdG9y
YWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA1CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ua2V5IGlz
ICJGVSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbMV0ubmV3VmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlz
dFsyXS5rZXkgaXMgImEiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ub2xkVmFsdWUgaXMgbnVs
bAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLm5ld1ZhbHVlIGlzICIxIgorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzNdLmtleSBpcyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5vbGRWYWx1
ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ubmV3VmFsdWUgaXMgIjIiCitQQVNT
IHN0b3JhZ2VFdmVudExpc3RbNF0ua2V5IGlzICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRd
Lm9sZFZhbHVlIGlzICIyIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLm5ld1ZhbHVlIGlzICIz
Igorc3RvcmFnZS5yZW1vdmVJdGVtKCdGT08nKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0
aCBpcyA2CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ua2V5IGlzICJGT08iCitQQVNTIHN0b3Jh
Z2VFdmVudExpc3RbNV0ub2xkVmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1
XS5uZXdWYWx1ZSBpcyBudWxsCitzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZVJykKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdC5sZW5ndGggaXMgNworUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLmtleSBpcyAi
RlUiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ub2xkVmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFs2XS5uZXdWYWx1ZSBpcyBudWxsCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgOAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLmtl
eSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbN10ub2xkVmFsdWUgaXMgbnVsbAorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzddLm5ld1ZhbHVlIGlzIG51bGwKKworCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9i
YXNpYy1zZXRhdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1dGUtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwMiBAQAorVGhpcyBpcyBhIHRlc3QgdG8gbWFr
ZSBzdXJlIERPTSBTdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUg
Y2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBhdHRhY2hlZCB2aWEgc2V0YXR0cmlidXRlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdGluZyBzZXNzaW9uU3RvcmFnZQor
c3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2UubGVuZ3RoIGlzIDAKK2lmcmFtZS5vbmxvYWQg
PSBzdGVwMQoraWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvc2V0YXR0cmlidXRlLWV2ZW50LWhhbmRs
ZXIuaHRtbCcKK1Jlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdAorc3RvcmFnZUV2ZW50TGlzdCA9IG5l
dyBBcnJheSgpCitzdG9yYWdlLnNldEl0ZW0oJ0ZPTycsICdCQVInKQorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ua2V5IGlzICJGT08i
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzBdLm5ld1ZhbHVlIGlzICJCQVIiCitzdG9yYWdlLnNldEl0ZW0oJ0ZVJywgJ0JB
UicpCitzdG9yYWdlLnNldEl0ZW0oJ2EnLCAnMScpCitzdG9yYWdlLnNldEl0ZW0oJ2InLCAnMicp
CitzdG9yYWdlLnNldEl0ZW0oJ2InLCAnMycpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3Ro
IGlzIDUKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5rZXkgaXMgIkZVIgorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzFdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5u
ZXdWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLmtleSBpcyAiYSIKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVu
dExpc3RbMl0ubmV3VmFsdWUgaXMgIjEiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ua2V5IGlz
ICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFszXS5uZXdWYWx1ZSBpcyAiMiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0
XS5rZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNF0ub2xkVmFsdWUgaXMgIjIiCitQ
QVNTIHN0b3JhZ2VFdmVudExpc3RbNF0ubmV3VmFsdWUgaXMgIjMiCitzdG9yYWdlLnJlbW92ZUl0
ZW0oJ0ZPTycpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDYKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFs1XS5rZXkgaXMgIkZPTyIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1XS5vbGRW
YWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLm5ld1ZhbHVlIGlzIG51bGwK
K3N0b3JhZ2UucmVtb3ZlSXRlbSgnRlUnKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBp
cyA3CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ua2V5IGlzICJGVSIKK1BBU1Mgc3RvcmFnZUV2
ZW50TGlzdFs2XS5vbGRWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLm5l
d1ZhbHVlIGlzIG51bGwKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxl
bmd0aCBpcyA4CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbN10ua2V5IGlzIG51bGwKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
N10ubmV3VmFsdWUgaXMgbnVsbAorCisKK1Rlc3RpbmcgbG9jYWxTdG9yYWdlCitzdG9yYWdlLmNs
ZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAoraWZyYW1lLm9ubG9hZCA9IHN0ZXAxCitp
ZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9zZXRhdHRyaWJ1dGUtZXZlbnQtaGFuZGxlci5odG1sJwor
UmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkK
K3N0b3JhZ2Uuc2V0SXRlbSgnRk9PJywgJ0JBUicpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVu
Z3RoIGlzIDEKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5rZXkgaXMgIkZPTyIKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFswXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
MF0ubmV3VmFsdWUgaXMgIkJBUiIKK3N0b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykKK3N0b3Jh
Z2Uuc2V0SXRlbSgnYScsICcxJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICcyJykKK3N0b3JhZ2Uu
c2V0SXRlbSgnYicsICczJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNQorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzFdLmtleSBpcyAiRlUiCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
MV0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLm5ld1ZhbHVlIGlz
ICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ua2V5IGlzICJhIgorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzJdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5u
ZXdWYWx1ZSBpcyAiMSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5rZXkgaXMgImIiCitQQVNT
IHN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzNdLm5ld1ZhbHVlIGlzICIyIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLmtleSBpcyAi
YiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5vbGRWYWx1ZSBpcyAiMiIKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSBpcyAiMyIKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRk9PJykK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0
WzVdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLm9sZFZhbHVlIGlzICJC
QVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5y
ZW1vdmVJdGVtKCdGVScpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDcKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkgaXMgIkZVIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZd
Lm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFsdWUgaXMg
bnVsbAorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDgK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5rZXkgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzddLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5uZXdWYWx1
ZSBpcyBudWxsCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9i
YXNpYy1zZXRhdHRyaWJ1dGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1
dGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmFzaWMtc2V0YXR0cmlidXRlLmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9ldmVudHMvYmFzaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0
aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZl
bnRUZXN0SGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Jh
c2ljLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvY2FzZS1zZW5z
aXRpdmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzggQEAKK1ZlcmlmeSB0aGF0IHN0b3JhZ2UgZXZlbnRzIGZpcmUgZXZlbiB3
aGVuIG9ubHkgdGhlIGNhc2Ugb2YgdGhlIHZhbHVlIGNoYW5nZXMuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitUZXN0aW5nIHNlc3Npb25TdG9yYWdlCitzdG9yYWdlLmNsZWFyKCkK
K1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAorCitWZXJpZnkgc3RvcmFnZSBldmVudHMgYXJlIGNh
c2Ugc2Vuc2l0aXZlCitzdG9yYWdlLmZvbyA9ICd0ZXN0JworUmVzZXQgc3RvcmFnZSBldmVudCBs
aXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2UuZm9vID0gJ3Rlc3Qn
CitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDAKK3N0b3JhZ2UuZm9vID0gJ1RFU1Qn
CitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDEKKworCitUZXN0aW5nIGxvY2FsU3Rv
cmFnZQorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2UubGVuZ3RoIGlzIDAKKworVmVyaWZ5
IHN0b3JhZ2UgZXZlbnRzIGFyZSBjYXNlIHNlbnNpdGl2ZQorc3RvcmFnZS5mb28gPSAndGVzdCcK
K1Jlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdAorc3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgp
CitzdG9yYWdlLmZvbyA9ICd0ZXN0JworUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAw
CitzdG9yYWdlLmZvbyA9ICdURVNUJworUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAx
CisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
KwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9jYXNlLXNlbnNp
dGl2ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9l
dmVudHMvY2FzZS1zZW5zaXRpdmUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvY2FzZS1zZW5zaXRpdmUuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvY2FzZS1zZW5zaXRpdmUuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9kb2N1bWVudFVSSS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2
ZW50cy9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorVGVzdCB0aGF0IGNoYW5naW5nIGRvY3VtZW50VVJJ
IGhhcyBubyBlZmZlY3RzIG9uIHRoZSB1cmkgcGFzc2VkIGludG8gc3RvcmFnZSBldmVudHMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nIHNlc3Npb25TdG9yYWdlCitz
dG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAorUmVzZXQgc3RvcmFnZSBl
dmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2UuZm9vID0g
JzEyMycKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMQorU2F2aW5nIFVSSQorZG9j
dW1lbnQuZG9jdW1lbnRVUkkgPSAnYWJjJworUEFTUyBkb2N1bWVudC5kb2N1bWVudFVSSSBpcyAi
YWJjIgorc3RvcmFnZS5mb28gPSAneHl6JworUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBp
cyAyCitQQVNTIHRydWUgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgbG9jYWxTdG9yYWdlCitzdG9yYWdl
LmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAorUmVzZXQgc3RvcmFnZSBldmVudCBs
aXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2UuZm9vID0gJzEyMycK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgMQorU2F2aW5nIFVSSQorZG9jdW1lbnQu
ZG9jdW1lbnRVUkkgPSAnYWJjJworUEFTUyBkb2N1bWVudC5kb2N1bWVudFVSSSBpcyAiYWJjIgor
c3RvcmFnZS5mb28gPSAneHl6JworUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAyCitQ
QVNTIHRydWUgaXMgdHJ1ZQorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCisKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9l
dmVudHMvZG9jdW1lbnRVUkkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL2RvY3VtZW50VVJJLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2RvY3VtZW50VVJJLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvZXZlbnRUZXN0SGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2Jv
ZHktZXZlbnQtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2JvZHktZXZlbnQtaGFuZGxlci5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9yZXNvdXJj
ZXMvYm9keS1ldmVudC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAor
PGh0bWw+PGhlYWQ+PHNjcmlwdD4KKworZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KGUpIHsK
KyAgICB3aW5kb3cucGFyZW50LnN0b3JhZ2VFdmVudExpc3QucHVzaChlKTsKK30KKworPC9zY3Jp
cHQ+PC9oZWFkPjxib2R5IG9uc3RvcmFnZT0iaGFuZGxlU3RvcmFnZUV2ZW50KHdpbmRvdy5ldmVu
dCk7Ij4KKzwvYm9keT48L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvZXZlbnRzL3Jlc291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2V2ZW50VGVzdEhh
cm5lc3MuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
ZXZlbnRzL3Jlc291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDUxIEBACitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKK30KKworaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSUZS
QU1FIik7CitpZnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKK2RvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyYW1lKTsKK2lmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJU
ZXh0ID0gIk5vdGhpbmcgdG8gc2VlIGhlcmUuIjsKKworc3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBB
cnJheSgpOworaWZyYW1lLmNvbnRlbnRXaW5kb3cub25zdG9yYWdlID0gZnVuY3Rpb24gKGUpIHsK
KyAgICB3aW5kb3cucGFyZW50LnN0b3JhZ2VFdmVudExpc3QucHVzaChlKTsKK30KKworZnVuY3Rp
b24gcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKGNhbGxiYWNrKSB7CisgICAgdmFyIGN1cnJlbnRDb3Vu
dCA9IHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoOworICAgIGZ1bmN0aW9uIG9uVGltZW91dCgpIHsK
KyAgICAgICAgaWYgKGN1cnJlbnRDb3VudCAhPSBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCkKKyAg
ICAgICAgICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhjYWxsYmFjayk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfQorICAgIHNldFRpbWVvdXQob25UaW1lb3V0
LCAwKTsKK30KKworZnVuY3Rpb24gdGVzdFN0b3JhZ2VzKHRlc3RDYWxsYmFjaykKK3sKKyAgICAv
LyBXaGVuIHdlJ3JlIGRvbmUgdGVzdGluZyBMb2NhbFN0b3JhZ2UsIHRoaXMgaXMgcnVuLgorICAg
IGZ1bmN0aW9uIGFsbERvbmUoKQorICAgIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBk
ZWJ1ZygiIik7CisgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAg
ICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCkKKyAgICB9CisKKyAgICAvLyBXaGVuIHdlJ3JlIGRvbmUg
dGVzdGluZyB3aXRoIFNlc3Npb25TdG9yYWdlLCB0aGlzIGlzIHJ1bi4KKyAgICBmdW5jdGlvbiBy
dW5Mb2NhbFN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1
ZygiIik7CisgICAgICAgIHRlc3RDYWxsYmFjaygibG9jYWxTdG9yYWdlIiwgYWxsRG9uZSk7Cisg
ICAgfQorCisgICAgLy8gRmlyc3QgcnVuIHRoZSB0ZXN0IHdpdGggU2Vzc2lvblN0b3JhZ2UuCisg
ICAgdGVzdENhbGxiYWNrKCJzZXNzaW9uU3RvcmFnZSIsIHJ1bkxvY2FsU3RvcmFnZSk7Cit9Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9zZXRh
dHRyaWJ1dGUtZXZlbnQtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL3NldGF0dHJpYnV0ZS1ldmVudC1oYW5k
bGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
ZXZlbnRzL3Jlc291cmNlcy9zZXRhdHRyaWJ1dGUtZXZlbnQtaGFuZGxlci5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDExIEBACis8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+Cis8c2NyaXB0
PgorCitmdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoZSkgeworICAgIHdpbmRvdy5wYXJlbnQu
c3RvcmFnZUV2ZW50TGlzdC5wdXNoKGUpOworfQorCitkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0
ZSgib25zdG9yYWdlIiwgImhhbmRsZVN0b3JhZ2VFdmVudCh3aW5kb3cuZXZlbnQpOyIpOworCis8
L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRF
Lmh0bWwJKHJldmlzaW9uIDUzMjMyKQkoZnJvbSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2Uvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWw6NTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJZT1VSX0pT
X0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0
LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDEyICsxLDEzIEBACiA8aHRtbD4KIDxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1m
dW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9u
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnRU
ZXN0SGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iWU9VUl9KU19GSUxFX0hFUkUi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQt
dGVzdHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy1ib2R5LWF0dHJp
YnV0ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OCBAQAorZGVzY3JpcHRpb24oIlRoaXMg
aXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBET00gU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdl
RXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgc3BlY2lmaWVkIGFz
IGFuIGF0dHJpYnV0ZSBvbiB0aGUgYm9keS4iKTsKKworZnVuY3Rpb24gdGVzdChzdG9yYWdlU3Ry
aW5nLCBjYWxsYmFjaykKK3sKKyAgICB3aW5kb3cuY29tcGxldGlvbkNhbGxiYWNrID0gY2FsbGJh
Y2s7CisgICAgd2luZG93LnN0b3JhZ2UgPSBldmFsKHN0b3JhZ2VTdHJpbmcpOworICAgIGlmICgh
c3RvcmFnZSkgeworICAgICAgICB0ZXN0RmFpbGVkKHN0b3JhZ2VTdHJpbmcgKyAiIERPRVMgTk9U
IGV4aXN0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZWJ1ZygiVGVzdGluZyAi
ICsgc3RvcmFnZVN0cmluZyk7CisKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsK
KyAgICBzaG91bGRCZSgic3RvcmFnZS5sZW5ndGgiLCAiMCIpOworCisgICAgZXZhbEFuZExvZygi
aWZyYW1lLm9ubG9hZCA9IHN0ZXAxIik7CisgICAgZXZhbEFuZExvZygiaWZyYW1lLnNyYyA9ICdy
ZXNvdXJjZXMvYm9keS1ldmVudC1oYW5kbGVyLmh0bWwnIik7Cit9CisKK2Z1bmN0aW9uIHN0ZXAx
KCkKK3sKKyAgICBkZWJ1ZygiUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0Iik7CisgICAgZXZhbEFu
ZExvZygic3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgpIik7CisgICAgZXZhbEFuZExvZygi
c3RvcmFnZS5zZXRJdGVtKCdGT08nLCAnQkFSJykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2
ZW50cyhzdGVwMik7Cit9CisKK2Z1bmN0aW9uIHN0ZXAyKCkKK3sKKyAgICBzaG91bGRCZSgic3Rv
cmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiMSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
c3RvcmFnZUV2ZW50TGlzdFswXS5rZXkiLCAiRk9PIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9y
YWdlRXZlbnRMaXN0WzBdLm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJz
dG9yYWdlRXZlbnRMaXN0WzBdLm5ld1ZhbHVlIiwgIkJBUiIpOworICAgIGV2YWxBbmRMb2coInN0
b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNl
dEl0ZW0oJ2EnLCAnMScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdiJywg
JzInKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnYicsICczJykiKTsKKwor
ICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwMyk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAzKCkK
K3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiNSIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFsxXS5rZXkiLCAiRlUiKTsKKyAg
ICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbMV0ub2xkVmFsdWUiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMV0ubmV3VmFsdWUiLCAiQkFSIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzJdLmtleSIsICJh
Iik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzJdLm9sZFZhbHVlIik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzJdLm5ld1ZhbHVlIiwg
IjEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbM10ua2V5
IiwgImIiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbM10ubmV3VmFs
dWUiLCAiMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs0
XS5rZXkiLCAiYiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlz
dFs0XS5vbGRWYWx1ZSIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdl
RXZlbnRMaXN0WzRdLm5ld1ZhbHVlIiwgIjMiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnJl
bW92ZUl0ZW0oJ0ZPTycpIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDQpOwor
fQorCitmdW5jdGlvbiBzdGVwNCgpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3Qu
bGVuZ3RoIiwgIjYiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExp
c3RbNV0ua2V5IiwgIkZPTyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2
ZW50TGlzdFs1XS5vbGRWYWx1ZSIsICJCQVIiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VF
dmVudExpc3RbNV0ubmV3VmFsdWUiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnJlbW92ZUl0
ZW0oJ0ZVJykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwNSk7Cit9CisKK2Z1
bmN0aW9uIHN0ZXA1KCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgi
LCAiNyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs2XS5r
ZXkiLCAiRlUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3Rb
Nl0ub2xkVmFsdWUiLCAiQkFSIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0
WzZdLm5ld1ZhbHVlIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5jbGVhcigpIik7CisgCisg
ICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXA2KTsKK30KKworZnVuY3Rpb24gc3RlcDYoKQor
eworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICI4Iik7CisgICAgc2hv
dWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzddLmtleSIpOworICAgIHNob3VsZEJlTnVsbCgi
c3RvcmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1ZSIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFn
ZUV2ZW50TGlzdFs3XS5uZXdWYWx1ZSIpOworIAorICAgIGNvbXBsZXRpb25DYWxsYmFjaygpOwor
fQorCit0ZXN0U3RvcmFnZXModGVzdCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVz
dHMvYmFzaWMtc2V0YXR0cmlidXRlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXNldGF0dHJpYnV0ZS5qcwko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2Ny
aXB0LXRlc3RzL2Jhc2ljLXNldGF0dHJpYnV0ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5
OCBAQAorZGVzY3JpcHRpb24oIlRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBET00gU3RvcmFn
ZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZl
bnQgbGlzdGVuZXIgYXR0YWNoZWQgdmlhIHNldGF0dHJpYnV0ZS4iKTsKKworZnVuY3Rpb24gdGVz
dChzdG9yYWdlU3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICB3aW5kb3cuY29tcGxldGlvbkNhbGxi
YWNrID0gY2FsbGJhY2s7CisgICAgd2luZG93LnN0b3JhZ2UgPSBldmFsKHN0b3JhZ2VTdHJpbmcp
OworICAgIGlmICghc3RvcmFnZSkgeworICAgICAgICB0ZXN0RmFpbGVkKHN0b3JhZ2VTdHJpbmcg
KyAiIERPRVMgTk9UIGV4aXN0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZWJ1
ZygiVGVzdGluZyAiICsgc3RvcmFnZVN0cmluZyk7CisKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdl
LmNsZWFyKCkiKTsKKyAgICBzaG91bGRCZSgic3RvcmFnZS5sZW5ndGgiLCAiMCIpOworCisgICAg
ZXZhbEFuZExvZygiaWZyYW1lLm9ubG9hZCA9IHN0ZXAxIik7CisgICAgZXZhbEFuZExvZygiaWZy
YW1lLnNyYyA9ICdyZXNvdXJjZXMvc2V0YXR0cmlidXRlLWV2ZW50LWhhbmRsZXIuaHRtbCciKTsK
K30KKworZnVuY3Rpb24gc3RlcDEoKQoreworICAgIGRlYnVnKCJSZXNldCBzdG9yYWdlIGV2ZW50
IGxpc3QiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCki
KTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNldEl0ZW0oJ0ZPTycsICdCQVInKSIpOworCisg
ICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAyKTsKK30KKworZnVuY3Rpb24gc3RlcDIoKQor
eworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICIxIik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzBdLmtleSIsICJGT08iKTsKKyAg
ICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbMF0ub2xkVmFsdWUiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMF0ubmV3VmFsdWUiLCAiQkFSIik7
CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdGVScsICdCQVInKSIpOworICAgIGV2
YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnYScsICcxJykiKTsKKyAgICBldmFsQW5kTG9nKCJz
dG9yYWdlLnNldEl0ZW0oJ2InLCAnMicpIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJ
dGVtKCdiJywgJzMnKSIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAzKTsKK30K
KworZnVuY3Rpb24gc3RlcDMoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxl
bmd0aCIsICI1Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0
WzFdLmtleSIsICJGVSIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFsxXS5v
bGRWYWx1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFsx
XS5uZXdWYWx1ZSIsICJCQVIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VF
dmVudExpc3RbMl0ua2V5IiwgImEiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExp
c3RbMl0ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVu
dExpc3RbMl0ubmV3VmFsdWUiLCAiMSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3Rv
cmFnZUV2ZW50TGlzdFszXS5rZXkiLCAiYiIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2
ZW50TGlzdFszXS5vbGRWYWx1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFn
ZUV2ZW50TGlzdFszXS5uZXdWYWx1ZSIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJzdG9yYWdlRXZlbnRMaXN0WzRdLmtleSIsICJiIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJzdG9yYWdlRXZlbnRMaXN0WzRdLm9sZFZhbHVlIiwgIjIiKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNF0ubmV3VmFsdWUiLCAiMyIpOworICAgIGV2
YWxBbmRMb2coInN0b3JhZ2UucmVtb3ZlSXRlbSgnRk9PJykiKTsKKworICAgIHJ1bkFmdGVyU3Rv
cmFnZUV2ZW50cyhzdGVwNCk7Cit9CisKK2Z1bmN0aW9uIHN0ZXA0KCkKK3sKKyAgICBzaG91bGRC
ZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiNiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygic3RvcmFnZUV2ZW50TGlzdFs1XS5rZXkiLCAiRk9PIik7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzVdLm9sZFZhbHVlIiwgIkJBUiIpOworICAgIHNo
b3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFs1XS5uZXdWYWx1ZSIpOworICAgIGV2YWxBbmRM
b2coInN0b3JhZ2UucmVtb3ZlSXRlbSgnRlUnKSIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZl
bnRzKHN0ZXA1KTsKK30KKworZnVuY3Rpb24gc3RlcDUoKQoreworICAgIHNob3VsZEJlKCJzdG9y
YWdlRXZlbnRMaXN0Lmxlbmd0aCIsICI3Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJz
dG9yYWdlRXZlbnRMaXN0WzZdLmtleSIsICJGVSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygic3RvcmFnZUV2ZW50TGlzdFs2XS5vbGRWYWx1ZSIsICJCQVIiKTsKKyAgICBzaG91bGRCZU51
bGwoInN0b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFsdWUiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9y
YWdlLmNsZWFyKCkiKTsKKyAKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDYpOworfQor
CitmdW5jdGlvbiBzdGVwNigpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVu
Z3RoIiwgIjgiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbN10ua2V5Iik7
CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzddLm9sZFZhbHVlIik7CisgICAg
c2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzddLm5ld1ZhbHVlIik7CisgCisgICAgY29t
cGxldGlvbkNhbGxiYWNrKCk7Cit9CisKK3Rlc3RTdG9yYWdlcyh0ZXN0KTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRl
c3RzL2Jhc2ljLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk3IEBACitkZXNjcmlwdGlvbigi
VGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIERPTSBTdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0
b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBzZXQgdmlh
IHdpbmRvdy5vbnN0b3JhZ2UuIik7CisKK2Z1bmN0aW9uIHRlc3Qoc3RvcmFnZVN0cmluZywgY2Fs
bGJhY2spCit7CisgICAgd2luZG93LmNvbXBsZXRpb25DYWxsYmFjayA9IGNhbGxiYWNrOworICAg
IHdpbmRvdy5zdG9yYWdlID0gZXZhbChzdG9yYWdlU3RyaW5nKTsKKyAgICBpZiAoIXN0b3JhZ2Up
IHsKKyAgICAgICAgdGVzdEZhaWxlZChzdG9yYWdlU3RyaW5nICsgIiBET0VTIE5PVCBleGlzdCIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGVidWcoIlRlc3RpbmcgIiArIHN0b3Jh
Z2VTdHJpbmcpOworCisgICAgZXZhbEFuZExvZygic3RvcmFnZS5jbGVhcigpIik7CisgICAgc2hv
dWxkQmUoInN0b3JhZ2UubGVuZ3RoIiwgIjAiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50
cyhzdGVwMSk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAxKCkKK3sKKyAgICBkZWJ1ZygiUmVzZXQgc3Rv
cmFnZSBldmVudCBsaXN0Iik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZUV2ZW50TGlzdCA9IG5l
dyBBcnJheSgpIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdGT08nLCAnQkFS
JykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwMik7Cit9CisKK2Z1bmN0aW9u
IHN0ZXAyKCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiMSIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFswXS5rZXkiLCAi
Rk9PIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzBdLm9sZFZhbHVlIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzBdLm5ld1ZhbHVl
IiwgIkJBUiIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJyki
KTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNldEl0ZW0oJ2EnLCAnMScpIik7CisgICAgZXZh
bEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdiJywgJzInKSIpOworICAgIGV2YWxBbmRMb2coInN0
b3JhZ2Uuc2V0SXRlbSgnYicsICczJykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhz
dGVwMyk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAzKCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2
ZW50TGlzdC5sZW5ndGgiLCAiNSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFn
ZUV2ZW50TGlzdFsxXS5rZXkiLCAiRlUiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVu
dExpc3RbMV0ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VF
dmVudExpc3RbMV0ubmV3VmFsdWUiLCAiQkFSIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJzdG9yYWdlRXZlbnRMaXN0WzJdLmtleSIsICJhIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9y
YWdlRXZlbnRMaXN0WzJdLm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJz
dG9yYWdlRXZlbnRMaXN0WzJdLm5ld1ZhbHVlIiwgIjEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInN0b3JhZ2VFdmVudExpc3RbM10ua2V5IiwgImIiKTsKKyAgICBzaG91bGRCZU51bGwo
InN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInN0b3JhZ2VFdmVudExpc3RbM10ubmV3VmFsdWUiLCAiMiIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs0XS5rZXkiLCAiYiIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs0XS5vbGRWYWx1ZSIsICIyIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzRdLm5ld1ZhbHVlIiwgIjMi
KTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZPTycpIik7CisKKyAgICBy
dW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDQpOworfQorCitmdW5jdGlvbiBzdGVwNCgpCit7Cisg
ICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjYiKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNV0ua2V5IiwgIkZPTyIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs1XS5vbGRWYWx1ZSIsICJCQVIi
KTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbNV0ubmV3VmFsdWUiKTsKKyAg
ICBldmFsQW5kTG9nKCJzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZVJykiKTsKKworICAgIHJ1bkFmdGVy
U3RvcmFnZUV2ZW50cyhzdGVwNSk7Cit9CisKK2Z1bmN0aW9uIHN0ZXA1KCkKK3sKKyAgICBzaG91
bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiNyIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkiLCAiRlUiKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNl0ub2xkVmFsdWUiLCAiQkFSIik7CisgICAg
c2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzZdLm5ld1ZhbHVlIik7CisgICAgZXZhbEFu
ZExvZygic3RvcmFnZS5jbGVhcigpIik7CisgCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0
ZXA2KTsKK30KKworZnVuY3Rpb24gc3RlcDYoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZl
bnRMaXN0Lmxlbmd0aCIsICI4Iik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0
WzddLmtleSIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1
ZSIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFs3XS5uZXdWYWx1ZSIpOwor
IAorICAgIGNvbXBsZXRpb25DYWxsYmFjaygpOworfQorCit0ZXN0U3RvcmFnZXModGVzdCk7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvY2FzZS1zZW5zaXRpdmUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVz
dHMvY2FzZS1zZW5zaXRpdmUuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9jYXNlLXNlbnNpdGl2ZS5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1MCBAQAorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHN0b3JhZ2Ug
ZXZlbnRzIGZpcmUgZXZlbiB3aGVuIG9ubHkgdGhlIGNhc2Ugb2YgdGhlIHZhbHVlIGNoYW5nZXMu
Iik7CisKK2Z1bmN0aW9uIHRlc3Qoc3RvcmFnZVN0cmluZywgY2FsbGJhY2spCit7CisgICAgd2lu
ZG93LmNvbXBsZXRpb25DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIHdpbmRvdy5zdG9yYWdlID0g
ZXZhbChzdG9yYWdlU3RyaW5nKTsKKyAgICBpZiAoIXN0b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZh
aWxlZChzdG9yYWdlU3RyaW5nICsgIiBET0VTIE5PVCBleGlzdCIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgZGVidWcoIlRlc3RpbmcgIiArIHN0b3JhZ2VTdHJpbmcpOworCisgICAg
ZXZhbEFuZExvZygic3RvcmFnZS5jbGVhcigpIik7CisgICAgc2hvdWxkQmUoInN0b3JhZ2UubGVu
Z3RoIiwgIjAiKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVmVyaWZ5IHN0b3JhZ2Ug
ZXZlbnRzIGFyZSBjYXNlIHNlbnNpdGl2ZSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9v
ID0gJ3Rlc3QnIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDEpOworfQorCitm
dW5jdGlvbiBzdGVwMSgpCit7CisgICAgZGVidWcoIlJlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdCIp
OworICAgIGV2YWxBbmRMb2coInN0b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKSIpOworICAg
IGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0gJ3Rlc3QnIik7CisKKyAgICBydW5BZnRlclN0b3Jh
Z2VFdmVudHMoc3RlcDIpOworfQorCitmdW5jdGlvbiBzdGVwMigpCit7CisgICAgc2hvdWxkQmUo
InN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjAiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdl
LmZvbyA9ICdURVNUJyIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAzKTsKK30K
KworZnVuY3Rpb24gc3RlcDMoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxl
bmd0aCIsICIxIik7CisKKyAgICBjb21wbGV0aW9uQ2FsbGJhY2soKTsKK30KKwordGVzdFN0b3Jh
Z2VzKHRlc3QpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJ
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMv
c2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgY2hhbmdp
bmcgZG9jdW1lbnRVUkkgaGFzIG5vIGVmZmVjdHMgb24gdGhlIHVyaSBwYXNzZWQgaW50byBzdG9y
YWdlIGV2ZW50cy4iKTsKKworZnVuY3Rpb24gdGVzdChzdG9yYWdlU3RyaW5nLCBjYWxsYmFjaykK
K3sKKyAgICB3aW5kb3cuY29tcGxldGlvbkNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgd2luZG93
LnN0b3JhZ2UgPSBldmFsKHN0b3JhZ2VTdHJpbmcpOworICAgIGlmICghc3RvcmFnZSkgeworICAg
ICAgICB0ZXN0RmFpbGVkKHN0b3JhZ2VTdHJpbmcgKyAiIERPRVMgTk9UIGV4aXN0Iik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZWJ1ZygiVGVzdGluZyAiICsgc3RvcmFnZVN0cmlu
Zyk7CisKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsKKyAgICBzaG91bGRCZSgi
c3RvcmFnZS5sZW5ndGgiLCAiMCIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAx
KTsKK30KKworZnVuY3Rpb24gc3RlcDEoKQoreworICAgIGRlYnVnKCJSZXNldCBzdG9yYWdlIGV2
ZW50IGxpc3QiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5
KCkiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICcxMjMnIik7CisKKyAgICBydW5B
ZnRlclN0b3JhZ2VFdmVudHMoc3RlcDIpOworfQorCitmdW5jdGlvbiBzdGVwMigpCit7CisgICAg
c2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjEiKTsKKyAgICBkZWJ1ZygiU2F2
aW5nIFVSSSIpOworICAgIHdpbmRvdy5sYXN0VVJJID0gc3RvcmFnZUV2ZW50TGlzdFswXS51cmk7
CisKKyAgICBldmFsQW5kTG9nKCJkb2N1bWVudC5kb2N1bWVudFVSSSA9ICdhYmMnIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5kb2N1bWVudFVSSSIsICJhYmMiKTsKKyAg
ICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICd4eXonIik7CisKKyAgICBydW5BZnRlclN0b3Jh
Z2VFdmVudHMoc3RlcDMpOworfQorCitmdW5jdGlvbiBzdGVwMygpCit7CisgICAgc2hvdWxkQmUo
InN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjIiKTsKKyAgICBzaG91bGRCZVRydWUoU3RyaW5n
KHdpbmRvdy5sYXN0VVJJID09IHN0b3JhZ2VFdmVudExpc3RbMV0udXJpKSk7CisKKyAgICBjb21w
bGV0aW9uQ2FsbGJhY2soKTsKK30KKwordGVzdFN0b3JhZ2VzKHRlc3QpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRz
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDc5ICswLDAgQEAKLVRoaXMgaXMgdGhlIG1haW4gZnJhbWUgb2YgYSAyLWZy
YW1lIGRvY3VtZW50LiBFYWNoIGZyYW1lIGlzIGluIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBh
bmQgdGhlcmVmb3JlIHNoYXJlcyB0aGUgc2FtZSBsb2NhbFN0b3JhZ2Ugb2JqZWN0LiBBcyBhIHJl
c3VsdCwgZWFjaCBmcmFtZSBzaG91bGQgcmVjZWl2ZSBhIFN0b3JhZ2VFdmVudCB3aGVuIGVpdGhl
ciBmcmFtZSBjaGFuZ2VzIHRoZSBsb2NhbFN0b3JhZ2Ugb2JqZWN0LgotCi1NYWluIGZyYW1lIGFi
b3V0IHRvIHJ1biBzZXRJdGVtIG9uIGxvY2FsU3RvcmFnZS4uLgotTWFpbiBGcmFtZSByZWNlaXZl
ZCBTdG9yYWdlRXZlbnQ6Ci1LZXkgLSBNYWluIEZyYW1lCi1OZXcgVmFsdWUgLSBTRVQKLU9sZCBW
YWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0
b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdp
bmRvdy5sb2NhbFN0b3JhZ2UKLQotU3ViZnJhbWUgcmVjZWl2ZWQgc3RvcmFnZSBldmVudDoKLUtl
eSAtIE1haW4gRnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZhbHVlIC0gbnVsbAotVVJJIC0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRz
Lmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3RvcmFnZQot
Ci1TdWJmcmFtZSBhYm91dCB0byBjaGFuZ2UgbG9jYWxTdG9yYWdlLi4uCi1NYWluIEZyYW1lIHJl
Y2VpdmVkIFN0b3JhZ2VFdmVudDoKLUtleSAtIFN1YmZyYW1lCi1OZXcgVmFsdWUgLSBTRVQKLU9s
ZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2Nh
bHN0b3JhZ2UvcmVzb3VyY2VzL2lmcmFtZS1ldmVudHMtc2Vjb25kLmh0bWwKLVN0b3JhZ2UgQXJl
YSAtIFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZl
ZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZh
bHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3Rv
cmFnZS9yZXNvdXJjZXMvaWZyYW1lLWV2ZW50cy1zZWNvbmQuaHRtbAotU3RvcmFnZSBBcmVhIC0g
VGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLU1haW4gZnJhbWUgYWJvdXQgdG8g
cnVuIHJlbW92ZUl0ZW0gb24gbG9jYWxTdG9yYWdlLi4uCi1NYWluIEZyYW1lIHJlY2VpdmVkIFN0
b3JhZ2VFdmVudDoKLUtleSAtIE1haW4gRnJhbWUKLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1
ZSAtIFNFVAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9pZnJhbWUtZXZlbnRzLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93
LmxvY2FsU3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0g
TWFpbiBGcmFtZQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gU0VUCi1VUkkgLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRt
bAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLVN1
YmZyYW1lIGFib3V0IHRvIGNoYW5nZSBsb2NhbFN0b3JhZ2UuLi4KLU1haW4gZnJhbWUgYWJvdXQg
dG8gY2xlYXIgbG9jYWxTdG9yYWdlLi4uCi1NYWluIEZyYW1lIHJlY2VpdmVkIFN0b3JhZ2VFdmVu
dDoKLUtleSAtIAotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0
bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3RvcmFnZQotCi1T
dWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0gCi1OZXcgVmFsdWUgLSBudWxs
Ci1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5k
b3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLVN1YmZyYW1lIGFib3V0IHRvIGNoYW5nZSBsb2Nh
bFN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQgU3RvcmFnZUV2ZW50OgotS2V5IC0gU3Vi
ZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9yZXNvdXJjZXMvaWZyYW1lLWV2ZW50
cy1zZWNvbmQuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxT
dG9yYWdlCi0KLVN1YmZyYW1lIHJlY2VpdmVkIHN0b3JhZ2UgZXZlbnQ6Ci1LZXkgLSBTdWJmcmFt
ZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Jlc291cmNlcy9pZnJhbWUtZXZlbnRzLXNl
Y29uZC5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5sb2NhbFN0b3Jh
Z2UKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L2lmcmFtZS1ldmVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAkocmV2aXNpb24gNTMyMzIp
CisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1l
dmVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2NiArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhckxvY2FsU3RvcmFnZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24gbG9nKGEpCi17Ci0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCArPSBhICsgIjxicj4iOwotfQotCi1m
dW5jdGlvbiBub3JtYWxpemVVUkwodXJsKQotewotICAgIHJldHVybiB1cmwuc3Vic3RyaW5nKHVy
bC5sYXN0SW5kZXhPZigiTGF5b3V0VGVzdHMiKSk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaCgpCi17
Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCi19Ci0KLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVu
dChlKQotewotICAgIGxvZygiTWFpbiBGcmFtZSByZWNlaXZlZCBTdG9yYWdlRXZlbnQ6Iik7Ci0g
ICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGUua2V5KTsKLSAgICBsb2coIk5ldyBWYWx1ZSAg
ICAgLSAiICsgZS5uZXdWYWx1ZSk7Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiArIGUub2xk
VmFsdWUpOwotICAgIGxvZygiVVJJICAgICAgICAgICAtICIgKyBub3JtYWxpemVVUkwoZS51cmkp
KTsKLSAgICBsb2coIlN0b3JhZ2UgQXJlYSAgLSAiICsgKChlLnN0b3JhZ2VBcmVhID09IHdpbmRv
dy5sb2NhbFN0b3JhZ2UpID8gIlRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3RvcmFnZSIgOiAi
QW5vdGhlciB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlIikpOwotICAgIGxvZygiIik7Ci0g
ICAgCi0gICAgaWYgKGUua2V5ID09ICJTdWJmcmFtZSIpCi0gICAgICAgIGZpbmlzaCgpOwotfQot
Ci1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGlmICghd2luZG93LmxvY2FsU3RvcmFnZSkg
ewotICAgICAgICBsb2coIndpbmRvdy5sb2NhbFN0b3JhZ2UgRE9FUyBOT1QgZXhpc3QiKTsKLSAg
ICAgICAgZmluaXNoKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsIGhhbmRsZVN0b3JhZ2VFdmVudCwgZmFsc2UpOwotICAg
IGxvZygiTWFpbiBmcmFtZSBhYm91dCB0byBydW4gc2V0SXRlbSBvbiBsb2NhbFN0b3JhZ2UuLi4i
KTsKLSAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiTWFpbiBGcmFtZSIsICJTRVQiKTsKLSAgICBs
b2coIk1haW4gZnJhbWUgYWJvdXQgdG8gcnVuIHJlbW92ZUl0ZW0gb24gbG9jYWxTdG9yYWdlLi4u
Iik7Ci0gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIk1haW4gRnJhbWUiKTsKLSAgICBsb2co
Ik1haW4gZnJhbWUgYWJvdXQgdG8gY2xlYXIgbG9jYWxTdG9yYWdlLi4uIik7Ci0gICAgbG9jYWxT
dG9yYWdlLmNsZWFyKCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJz
dGFydFRlc3QoKTsiPgotVGhpcyBpcyB0aGUgbWFpbiBmcmFtZSBvZiBhIDItZnJhbWUgZG9jdW1l
bnQuICBFYWNoIGZyYW1lIGlzIGluIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhbmQgdGhlcmVm
b3JlIHNoYXJlcyB0aGUgc2FtZSBsb2NhbFN0b3JhZ2Ugb2JqZWN0LgotQXMgYSByZXN1bHQsIGVh
Y2ggZnJhbWUgc2hvdWxkIHJlY2VpdmUgYSBTdG9yYWdlRXZlbnQgd2hlbiBlaXRoZXIgZnJhbWUg
Y2hhbmdlcyB0aGUgbG9jYWxTdG9yYWdlIG9iamVjdC48YnI+Ci08aWZyYW1lIHNyYz0icmVzb3Vy
Y2VzL2lmcmFtZS1ldmVudHMtc2Vjb25kLmh0bWwiPjwvaWZyYW1lPjxicj4KLTxkaXYgaWQ9Imxv
Z2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L2luZGV4LWdldC1hbmQtc2V0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1NCArMSwyOSBAQAogVGhpcyBpcyBh
IHRlc3QgdG8gbWFrZSBzdXJlIHlvdSBjYW4gZ2V0IGFuZCBzZXQgdmFsdWVzIGluIGxvY2FsU3Rv
cmFnZSBieSBpbmRleC4KIFNldHRpbmcgRk9PIHVzaW5nIHRoZSBpbmRleCBzZXR0ZXIuCi1TdG9y
YWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAt
IG51bGwKLQogUmVhZGluZyBGT086CiBCQVIKIEJBUgogQkFSCiAKIFNldHRpbmcgRk9PIGFnYWlu
LCB1c2luZyBzZXRJdGVtLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZh
bHVlIC0gQkFaCi1PbGQgVmFsdWUgLSBCQVIKLQogUmVhZGluZyBGT086CiBCQVoKIEJBWgogQkFa
CiAKIFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyB0aGUgaW5kZXggc2V0dGVyLgotU3RvcmFnZSBl
dmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFUCi1PbGQgVmFsdWUgLSBCQVoK
LQogUmVhZGluZyBGT086CiBCQVQKIEJBVAogQkFUCiAKIFNldHRpbmcgRk9PIGFnYWluLCB1c2lu
ZyBwcm9wZXJ0eS1zbG90IHN5bnRheAotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwot
TmV3IFZhbHVlIC0gQkFUTUFOCi1PbGQgVmFsdWUgLSBCQVQKLQogUmVhZGluZyBGT086CiBCQVRN
QU4KIEJBVE1BTgogQkFUTUFOCiAKIFJlbW92aW5nIEZPTywgdGhlbiB0cnlpbmcgdG8gcmVhZCBp
dAotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gbnVsbAotT2xk
IFZhbHVlIC0gQkFUTUFOCi0KIFJlYWRpbmcgRk9POgogdW5kZWZpbmVkCiB1bmRlZmluZWQKSW5k
ZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0
LWFuZC1zZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0Lmh0bWwJKHJldmlzaW9uIDUzMjMyKQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pbmRleC1nZXQt
YW5kLXNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSwxNSArMTksNiBAQCBmdW5jdGlvbiBm
aW5pc2goKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkKIH0KIAot
ZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KGUpCi17Ci0gICAgbG9nKCJTdG9yYWdlIGV2ZW50
IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBlLmtleSk7Ci0gICAgbG9n
KCJOZXcgVmFsdWUgICAgIC0gIiArIGUubmV3VmFsdWUpOwotICAgIGxvZygiT2xkIFZhbHVlICAg
ICAtICIgKyBlLm9sZFZhbHVlKTsKLSAgICBsb2coIiIpOwotfQotCiBmdW5jdGlvbiBydW5UZXN0
KCkKIHsKICAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsKQEAgLTM2LDggKzI3LDYgQEAg
ZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCBoYW5kbGVTdG9yYWdlRXZlbnQsIGZhbHNl
KTsKLSAgICAKICAgICBsb2coIlNldHRpbmcgRk9PIHVzaW5nIHRoZSBpbmRleCBzZXR0ZXIuIik7
CiAgICAgbG9jYWxTdG9yYWdlWyJGT08iXSA9ICJCQVIiOwogICAgIGxvZygiUmVhZGluZyBGT086
Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29u
c3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1
dGUtbWFya3VwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3Vw
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi1UaGlzIGlzIGEg
dGVzdCB0byBtYWtlIHN1cmUgbG9jYWxTdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVu
dHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRv
IGJvZHkub25zdG9yYWdlLiBUaGUgZXZlbnQgbGlzdGVuZXIgaXMgc2V0dXAgaW4gdGhlIGJvZHkg
ZWxlbWVudCdzIG1hcmt1cC4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBW
YWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5
IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50
IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQot
U3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFs
dWUgLSBCQVIKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxz
dG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmli
dXRlLW1hcmt1cC5odG1sCShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jbGVhckxvY2FsU3RvcmFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24gbG9nKGEpCi17Ci0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCArPSBhICsgIjxicj4iOwotfQotCi1mdW5j
dGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoKQotewotICAgIGlmICghd2luZG93LmV2ZW50KSB7Ci0g
ICAgICAgIGxvZygiR2xvYmFsIGV2ZW50IG5vdCBhdmFpbGFibGUuIik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgCi0gICAgbG9nKCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIpOwotICAgIGxv
ZygiS2V5ICAgICAgICAgICAtICIgKyBldmVudC5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAg
ICAtICIgKyBldmVudC5uZXdWYWx1ZSk7Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiArIGV2
ZW50Lm9sZFZhbHVlKTsKLSAgICBsb2coIiIpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsK
LSAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cubG9j
YWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAg
Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFSIik7Ci0gICAgd2lu
ZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJGVSIsICJCQVIiKTsKLSAgICB3aW5kb3cubG9jYWxT
dG9yYWdlLnJlbW92ZUl0ZW0oIkZPTyIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3Zl
SXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKTsiIG9uc3RvcmFnZT0iaGFuZGxlU3RvcmFnZUV2ZW50KCk7Ij4KLVRoaXMgaXMgYSB0ZXN0
IHRvIG1ha2Ugc3VyZSBsb2NhbFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0
aGF0IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gYm9k
eS5vbnN0b3JhZ2UuICBUaGUgZXZlbnQgbGlzdGVuZXIgaXMgc2V0dXAgaW4gdGhlIGJvZHkgZWxl
bWVudCdzIG1hcmt1cC48YnI+Ci08ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9v
bnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2Ut
YXR0cmlidXRlLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDUzMjMyKQorKysg
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0
cmlidXRlLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjIg
KzAsMCBAQAotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIExvY2FsU3RvcmFnZSBtdXRhdGlv
bnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVu
ZXIgY29ycmVzcG9uZGluZyB0byBib2R5Lm9uc3RvcmFnZS4gVGhlIGV2ZW50IGxpc3RlbmVyIGlz
IHNldHVwIHZpYSBib2R5LnNldEF0dHJpYnV0ZSgpLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtl
eSAtIEZPTwotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZl
bnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0K
LVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBW
YWx1ZSAtIEJBUgotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAt
IG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotCi0KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9y
YWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0cmlidXRlLmh0bWwJKHJldmlzaW9uIDUzMjMy
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3Jh
Z2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyTG9jYWxT
dG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5j
dGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5u
ZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgp
Ci17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnQpIHsKLSAgICAgICAgbG9nKCJHbG9iYWwgZXZlbnQg
bm90IGF2YWlsYWJsZS4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBsb2co
IlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGV2
ZW50LmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGV2ZW50Lm5ld1ZhbHVlKTsK
LSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZXZlbnQub2xkVmFsdWUpOwotICAgIGxvZygi
Iik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICghd2luZG93LmxvY2FsU3Rv
cmFnZSkgewotICAgICAgICBsb2coIndpbmRvdy5sb2NhbFN0b3JhZ2UgRE9FUyBOT1QgZXhpc3Qi
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBkb2N1bWVudC5ib2R5LnNldEF0
dHJpYnV0ZSgib25zdG9yYWdlIiwgImhhbmRsZVN0b3JhZ2VFdmVudCgpOyIpOwotICAgIAotICAg
IHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiRk9PIiwgIkJBUiIpOwotICAgIHdpbmRvdy5s
b2NhbFN0b3JhZ2Uuc2V0SXRlbSgiRlUiLCAiQkFSIik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFn
ZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0o
IkZVIik7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7
Ij4KLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBMb2NhbFN0b3JhZ2UgbXV0YXRpb25zIGZp
cmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNv
cnJlc3BvbmRpbmcgdG8gYm9keS5vbnN0b3JhZ2UuICBUaGUgZXZlbnQgbGlzdGVuZXIgaXMgc2V0
dXAgdmlhIGJvZHkuc2V0QXR0cmlidXRlKCkuPGJyPgotPGRpdiBpZD0ibG9nZ2VyIj48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3ctZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uv
b25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIz
MikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9y
YWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDIyICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBMb2NhbFN0b3JhZ2UgbXV0
YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxp
c3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gd2luZG93Lm9uc3RvcmFnZS4KLVN0b3JhZ2UgZXZlbnQg
ZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1T
dG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVl
IC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBu
dWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1O
ZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2lu
ZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldHdpbmRvdy5odG1sCShyZXZpc2lvbiA1
MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25z
dG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0OSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhckxvY2Fs
U3RvcmFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLQotZnVu
Y3Rpb24gbG9nKGEpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlu
bmVySFRNTCArPSBhICsgIjxicj4iOwotfQotCi1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQo
KQotewotICAgIGlmICghd2luZG93LmV2ZW50KSB7Ci0gICAgICAgIGxvZygiR2xvYmFsIGV2ZW50
IG5vdCBhdmFpbGFibGUuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgbG9n
KCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBl
dmVudC5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAgICAtICIgKyBldmVudC5uZXdWYWx1ZSk7
Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiArIGV2ZW50Lm9sZFZhbHVlKTsKLSAgICBsb2co
IiIpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBpZiAoIXdpbmRvdy5sb2NhbFN0
b3JhZ2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cubG9jYWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0
Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB3aW5kb3cub25zdG9yYWdlID0gaGFu
ZGxlU3RvcmFnZUV2ZW50OwotICAgIAotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgi
Rk9PIiwgIkJBUiIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiRlUiLCAiQkFS
Iik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5k
b3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3Vy
ZSBMb2NhbFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVn
aHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gd2luZG93Lm9uc3RvcmFn
ZS48YnI+Ci08ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUtZXZlbnRz
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvbG9jYWxzdG9yYWdlL3NpbXBsZS1ldmVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIz
MikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc2ltcGxl
LWV2ZW50cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjYgKzAsMCBAQAotVGhp
cyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIGxvY2FsU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9y
YWdlRXZlbnRzCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBC
QVIKLU9sZCBWYWx1ZSAtIG51bGwKLUV2ZW50IGhhcyBhIFVSSQotCi1TdG9yYWdlIGV2ZW50IGZp
cmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotRXZlbnQg
aGFzIGEgVVJJCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAt
IG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotRXZlbnQgaGFzIGEgVVJJCi0KLVN0b3JhZ2UgZXZlbnQg
ZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFSCi1FdmVu
dCBoYXMgYSBVUkkKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9j
YWxzdG9yYWdlL3NpbXBsZS1ldmVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3NpbXBsZS1ldmVudHMuaHRtbAkocmV2aXNp
b24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L3NpbXBsZS1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhckxvY2FsU3RvcmFnZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24gbG9nKGEpCi17Ci0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCArPSBhICsgIjxicj4i
OwotfQotCi1mdW5jdGlvbiBmaW5pc2goKQotewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQotfQot
Ci1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoZSkKLXsKLSAgICBsb2coIlN0b3JhZ2UgZXZl
bnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGUua2V5KTsKLSAgICBs
b2coIk5ldyBWYWx1ZSAgICAgLSAiICsgZS5uZXdWYWx1ZSk7Ci0gICAgbG9nKCJPbGQgVmFsdWUg
ICAgIC0gIiArIGUub2xkVmFsdWUpOwotICAgIGlmIChlLnVyaSkKLSAgICAgICAgbG9nKCJFdmVu
dCBoYXMgYSBVUkkiKTsKLSAgICBsb2coIiIpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsK
LSAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cubG9j
YWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIGZpbmlzaCgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIAotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdl
IiwgaGFuZGxlU3RvcmFnZUV2ZW50LCBmYWxzZSk7Ci0KLSAgICB3aW5kb3cubG9jYWxTdG9yYWdl
LnNldEl0ZW0oIkZPTyIsICJCQVIiKTsKLSAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0o
IkZVIiwgIkJBUiIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiRk9PIik7
Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJGVSIpOwotICAgIAotICAgIGZp
bmlzaCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
OyI+Ci1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgbG9jYWxTdG9yYWdlIG11dGF0aW9ucyBm
aXJlIFN0b3JhZ2VFdmVudHM8YnI+Ci08ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0
cy9jb21wbGV4LXZhbHVlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2NvbXBsZXgtdmFsdWVzLmpzCShyZXZpc2lvbiA1MzIzMikK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvY29tcGxleC12
YWx1ZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsNSBAQAogZGVzY3JpcHRpb24oIlRl
c3Qgc29tZSBjb3JuZXIgY2FzZSBET00gU3RvcmFnZSB2YWx1ZXMuIik7CiAKLWV2ZW50Q291bnRl
ciA9IDA7Ci1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoKSB7Ci0gICAgZXZlbnRDb3VudGVy
Kys7Ci19Ci0KIGZ1bmN0aW9uIHRlc3RLZXlWYWx1ZShrZXksIHZhbHVlKQogewogICAgIGtleVN0
cmluZyA9ICJzdG9yYWdlWyciICsga2V5ICsgIiddIjsKQEAgLTczLDIxICs2OCw2IEBAIGZ1bmN0
aW9uIHRlc3Qoc3RvcmFnZVN0cmluZykKICAgICB0ZXN0S2V5VmFsdWUoImZvbzExIiwgayk7CiAg
ICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspIik7CiAgICAgdGVzdEtl
eVZhbHVlKCJmb28xMiIsIGspOwotCi0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJWZXJpZnkg
c3RvcmFnZSBldmVudHMgYXJlIGNhc2Ugc2Vuc2l0aXZlIik7Ci0gICAgZXZhbEFuZExvZygic3Rv
cmFnZS5mb28gPSAndGVzdCciKTsKLSAgICBkZWJ1ZygiU2V0dGluZyBldmVudCBsaXN0ZW5lciIp
OwotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwgaGFuZGxlU3RvcmFnZUV2
ZW50LCBmYWxzZSk7Ci0gICAgc2hvdWxkQmUoImV2ZW50Q291bnRlciIsICIwIik7Ci0gICAgZXZh
bEFuZExvZygic3RvcmFnZS5mb28gPSAndGVzdCciKTsKLSAgICBzaG91bGRCZSgiZXZlbnRDb3Vu
dGVyIiwgIjAiKTsKLSAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICdURVNUJyIpOwotICAg
IHNob3VsZEJlKCJldmVudENvdW50ZXIiLCAiMSIpOwotCi0gICAgLy8gUmVzZXQgdGhlIGNvdW50
ZXIgZm9yIG5leHQgdGVzdHMgKGlmIGFueSkuCi0gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoInN0b3JhZ2UiLCBoYW5kbGVTdG9yYWdlRXZlbnQsIGZhbHNlKTsKLSAgICBldmVudENvdW50
ZXIgPSAwOwogfQogCiB0ZXN0KCJzZXNzaW9uU3RvcmFnZSIpOwpJbmRleDogTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9kb2N1bWVudFVSSS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2RvY3VtZW50
VVJJLmpzCShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNTAgKzAs
MCBAQAotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBjaGFuZ2luZyBkb2N1bWVudFVSSSBoYXMgbm8g
ZWZmZWN0cyBvbiBzdG9yYWdlIGV2ZW50cy4iKTsKLQotZnVuY3Rpb24gdGVzdChzdG9yYWdlU3Ry
aW5nKQotewotICAgIHdpbmRvdy5zdG9yYWdlID0gZXZhbChzdG9yYWdlU3RyaW5nKTsKLSAgICBp
ZiAoIXN0b3JhZ2UpIHsKLSAgICAgICAgdGVzdEZhaWxlZChzdG9yYWdlU3RyaW5nICsgIiBET0VT
IE5PVCBleGlzdCIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZGVidWcoIlRlc3Rp
bmcgIiArIHN0b3JhZ2VTdHJpbmcpOwotCi0gICAgd2luZG93Lm9uc3RvcmFnZSA9IG51bGw7Ci0g
ICAgZXZhbEFuZExvZygic3RvcmFnZS5jbGVhcigpIik7Ci0gICAgc2hvdWxkQmUoInN0b3JhZ2Uu
bGVuZ3RoIiwgIjAiKTsKLQotICAgIGV2YWxBbmRMb2coIndpbmRvdy5vbnN0b3JhZ2UgPSBmaXJz
dEV2ZW50Iik7Ci0gICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28gPSAnMTIzJyIpOwotfQotCi1m
dW5jdGlvbiBmaXJzdEV2ZW50KGUpCi17Ci0gICAgZGVidWcoIkZpcnN0IGV2ZW50IGZpcmVkIik7
Ci0gICAgZGVidWcoIlNhdmluZyBVUkkiKTsKLSAgICB3aW5kb3cubGFzdFVSSSA9IGUudXJpOwot
Ci0gICAgZXZhbEFuZExvZygiZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnYWJjJyIpOwotICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZG9jdW1lbnRVUkkiLCAiYWJjIik7Ci0KLSAg
ICBldmFsQW5kTG9nKCJ3aW5kb3cub25zdG9yYWdlID0gc2Vjb25kRXZlbnQiKTsKLSAgICBldmFs
QW5kTG9nKCJzdG9yYWdlLmZvbyA9ICd4eXonIik7Ci19Ci0KLWZ1bmN0aW9uIHNlY29uZEV2ZW50
KGUpCi17Ci0gICAgZGVidWcoIlNlY29uZCBldmVudCBmaXJlZCIpOwotICAgIHNob3VsZEJlVHJ1
ZShTdHJpbmcod2luZG93Lmxhc3RVUkkgPT0gZS51cmkpKTsKLQotICAgIGlmIChkb25lKSB7Ci0g
ICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotICAgICAgICBpc1N1Y2Nl
c3NmdWxseVBhcnNlZCgpOwotICAgIH0KLX0KLQotd2luZG93LmRvbmUgPSBmYWxzZTsKLXRlc3Qo
InNlc3Npb25TdG9yYWdlIik7Ci1kZWJ1ZygiIik7Ci1kZWJ1ZygiIik7Ci13aW5kb3cuZG9uZSA9
IHRydWU7Ci10ZXN0KCJsb2NhbFN0b3JhZ2UiKTsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uv
aWZyYW1lLWV2ZW50cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2lmcmFtZS1ldmVudHMtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDc5ICswLDAgQEAKLVRoaXMgaXMgdGhlIG1haW4g
ZnJhbWUgb2YgYSAyLWZyYW1lIGRvY3VtZW50LiBFYWNoIGZyYW1lIGlzIGluIHRoZSBzYW1lIHNl
Y3VyaXR5IG9yaWdpbiBhbmQgdGhlcmVmb3JlIHNoYXJlcyB0aGUgc2FtZSBzZXNzaW9uU3RvcmFn
ZSBvYmplY3QuIEFzIGEgcmVzdWx0LCBlYWNoIGZyYW1lIHNob3VsZCByZWNlaXZlIGEgU3RvcmFn
ZUV2ZW50IHdoZW4gZWl0aGVyIGZyYW1lIGNoYW5nZXMgdGhlIHNlc3Npb25TdG9yYWdlIG9iamVj
dC4KLQotTWFpbiBmcmFtZSBhYm91dCB0byBydW4gc2V0SXRlbSBvbiBzZXNzaW9uU3RvcmFnZS4u
LgotTWFpbiBGcmFtZSByZWNlaXZlZCBTdG9yYWdlRXZlbnQ6Ci1LZXkgLSBNYWluIEZyYW1lCi1O
ZXcgVmFsdWUgLSBTRVQKLU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwKLVN0b3JhZ2Ug
QXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LnNlc3Npb25TdG9yYWdlCi0KLVN1YmZyYW1lIHJl
Y2VpdmVkIHN0b3JhZ2UgZXZlbnQ6Ci1LZXkgLSBNYWluIEZyYW1lCi1OZXcgVmFsdWUgLSBTRVQK
LU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
ZXNzaW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2lu
ZG93J3Mgd2luZG93LnNlc3Npb25TdG9yYWdlCi0KLVN1YmZyYW1lIGFib3V0IHRvIGNoYW5nZSBz
ZXNzaW9uU3RvcmFnZS4uLgotTWFpbiBGcmFtZSByZWNlaXZlZCBTdG9yYWdlRXZlbnQ6Ci1LZXkg
LSBTdWJmcmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvcmVzb3VyY2VzL2lmcmFt
ZS1ldmVudHMtc2Vjb25kLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93
LnNlc3Npb25TdG9yYWdlCi0KLVN1YmZyYW1lIHJlY2VpdmVkIHN0b3JhZ2UgZXZlbnQ6Ci1LZXkg
LSBTdWJmcmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvcmVzb3VyY2VzL2lmcmFt
ZS1ldmVudHMtc2Vjb25kLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93
LnNlc3Npb25TdG9yYWdlCi0KLU1haW4gZnJhbWUgYWJvdXQgdG8gcnVuIHJlbW92ZUl0ZW0gb24g
c2Vzc2lvblN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQgU3RvcmFnZUV2ZW50OgotS2V5
IC0gTWFpbiBGcmFtZQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gU0VUCi1VUkkgLSBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50
cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFn
ZQotCi1TdWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0gTWFpbiBGcmFtZQot
TmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gU0VUCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdl
IEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQotCi1TdWJmcmFtZSBh
Ym91dCB0byBjaGFuZ2Ugc2Vzc2lvblN0b3JhZ2UuLi4KLU1haW4gZnJhbWUgYWJvdXQgdG8gY2xl
YXIgc2Vzc2lvblN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQgU3RvcmFnZUV2ZW50Ogot
S2V5IC0gCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1s
Ci1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQotCi1T
dWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0gCi1OZXcgVmFsdWUgLSBudWxs
Ci1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
c2Vzc2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdp
bmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQotCi1TdWJmcmFtZSBhYm91dCB0byBjaGFuZ2Ug
c2Vzc2lvblN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQgU3RvcmFnZUV2ZW50OgotS2V5
IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Jlc291cmNlcy9pZnJh
bWUtZXZlbnRzLXNlY29uZC5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRv
dy5zZXNzaW9uU3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5
IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Jlc291cmNlcy9pZnJh
bWUtZXZlbnRzLXNlY29uZC5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRv
dy5zZXNzaW9uU3RvcmFnZQotCi0KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9zZXNzaW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRt
bAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vz
c2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY2ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lv
blN0b3JhZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIGxv
ZyhhKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5lckhUTUwg
Kz0gYSArICI8YnI+IjsKLX0KLQotZnVuY3Rpb24gbm9ybWFsaXplVVJMKHVybCkKLXsKLSAgICBy
ZXR1cm4gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoIkxheW91dFRlc3RzIikpOwotfQot
Ci1mdW5jdGlvbiBmaW5pc2goKQotewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQotfQotCi1mdW5j
dGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoZSkKLXsKLSAgICBsb2coIk1haW4gRnJhbWUgcmVjZWl2
ZWQgU3RvcmFnZUV2ZW50OiIpOwotICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBlLmtleSk7
Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGUubmV3VmFsdWUpOwotICAgIGxvZygiT2xk
IFZhbHVlICAgICAtICIgKyBlLm9sZFZhbHVlKTsKLSAgICBsb2coIlVSSSAgICAgICAgICAgLSAi
ICsgbm9ybWFsaXplVVJMKGUudXJpKSk7Ci0gICAgbG9nKCJTdG9yYWdlIEFyZWEgIC0gIiArICgo
ZS5zdG9yYWdlQXJlYSA9PSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UpID8gIlRoaXMgd2luZG93J3Mg
d2luZG93LnNlc3Npb25TdG9yYWdlIiA6ICJBbm90aGVyIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9u
U3RvcmFnZSIpKTsKLSAgICBsb2coIiIpOwotICAgIAotICAgIGlmIChlLmtleSA9PSAiU3ViZnJh
bWUiKQotICAgICAgICBmaW5pc2goKTsKLX0KLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAg
ICBpZiAoIXdpbmRvdy5zZXNzaW9uU3RvcmFnZSkgewotICAgICAgICBsb2coIndpbmRvdy5zZXNz
aW9uU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwotICAgICAgICBmaW5pc2goKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAKLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIs
IGhhbmRsZVN0b3JhZ2VFdmVudCwgZmFsc2UpOwotICAgIGxvZygiTWFpbiBmcmFtZSBhYm91dCB0
byBydW4gc2V0SXRlbSBvbiBzZXNzaW9uU3RvcmFnZS4uLiIpOwotICAgIHNlc3Npb25TdG9yYWdl
LnNldEl0ZW0oIk1haW4gRnJhbWUiLCAiU0VUIik7Ci0gICAgbG9nKCJNYWluIGZyYW1lIGFib3V0
IHRvIHJ1biByZW1vdmVJdGVtIG9uIHNlc3Npb25TdG9yYWdlLi4uIik7Ci0gICAgc2Vzc2lvblN0
b3JhZ2UucmVtb3ZlSXRlbSgiTWFpbiBGcmFtZSIpOwotICAgIGxvZygiTWFpbiBmcmFtZSBhYm91
dCB0byBjbGVhciBzZXNzaW9uU3RvcmFnZS4uLiIpOwotICAgIHNlc3Npb25TdG9yYWdlLmNsZWFy
KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKTsi
PgotVGhpcyBpcyB0aGUgbWFpbiBmcmFtZSBvZiBhIDItZnJhbWUgZG9jdW1lbnQuICBFYWNoIGZy
YW1lIGlzIGluIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhbmQgdGhlcmVmb3JlIHNoYXJlcyB0
aGUgc2FtZSBzZXNzaW9uU3RvcmFnZSBvYmplY3QuCi1BcyBhIHJlc3VsdCwgZWFjaCBmcmFtZSBz
aG91bGQgcmVjZWl2ZSBhIFN0b3JhZ2VFdmVudCB3aGVuIGVpdGhlciBmcmFtZSBjaGFuZ2VzIHRo
ZSBzZXNzaW9uU3RvcmFnZSBvYmplY3QuPGJyPgotPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJh
bWUtZXZlbnRzLXNlY29uZC5odG1sIj48L2lmcmFtZT48YnI+Ci08ZGl2IGlkPSJsb2dnZXIiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaW5k
ZXgtZ2V0LWFuZC1zZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysrIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNTQgKzEsMjkgQEAKIFRoaXMgaXMgYSB0
ZXN0IHRvIG1ha2Ugc3VyZSB5b3UgY2FuIGdldCBhbmQgc2V0IHZhbHVlcyBpbiBTZXNzaW9uU3Rv
cmFnZSBieSBpbmRleC4KIFNldHRpbmcgRk9PIHVzaW5nIHRoZSBpbmRleCBzZXR0ZXIuCi1TdG9y
YWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAt
IG51bGwKLQogUmVhZGluZyBGT086CiBCQVIKIEJBUgogQkFSCiAKIFNldHRpbmcgRk9PIGFnYWlu
LCB1c2luZyBzZXRJdGVtLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZh
bHVlIC0gQkFaCi1PbGQgVmFsdWUgLSBCQVIKLQogUmVhZGluZyBGT086CiBCQVoKIEJBWgogQkFa
CiAKIFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyB0aGUgaW5kZXggc2V0dGVyLgotU3RvcmFnZSBl
dmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFUCi1PbGQgVmFsdWUgLSBCQVoK
LQogUmVhZGluZyBGT086CiBCQVQKIEJBVAogQkFUCiAKIFNldHRpbmcgRk9PIGFnYWluLCB1c2lu
ZyBwcm9wZXJ0eS1zbG90IHN5bnRheAotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwot
TmV3IFZhbHVlIC0gQkFUTUFOCi1PbGQgVmFsdWUgLSBCQVQKLQogUmVhZGluZyBGT086CiBCQVRN
QU4KIEJBVE1BTgogQkFUTUFOCiAKIFJlbW92aW5nIEZPTywgdGhlbiB0cnlpbmcgdG8gcmVhZCBp
dAotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gbnVsbAotT2xk
IFZhbHVlIC0gQkFUTUFOCi0KIFJlYWRpbmcgRk9POgogdW5kZWZpbmVkCiB1bmRlZmluZWQKSW5k
ZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1n
ZXQtYW5kLXNldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC5odG1sCShyZXZpc2lvbiA1MzIz
MikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRl
eC1nZXQtYW5kLXNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSwxNSArMTksNiBAQCBmdW5j
dGlvbiBmaW5pc2goKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkK
IH0KIAotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KGUpCi17Ci0gICAgbG9nKCJTdG9yYWdl
IGV2ZW50IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBlLmtleSk7Ci0g
ICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGUubmV3VmFsdWUpOwotICAgIGxvZygiT2xkIFZh
bHVlICAgICAtICIgKyBlLm9sZFZhbHVlKTsKLSAgICBsb2coIiIpOwotfQotCiBmdW5jdGlvbiBy
dW5UZXN0KCkKIHsKICAgICBpZiAoIXdpbmRvdy5zZXNzaW9uU3RvcmFnZSkgewpAQCAtMzYsOCAr
MjcsNiBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAK
LSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsIGhhbmRsZVN0b3JhZ2VFdmVu
dCwgZmFsc2UpOwotICAgIAogICAgIGxvZygiU2V0dGluZyBGT08gdXNpbmcgdGhlIGluZGV4IHNl
dHRlci4iKTsKICAgICBzZXNzaW9uU3RvcmFnZVsiRk9PIl0gPSAiQkFSIjsKICAgICBsb2coIlJl
YWRpbmcgRk9POiIpOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Np
b25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25z
dG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzIzMikKKysr
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2Ut
YXR0cmlidXRlLW1hcmt1cC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAs
MCBAQAotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25TdG9yYWdlIG11dGF0aW9u
cyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5l
ciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiBUaGUgZXZlbnQgbGlzdGVuZXIgaXMg
c2V0dXAgaW4gdGhlIGJvZHkgZWxlbWVudCdzIG1hcmt1cC4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6
Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdl
IGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVs
bAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBudWxsCi1P
bGQgVmFsdWUgLSBCQVIKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFs
dWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0
b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAkocmV2aXNpb24gNTMyMzIpCisr
KyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdl
LWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBs
b2coYSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1M
ICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgpCi17Ci0g
ICAgaWYgKCF3aW5kb3cuZXZlbnQpIHsKLSAgICAgICAgbG9nKCJHbG9iYWwgZXZlbnQgbm90IGF2
YWlsYWJsZS4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBsb2coIlN0b3Jh
Z2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGV2ZW50Lmtl
eSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGV2ZW50Lm5ld1ZhbHVlKTsKLSAgICBs
b2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZXZlbnQub2xkVmFsdWUpOwotICAgIGxvZygiIik7Ci19
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICghd2luZG93LnNlc3Npb25TdG9yYWdl
KSB7Ci0gICAgICAgIGxvZygid2luZG93LnNlc3Npb25TdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgd2luZG93LnNlc3Npb25TdG9yYWdl
LnNldEl0ZW0oIkZPTyIsICJCQVIiKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRl
bSgiRlUiLCAiQkFSIik7Ci0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oIkZP
TyIpOwotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGVSIpOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyIgb25zdG9yYWdlPSJo
YW5kbGVTdG9yYWdlRXZlbnQoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Np
b25TdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5
IHRoZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiAgVGhl
IGV2ZW50IGxpc3RlbmVyIGlzIHNldHVwIGluIHRoZSBib2R5IGVsZW1lbnQncyBtYXJrdXAuPGJy
PgotPGRpdiBpZD0ibG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmli
dXRlLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0
YXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRh
dHRyaWJ1dGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLVRo
aXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBT
dG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVz
cG9uZGluZyB0byBib2R5Lm9uc3RvcmFnZS4gVGhlIGV2ZW50IGxpc3RlbmVyIGlzIHNldHVwIHZp
YSBib2R5LnNldEF0dHJpYnV0ZSgpLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwot
TmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6
Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KLVN0b3JhZ2Ug
ZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJB
UgotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIG51bGwKLU9s
ZCBWYWx1ZSAtIEJBUgotCi0KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
ZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9v
bnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiA1MzIzMikKKysr
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2Ut
YXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0
b3JhZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0
aW9uIGxvZyhhKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5l
ckhUTUwgKz0gYSArICI8YnI+IjsKLX0KLQotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KCkK
LXsKLSAgICBpZiAoIXdpbmRvdy5ldmVudCkgewotICAgICAgICBsb2coIkdsb2JhbCBldmVudCBu
b3QgYXZhaWxhYmxlLiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGxvZygi
U3RvcmFnZSBldmVudCBmaXJlZDoiKTsKLSAgICBsb2coIktleSAgICAgICAgICAgLSAiICsgZXZl
bnQua2V5KTsKLSAgICBsb2coIk5ldyBWYWx1ZSAgICAgLSAiICsgZXZlbnQubmV3VmFsdWUpOwot
ICAgIGxvZygiT2xkIFZhbHVlICAgICAtICIgKyBldmVudC5vbGRWYWx1ZSk7Ci0gICAgbG9nKCIi
KTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgaWYgKCF3aW5kb3cuc2Vzc2lvblN0
b3JhZ2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgRE9FUyBOT1QgZXhp
c3QiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBkb2N1bWVudC5ib2R5LnNl
dEF0dHJpYnV0ZSgib25zdG9yYWdlIiwgImhhbmRsZVN0b3JhZ2VFdmVudCgpOyIpOwotICAgIAot
ICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFSIik7Ci0gICAgd2lu
ZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJBUiIpOwotICAgIHdpbmRvdy5zZXNz
aW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uu
cmVtb3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25TdG9yYWdl
IG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVu
dCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiAgVGhlIGV2ZW50IGxp
c3RlbmVyIGlzIHNldHVwIHZpYSBib2R5LnNldEF0dHJpYnV0ZSgpLjxicj4KLTxkaXYgaWQ9Imxv
Z2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3ct
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldHdpbmRvdy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nl
c3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1
cmUgU2Vzc2lvblN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBj
YXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gd2luZG93Lm9uc3Rv
cmFnZS4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgot
T2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBW
YWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5
IC0gRk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotU3RvcmFnZSBldmVu
dCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQot
CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25z
dG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1z
ZXR3aW5kb3cuaHRtbAkocmV2aXNpb24gNTMyMzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw0OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0K
LWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnQp
IHsKLSAgICAgICAgbG9nKCJHbG9iYWwgZXZlbnQgbm90IGF2YWlsYWJsZS4iKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBsb2coIlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0g
ICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGV2ZW50LmtleSk7Ci0gICAgbG9nKCJOZXcgVmFs
dWUgICAgIC0gIiArIGV2ZW50Lm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAi
ICsgZXZlbnQub2xkVmFsdWUpOwotICAgIGxvZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KQotewotICAgIGlmICghd2luZG93LnNlc3Npb25TdG9yYWdlKSB7Ci0gICAgICAgIGxvZygid2lu
ZG93LnNlc3Npb25TdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICB3aW5kb3cub25zdG9yYWdlID0gaGFuZGxlU3RvcmFnZUV2ZW50OwotICAgIAot
ICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJGT08iLCAiQkFSIik7Ci0gICAgd2lu
ZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJBUiIpOwotICAgIHdpbmRvdy5zZXNz
aW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uu
cmVtb3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25TdG9yYWdl
IG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVu
dCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIHdpbmRvdy5vbnN0b3JhZ2UuPGJyPgotPGRpdiBp
ZD0ibG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1wbGUtZXZlbnRzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0
b3JhZ2Uvc2ltcGxlLWV2ZW50cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDUzMjMyKQorKysgTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS1ldmVudHMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDI2ICswLDAgQEAKLVRoaXMgaXMgYSB0
ZXN0IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZl
bnRzCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVIKLU9s
ZCBWYWx1ZSAtIG51bGwKLUV2ZW50IGhhcyBhIFVSSQotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgot
S2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotRXZlbnQgaGFzIGEg
VVJJCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIG51bGwK
LU9sZCBWYWx1ZSAtIEJBUgotRXZlbnQgaGFzIGEgVVJJCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6
Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFSCi1FdmVudCBoYXMg
YSBVUkkKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0
b3JhZ2Uvc2ltcGxlLWV2ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1wbGUtZXZlbnRzLmh0bWwJKHJldmlzaW9u
IDUzMjMyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdl
L3NpbXBsZS1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJy
PiI7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaCgpCi17Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCi19
Ci0KLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudChlKQotewotICAgIGxvZygiU3RvcmFnZSBl
dmVudCBmaXJlZDoiKTsKLSAgICBsb2coIktleSAgICAgICAgICAgLSAiICsgZS5rZXkpOwotICAg
IGxvZygiTmV3IFZhbHVlICAgICAtICIgKyBlLm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1
ZSAgICAgLSAiICsgZS5vbGRWYWx1ZSk7Ci0gICAgaWYgKGUudXJpKQotICAgICAgICBsb2coIkV2
ZW50IGhhcyBhIFVSSSIpOwotICAgIGxvZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQot
ewotICAgIGlmICghd2luZG93LnNlc3Npb25TdG9yYWdlKSB7Ci0gICAgICAgIGxvZygid2luZG93
LnNlc3Npb25TdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIGZpbmlzaCgpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJz
dG9yYWdlIiwgaGFuZGxlU3RvcmFnZUV2ZW50LCBmYWxzZSk7Ci0KLSAgICB3aW5kb3cuc2Vzc2lv
blN0b3JhZ2Uuc2V0SXRlbSgiRk9PIiwgIkJBUiIpOwotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFn
ZS5zZXRJdGVtKCJGVSIsICJCQVIiKTsKLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3Zl
SXRlbSgiRk9PIik7Ci0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7
Ci0gICAgCi0gICAgZmluaXNoKCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCk7Ij4KLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3Rv
cmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzPGJyPgotPGRpdiBpZD0ibG9nZ2VyIj48
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47242</attachid>
            <date>2010-01-22 16:02:20 -0800</date>
            <delta_ts>2010-01-22 17:12:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30546-20100122160219.patch</filename>
            <type>text/plain</type>
            <size>92217</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzcyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDEtMjIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBzdG9yYWdlIGV2ZW50cyBtYXRjaCB0aGUgc3BlYy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTQ2CisKKyAgICAgICAgVGhpcyBtZWF0IG9m
IHRoZSBwYXRjaCBJIGp1c3QgcG9zdGVkIGlzIHZlcnkgc2ltcGxlLiAgSXQncyBqdXN0IG1ha2lu
ZyBldmVudHMKKyAgICAgICAgYXN5bmNocm9ub3VzLCBub3QgcG9zdGluZyB0aGVtIHRvIHRoZSBm
cmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVtLCBwYXNzaW5nIGEgbnVsbAorICAgICAgICBmb3IgdGhl
IGtleSB3aGVuIGlzc3VpbmcgYSBjbGVhciBzdG9yYWdlIGV2ZW50LCBhbmQgbWFraW5nIHRoZSBl
dmVudHMKKyAgICAgICAgbm9uLWNhbmNlbGFibGUvbm9uLWJ1YmJsZWFibGUuLi5hbGwgb2Ygd2hp
Y2ggYXJlIGNsZWFybHkgc3RhdGVkIGluIHRoZSBzcGVjLgorCisgICAgICAgIFRoZSBhc3luY2hy
b25vdXMgYW5kIG5vdCBwb3N0aW5nIHRvIHRoZSBmcmFtZSB0aGF0IGdlbmVyYXRlZCB0aGVtIGZv
cmNlZCBtZSB0d28KKyAgICAgICAgcmUtd3JpdGUgYWxsIHRoZSBsYXlvdXQgdGVzdHMgdGhhdCBk
ZWFsdCB3aXRoIHN0b3JhZ2UgZXZlbnRzLiAgVGhlcmUncyBhIGxvdCBvZgorICAgICAgICBjb2Rl
IHRoZXJlLCBidXQgSSB0cmllZCB0byBiZSBmYWlybHkgY2FyZWZ1bCB0byBlbnN1cmUgdGhhdCB0
ZXN0IGNvdmVyYWdlIGRpZAorICAgICAgICBub3Qgc2hyaW5rIGluIGFueSBhcmVhLgorCisgICAg
ICAgIFRlc3RzOiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLWJvZHktYXR0cmlidXRl
Lmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtc2V0
YXR0cmlidXRlLmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMv
YmFzaWMuaHRtbAorICAgICAgICAgICAgICAgc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9jYXNl
LXNlbnNpdGl2ZS5odG1sCisgICAgICAgICAgICAgICBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRz
L2RvY3VtZW50VVJJLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmVucXVldWVTdG9yYWdlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0
b3JhZ2VFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VF
dmVudDo6U3RvcmFnZUV2ZW50KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGw6
CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKToKKwogMjAxMC0wMS0y
MiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA1MzcxMikKKysr
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg4LDYgKzM4OCw3
IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGJvb2wgaXMKICAgICAsIG1fbm9y
bWFsV29ybGRXcmFwcGVyQ2FjaGUoMCkKICNlbmRpZgogICAgICwgbV91c2luZ0dlb2xvY2F0aW9u
KGZhbHNlKQorICAgICwgbV9zdG9yYWdlRXZlbnRUaW1lcih0aGlzLCAmRG9jdW1lbnQ6OnN0b3Jh
Z2VFdmVudFRpbWVyRmlyZWQpCiAjaWYgRU5BQkxFKFdNTCkKICAgICAsIG1fY29udGFpbnNXTUxD
b250ZW50KGZhbHNlKQogI2VuZGlmCkBAIC0yOTkzLDYgKzI5OTQsMjQgQEAgdm9pZCBEb2N1bWVu
dDo6ZGlzcGF0Y2hXaW5kb3dMb2FkRXZlbnQoKQogICAgIGRvbVdpbmRvdy0+ZGlzcGF0Y2hMb2Fk
RXZlbnQoKTsKIH0KIAordm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVN0b3JhZ2VFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBzdG9yYWdlRXZlbnQpCit7CisgICAgbV9zdG9yYWdlRXZlbnRRdWV1ZS5hcHBl
bmQoc3RvcmFnZUV2ZW50KTsKKyAgICBpZiAoIW1fc3RvcmFnZUV2ZW50VGltZXIuaXNBY3RpdmUo
KSkKKyAgICAgICAgbV9zdG9yYWdlRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3Zv
aWQgRG9jdW1lbnQ6OnN0b3JhZ2VFdmVudFRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+KikKK3sK
KyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IHN0b3JhZ2VFdmVudFF1ZXVlOworICAgIHN0b3Jh
Z2VFdmVudFF1ZXVlLnN3YXAobV9zdG9yYWdlRXZlbnRRdWV1ZSk7CisKKyAgICB0eXBlZGVmIFZl
Y3RvcjxSZWZQdHI8RXZlbnQ+ID46OmNvbnN0X2l0ZXJhdG9yIEl0ZXJhdG9yOworICAgIEl0ZXJh
dG9yIGVuZCA9IHN0b3JhZ2VFdmVudFF1ZXVlLmVuZCgpOworICAgIGZvciAoSXRlcmF0b3IgaXQg
PSBzdG9yYWdlRXZlbnRRdWV1ZS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIGRp
c3BhdGNoV2luZG93RXZlbnQoKml0KTsKK30KKwogUGFzc1JlZlB0cjxFdmVudD4gRG9jdW1lbnQ6
OmNyZWF0ZUV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50OwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiA1MzcxMikK
KysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxOCw2ICs2MTgs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaFdpbmRvd0V2ZW50KFBhc3NSZWZQdHI8RXZl
bnQ+LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiA9IDApOwogICAgIHZvaWQgZGlzcGF0Y2hXaW5k
b3dMb2FkRXZlbnQoKTsKIAorICAgIHZvaWQgZW5xdWV1ZVN0b3JhZ2VFdmVudChQYXNzUmVmUHRy
PEV2ZW50Pik7CisgICAgdm9pZCBzdG9yYWdlRXZlbnRUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50
PiopOworCiAgICAgUGFzc1JlZlB0cjxFdmVudD4gY3JlYXRlRXZlbnQoY29uc3QgU3RyaW5nJiBl
dmVudFR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIC8vIGtlZXAgdHJhY2sgb2Ygd2hhdCB0
eXBlcyBvZiBldmVudCBsaXN0ZW5lcnMgYXJlIHJlZ2lzdGVyZWQsIHNvIHdlIGRvbid0CkBAIC0x
MTgzLDYgKzExODYsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3VzaW5nR2VvbG9jYXRpb247
CiAKKyAgICBUaW1lcjxEb2N1bWVudD4gbV9zdG9yYWdlRXZlbnRUaW1lcjsKKyAgICBWZWN0b3I8
UmVmUHRyPEV2ZW50PiA+IG1fc3RvcmFnZUV2ZW50UXVldWU7CisKICNpZiBFTkFCTEUoV01MKQog
ICAgIGJvb2wgbV9jb250YWluc1dNTENvbnRlbnQ7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlRXZlbnQuY3BwCShyZXZpc2lvbiA1MzcxMikKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
RXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIFBhc3NSZWZQdHI8U3Rv
cmFnZUV2ZW50PiBTdG9yYWdlRXZlbnQ6OmMKIH0KIAogU3RvcmFnZUV2ZW50OjpTdG9yYWdlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmks
IFN0b3JhZ2UqIHN0b3JhZ2VBcmVhKQotICAgIDogRXZlbnQodHlwZSwgZmFsc2UsIHRydWUpCisg
ICAgOiBFdmVudCh0eXBlLCBmYWxzZSwgZmFsc2UpCiAgICAgLCBtX2tleShrZXkpCiAgICAgLCBt
X29sZFZhbHVlKG9sZFZhbHVlKQogICAgICwgbV9uZXdWYWx1ZShuZXdWYWx1ZSkKSW5kZXg6IFdl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlRXZlbnQuaWRsCShyZXZpc2lvbiA1MzcxMikKKysrIFdlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG1vZHVs
ZSBzdG9yYWdlIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1ET01fU1RP
UkFHRQogICAgIF0gU3RvcmFnZUV2ZW50IDogRXZlbnQgewotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGtleTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBrZXk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgb2xkVmFsdWU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJp
bmcgbmV3VmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJpOwpJ
bmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNp
b24gNTM3MTIpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUwLDI1ICs1MCwyNSBAQCB2b2lkIFN0b3JhZ2VFdmVudERpc3Bh
dGNoZXI6OmRpc3BhdGNoKGNvCiAgICAgaWYgKHN0b3JhZ2VUeXBlID09IFNlc3Npb25TdG9yYWdl
KSB7CiAgICAgICAgIC8vIFNlbmQgZXZlbnRzIG9ubHkgdG8gb3VyIHBhZ2UuCiAgICAgICAgIGZv
ciAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1l
LT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgICAgICBpZiAoZnJhbWUtPmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmVxdWFsKHNlY3VyaXR5T3JpZ2luKSkKKyAgICAgICAg
ICAgIGlmIChzb3VyY2VGcmFtZSAhPSBmcmFtZSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+ZXF1YWwoc2VjdXJpdHlPcmlnaW4pKQogICAgICAgICAgICAgICAgIGZyYW1l
cy5hcHBlbmQoZnJhbWUpOwogICAgICAgICB9CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGZyYW1lcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1l
bnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRv
Y3VtZW50KCktPnVybCgpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3RvcmFnZSgp
KSk7CisgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVTdG9yYWdlRXZl
bnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBv
bGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgZnJhbWVz
W2ldLT5kb21XaW5kb3coKS0+c2Vzc2lvblN0b3JhZ2UoKSkpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIC8vIFNlbmQgZXZlbnRzIHRvIGV2ZXJ5IHBhZ2UuCiAgICAgICAgIGNvbnN0IEhhc2hTZXQ8
UGFnZSo+JiBwYWdlcyA9IHBhZ2UtPmdyb3VwKCkucGFnZXMoKTsKICAgICAgICAgSGFzaFNldDxQ
YWdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHBhZ2VzLmVuZCgpOwogICAgICAgICBmb3IgKEhh
c2hTZXQ8UGFnZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHBhZ2VzLmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkgewogICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAoKml0KS0+bWFpbkZy
YW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5l
cXVhbChzZWN1cml0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUZyYW1lICE9
IGZyYW1lICYmIGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1
cml0eU9yaWdpbikpCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoZnJhbWUpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGZyYW1lcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQo
KS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
c3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3Vt
ZW50KCktPnVybCgpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoKSkpOwor
ICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlU3RvcmFnZUV2ZW50KFN0
b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFs
dWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIGZyYW1lc1tpXS0+
ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZSgpKSk7CiAgICAgfQogfQogCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDUzNzI3KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTAxLTIyICBKZXJlbXkgT3Jsb3cgIDxqb3Js
b3dAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1ha2Ugc3RvcmFnZSBldmVudHMgbWF0Y2ggdGhlIHNwZWMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU0NgorCisgICAgICAgIFVw
ZGF0ZSB0aGUgc3RvcmFnZUV2ZW50IGFsZ29yaXRobSB0byBtYXRjaCB0aGUgY2hhbmdlIGluIFdl
YkNvcmUuCisKKyAgICAgICAgKiBzcmMvU3RvcmFnZUFyZWFQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdG9yYWdlQXJlYVByb3h5OjpzdG9yYWdlRXZlbnQpOgorCiAyMDEwLTAxLTIyICBQ
ZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3
ZWQsIGJhY2tvdXQuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5j
cHAJKHJldmlzaW9uIDUzNzEyKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVBy
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDI1ICsxMTksMjUgQEAgdm9pZCBTdG9yYWdl
QXJlYVByb3h5OjpzdG9yYWdlRXZlbnQoY29ucwogICAgIGlmIChzdG9yYWdlVHlwZSA9PSBTZXNz
aW9uU3RvcmFnZSkgewogICAgICAgICAvLyBTZW5kIGV2ZW50cyBvbmx5IHRvIG91ciBwYWdlLgog
ICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewotICAgICAgICAgICAgaWYgKGZy
YW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbikp
CisgICAgICAgICAgICBpZiAoc291cmNlRnJhbWUgIT0gZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCktPmVxdWFsKHNlY3VyaXR5T3JpZ2luKSkKICAgICAgICAgICAg
ICAgICBmcmFtZXMuYXBwZW5kKGZyYW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBmcmFtZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBmcmFtZXNb
aV0tPmRvY3VtZW50KCktPmRpc3BhdGNoV2luZG93RXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJj
ZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+c2Vzc2lv
blN0b3JhZ2UoKSkpOworICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVl
U3RvcmFnZUV2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZl
bnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJs
KCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPnNlc3Npb25TdG9yYWdlKCkpKTsKICAgICB9IGVs
c2UgewogICAgICAgICAvLyBTZW5kIGV2ZW50cyB0byBldmVyeSBwYWdlLgogICAgICAgICBjb25z
dCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBwYWdlLT5ncm91cCgpLnBhZ2VzKCk7CiAgICAgICAg
IEhhc2hTZXQ8UGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBwYWdlcy5lbmQoKTsKICAgICAg
ICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBwYWdlcy5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gKCpp
dCktPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5l
eHQoKSkgewotICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKS0+ZXF1YWwoc2VjdXJpdHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIGlmIChzb3Vy
Y2VGcmFtZSAhPSBmcmFtZSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+
ZXF1YWwoc2VjdXJpdHlPcmlnaW4pKQogICAgICAgICAgICAgICAgICAgICBmcmFtZXMuYXBwZW5k
KGZyYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBmcmFtZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBmcmFtZXNbaV0t
PmRvY3VtZW50KCktPmRpc3BhdGNoV2luZG93RXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZy
YW1lLT5kb2N1bWVudCgpLT51cmwoKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9y
YWdlKCkpKTsKKyAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVN0b3Jh
Z2VFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBr
ZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBm
cmFtZXNbaV0tPmRvbVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoKSkpOwogICAgIH0KIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTM3MjcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSw3NCBAQAorMjAxMC0wMS0yMiAgSmVyZW15IE9ybG93ICA8am9ybG93
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIHN0b3JhZ2UgZXZlbnRzIG1hdGNoIHRoZSBzcGVjLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NDYKKworICAgICAgICBUaGlz
IG1lYXQgb2YgdGhlIHBhdGNoIEkganVzdCBwb3N0ZWQgaXMgdmVyeSBzaW1wbGUuICBJdCdzIGp1
c3QgbWFraW5nIGV2ZW50cworICAgICAgICBhc3luY2hyb25vdXMsIG5vdCBwb3N0aW5nIHRoZW0g
dG8gdGhlIGZyYW1lIHRoYXQgZ2VuZXJhdGVkIHRoZW0sIHBhc3NpbmcgYSBudWxsCisgICAgICAg
IGZvciB0aGUga2V5IHdoZW4gaXNzdWluZyBhIGNsZWFyIHN0b3JhZ2UgZXZlbnQsIGFuZCBtYWtp
bmcgdGhlIGV2ZW50cworICAgICAgICBub24tY2FuY2VsYWJsZS9ub24tYnViYmxlYWJsZS4uLmFs
bCBvZiB3aGljaCBhcmUgY2xlYXJseSBzdGF0ZWQgaW4gdGhlIHNwZWMuCisKKyAgICAgICAgVGhl
IGFzeW5jaHJvbm91cyBhbmQgbm90IHBvc3RpbmcgdG8gdGhlIGZyYW1lIHRoYXQgZ2VuZXJhdGVk
IHRoZW0gZm9yY2VkIG1lIHR3bworICAgICAgICByZS13cml0ZSBhbGwgdGhlIGxheW91dCB0ZXN0
cyB0aGF0IGRlYWx0IHdpdGggc3RvcmFnZSBldmVudHMuICBUaGVyZSdzIGEgbG90IG9mCisgICAg
ICAgIGNvZGUgdGhlcmUsIGJ1dCBJIHRyaWVkIHRvIGJlIGZhaXJseSBjYXJlZnVsIHRvIGVuc3Vy
ZSB0aGF0IHRlc3QgY292ZXJhZ2UgZGlkCisgICAgICAgIG5vdCBzaHJpbmsgaW4gYW55IGFyZWEu
CisKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvY29tcGxleC12YWx1ZXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2RvY3VtZW50VVJJLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50czogQWRkZWQu
CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJpYnV0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVu
dHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9iYXNpYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtc2V0YXR0cmlidXRlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1zZXRhdHRy
aWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9i
YXNpYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Nh
c2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9jYXNlLXNlbnNpdGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9y
YWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9kb2N1bWVudFVSSS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlczogQWRkZWQu
CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9yZXNvdXJjZXMvYm9keS1ldmVu
dC1oYW5kbGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVu
dHMvcmVzb3VyY2VzL2V2ZW50VGVzdEhhcm5lc3MuanM6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL3NldGF0dHJpYnV0ZS1ldmVudC1oYW5kbGVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0
LXRlc3RzOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Njcmlw
dC10ZXN0cy9URU1QTEFURS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwuCisgICAgICAgICogc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUuanM6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Jh
c2ljLXNldGF0dHJpYnV0ZS5qczogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdl
L2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMuanM6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2Uv
ZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Nhc2Utc2Vuc2l0aXZlLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9kb2N1bWVu
dFVSSS5qczogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9pZnJhbWUtZXZlbnRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L2luZGV4LWdldC1hbmQtc2V0Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLW1hcmt1cC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2Ut
YXR0cmlidXRlLW1hcmt1cC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3Jh
Z2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUt
c2V0d2luZG93LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0
b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUt
ZXZlbnRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3Jh
Z2UvbG9jYWxzdG9yYWdlL3NpbXBsZS1ldmVudHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2NvbXBsZXgtdmFsdWVzLmpzOgorICAgICAg
ICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanM6IFJlbW92
ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2lmcmFtZS1l
dmVudHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFn
ZS9zZXNzaW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaW5k
ZXgtZ2V0LWFuZC1zZXQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lv
bnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2Ut
YXR0cmlidXRlLW1hcmt1cC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3Rv
cmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25z
dG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0cmlidXRlLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRy
aWJ1dGUtc2V0d2luZG93LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3Jh
Z2Uvc2ltcGxlLWV2ZW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFn
ZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS1ldmVudHMuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvd2luZG93LWF0dHJpYnV0ZXMtZXhpc3QtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS93aW5kb3ctYXR0cmlidXRl
cy1leGlzdC5odG1sOgorCiAyMDEwLTAxLTIyICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBObyByZXZpZXcuIEJ1aWxkIGZpeC4KSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gNTM3MTIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
Y29tcGxleC12YWx1ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsMTUgKzEw
Miw2IEBAIFBBU1Mgc3RvcmFnZS5mb28xMiBpcyAi7peBw7/ssKFoZWxsbyIKIFBBU1MgdHlwZW9m
IHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTInKSBpcyAic3RyaW5nIgogUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LChaGVsbG8iCiAKLVZlcmlmeSBzdG9yYWdlIGV2ZW50cyBh
cmUgY2FzZSBzZW5zaXRpdmUKLXN0b3JhZ2UuZm9vID0gJ3Rlc3QnCi1TZXR0aW5nIGV2ZW50IGxp
c3RlbmVyCi1QQVNTIGV2ZW50Q291bnRlciBpcyAwCi1zdG9yYWdlLmZvbyA9ICd0ZXN0JwotUEFT
UyBldmVudENvdW50ZXIgaXMgMAotc3RvcmFnZS5mb28gPSAnVEVTVCcKLVBBU1MgZXZlbnRDb3Vu
dGVyIGlzIDEKLQogCiBUZXN0aW5nIGxvY2FsU3RvcmFnZQogc3RvcmFnZS5jbGVhcigpCkBAIC0y
MTAsMTUgKzIwMSw2IEBAIFBBU1MgdHlwZW9mIHN0b3JhZ2UuZm9vMTIgaXMgInN0cmluZyIKIFBB
U1Mgc3RvcmFnZS5mb28xMiBpcyAi7peBw7/ssKFoZWxsbyIKIFBBU1MgdHlwZW9mIHN0b3JhZ2Uu
Z2V0SXRlbSgnZm9vMTInKSBpcyAic3RyaW5nIgogUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEy
JykgaXMgIu6XgcO/7LChaGVsbG8iCi0KLVZlcmlmeSBzdG9yYWdlIGV2ZW50cyBhcmUgY2FzZSBz
ZW5zaXRpdmUKLXN0b3JhZ2UuZm9vID0gJ3Rlc3QnCi1TZXR0aW5nIGV2ZW50IGxpc3RlbmVyCi1Q
QVNTIGV2ZW50Q291bnRlciBpcyAwCi1zdG9yYWdlLmZvbyA9ICd0ZXN0JwotUEFTUyBldmVudENv
dW50ZXIgaXMgMAotc3RvcmFnZS5mb28gPSAnVEVTVCcKLVBBU1MgZXZlbnRDb3VudGVyIGlzIDEK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDog
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1lbnRVUkkt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzcxMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcg
KzAsMCBAQAotVGVzdCB0aGF0IGNoYW5naW5nIGRvY3VtZW50VVJJIGhhcyBubyBlZmZlY3RzIG9u
IHN0b3JhZ2UgZXZlbnRzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotVGVzdGlu
ZyBzZXNzaW9uU3RvcmFnZQotc3RvcmFnZS5jbGVhcigpCi1QQVNTIHN0b3JhZ2UubGVuZ3RoIGlz
IDAKLXdpbmRvdy5vbnN0b3JhZ2UgPSBmaXJzdEV2ZW50Ci1zdG9yYWdlLmZvbyA9ICcxMjMnCi1G
aXJzdCBldmVudCBmaXJlZAotU2F2aW5nIFVSSQotZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnYWJj
JwotUEFTUyBkb2N1bWVudC5kb2N1bWVudFVSSSBpcyAiYWJjIgotd2luZG93Lm9uc3RvcmFnZSA9
IHNlY29uZEV2ZW50Ci1zdG9yYWdlLmZvbyA9ICd4eXonCi1TZWNvbmQgZXZlbnQgZmlyZWQKLVBB
U1MgdHJ1ZSBpcyB0cnVlCi0KLQotVGVzdGluZyBsb2NhbFN0b3JhZ2UKLXN0b3JhZ2UuY2xlYXIo
KQotUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCi13aW5kb3cub25zdG9yYWdlID0gZmlyc3RFdmVu
dAotc3RvcmFnZS5mb28gPSAnMTIzJwotRmlyc3QgZXZlbnQgZmlyZWQKLVNhdmluZyBVUkkKLWRv
Y3VtZW50LmRvY3VtZW50VVJJID0gJ2FiYycKLVBBU1MgZG9jdW1lbnQuZG9jdW1lbnRVUkkgaXMg
ImFiYyIKLXdpbmRvdy5vbnN0b3JhZ2UgPSBzZWNvbmRFdmVudAotc3RvcmFnZS5mb28gPSAneHl6
JwotU2Vjb25kIGV2ZW50IGZpcmVkCi1QQVNTIHRydWUgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sCShyZXZpc2lvbiA1MzcxMikK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvZG9jdW1lbnRVUkkuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2Uvd2luZG93LWF0dHJpYnV0ZXMtZXhpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MzcxMikK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS93aW5kb3ctYXR0cmlidXRlcy1leGlz
dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4LDUgKzE4LDQgQEAgU3RvcmFnZSBv
YmplY3QgbG9jYWxTdG9yYWdlIGhhcyBjbGVhcgogd2luZG93LmxvY2FsU3RvcmFnZSA9PSB3aW5k
b3cubG9jYWxTdG9yYWdlOiB0cnVlCiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSB3aW5kb3cubG9j
YWxTdG9yYWdlOiB0cnVlCiB3aW5kb3cub25zdG9yYWdlIGV4aXN0cwotVGhlIG9uc3RvcmFnZSBw
cm9wZXJ0eSB3b3JrcyB3aGVuIGEgc3RvcmFnZSBldmVudCBpcyBmaXJlZC4KIApJbmRleDogTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRy
aWJ1dGVzLWV4aXN0Lmh0bWwJKHJldmlzaW9uIDUzNzEyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDE2ICsyNiw2IEBAIGZ1bmN0aW9uIHRlc3RTdG9yYWdlKG5hbWUsIHN0b3JhZ2UpCiAg
ICAgICAgIGxvZygiU3RvcmFnZSBvYmplY3QgIiArIG5hbWUgKyAiIGhhcyBjbGVhciIpOwogfQog
Ci1mdW5jdGlvbiB0ZXN0T25zdG9yYWdlKCkKLXsKLSAgICB3aW5kb3cub25zdG9yYWdlID0gZnVu
Y3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICBsb2coIlRoZSBvbnN0b3JhZ2UgcHJvcGVydHkg
d29ya3Mgd2hlbiBhIHN0b3JhZ2UgZXZlbnQgaXMgZmlyZWQuIik7Ci0gICAgfQotICAgIAotICAg
IHdpbmRvdy5sb2NhbFN0b3JhZ2VbInRlc3QiXSA9ICJ0ZXN0IjsKLX0KLQogZnVuY3Rpb24gcnVu
VGVzdCgpCiB7CiAgICAgaWYgKCJzZXNzaW9uU3RvcmFnZSIgaW4gd2luZG93KSB7CkBAIC01NCwx
MCArNDQsOSBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB9IGVsc2UKICAgICAgICAgbG9nKCJ3
aW5kb3cubG9jYWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7CiAKLSAgICBpZiAoIm9uc3RvcmFn
ZSIgaW4gd2luZG93KSB7CisgICAgaWYgKCJvbnN0b3JhZ2UiIGluIHdpbmRvdykKICAgICAgICAg
bG9nKCJ3aW5kb3cub25zdG9yYWdlIGV4aXN0cyIpOwotICAgICAgICB0ZXN0T25zdG9yYWdlKCk7
Ci0gICAgfSBlbHNlCisgICAgZWxzZQogICAgICAgICBsb2coIndpbmRvdy5vbnN0b3JhZ2UgRE9F
UyBOT1QgZXhpc3QiKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJpYnV0
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2UvZXZlbnRzL2Jhc2ljLWJvZHktYXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMDIgQEAKK1RoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBET00gU3Rv
cmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUg
ZXZlbnQgbGlzdGVuZXIgc3BlY2lmaWVkIGFzIGFuIGF0dHJpYnV0ZSBvbiB0aGUgYm9keS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3Rpbmcgc2Vzc2lvblN0b3JhZ2UKK3N0
b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCitpZnJhbWUub25sb2FkID0g
c3RlcDEKK2lmcmFtZS5zcmMgPSAncmVzb3VyY2VzL2JvZHktZXZlbnQtaGFuZGxlci5odG1sJwor
UmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkK
K3N0b3JhZ2Uuc2V0SXRlbSgnRk9PJywgJ0JBUicpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVu
Z3RoIGlzIDEKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5rZXkgaXMgIkZPTyIKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFswXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
MF0ubmV3VmFsdWUgaXMgIkJBUiIKK3N0b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykKK3N0b3Jh
Z2Uuc2V0SXRlbSgnYScsICcxJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICcyJykKK3N0b3JhZ2Uu
c2V0SXRlbSgnYicsICczJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNQorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzFdLmtleSBpcyAiRlUiCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
MV0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLm5ld1ZhbHVlIGlz
ICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ua2V5IGlzICJhIgorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzJdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5u
ZXdWYWx1ZSBpcyAiMSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5rZXkgaXMgImIiCitQQVNT
IHN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzNdLm5ld1ZhbHVlIGlzICIyIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLmtleSBpcyAi
YiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5vbGRWYWx1ZSBpcyAiMiIKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSBpcyAiMyIKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRk9PJykK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0
WzVdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLm9sZFZhbHVlIGlzICJC
QVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5y
ZW1vdmVJdGVtKCdGVScpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDcKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkgaXMgIkZVIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZd
Lm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFsdWUgaXMg
bnVsbAorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDgK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5rZXkgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzddLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5uZXdWYWx1
ZSBpcyBudWxsCisKKworVGVzdGluZyBsb2NhbFN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQorUEFT
UyBzdG9yYWdlLmxlbmd0aCBpcyAwCitpZnJhbWUub25sb2FkID0gc3RlcDEKK2lmcmFtZS5zcmMg
PSAncmVzb3VyY2VzL2JvZHktZXZlbnQtaGFuZGxlci5odG1sJworUmVzZXQgc3RvcmFnZSBldmVu
dCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2Uuc2V0SXRlbSgn
Rk9PJywgJ0JBUicpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDEKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFswXS5rZXkgaXMgIkZPTyIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5v
bGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ubmV3VmFsdWUgaXMgIkJB
UiIKK3N0b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYScsICcx
JykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICcyJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICczJykK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0
WzFdLmtleSBpcyAiRlUiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ub2xkVmFsdWUgaXMgbnVs
bAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLm5ld1ZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3Jh
Z2VFdmVudExpc3RbMl0ua2V5IGlzICJhIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLm9sZFZh
bHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5uZXdWYWx1ZSBpcyAiMSIKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5rZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
M10ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLm5ld1ZhbHVlIGlz
ICIyIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLmtleSBpcyAiYiIKK1BBU1Mgc3RvcmFnZUV2
ZW50TGlzdFs0XS5vbGRWYWx1ZSBpcyAiMiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5uZXdW
YWx1ZSBpcyAiMyIKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRk9PJykKK1BBU1Mgc3RvcmFnZUV2ZW50
TGlzdC5sZW5ndGggaXMgNgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLmtleSBpcyAiRk9PIgor
UEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VF
dmVudExpc3RbNV0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5yZW1vdmVJdGVtKCdGVScpCitQ
QVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDcKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2
XS5rZXkgaXMgIkZVIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLm9sZFZhbHVlIGlzICJCQVIi
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5jbGVh
cigpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDgKK1BBU1Mgc3RvcmFnZUV2ZW50
TGlzdFs3XS5rZXkgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLm9sZFZhbHVlIGlz
IG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5uZXdWYWx1ZSBpcyBudWxsCisKKworUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpJbmRleDog
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1ib2R5LWF0dHJpYnV0
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVu
dHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9i
YXNpYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9iYXNpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw5OCBAQAorVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIERPTSBT
dG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRo
ZSBldmVudCBsaXN0ZW5lciBzZXQgdmlhIHdpbmRvdy5vbnN0b3JhZ2UuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nIHNlc3Npb25TdG9yYWdlCitzdG9yYWdlLmNsZWFy
KCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAorUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0Citz
dG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2Uuc2V0SXRlbSgnRk9PJywgJ0JB
UicpCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDEKK1BBU1Mgc3RvcmFnZUV2ZW50
TGlzdFswXS5rZXkgaXMgIkZPTyIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5vbGRWYWx1ZSBp
cyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ubmV3VmFsdWUgaXMgIkJBUiIKK3N0b3Jh
Z2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYScsICcxJykKK3N0b3Jh
Z2Uuc2V0SXRlbSgnYicsICcyJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICczJykKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLmtleSBp
cyAiRlUiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBz
dG9yYWdlRXZlbnRMaXN0WzFdLm5ld1ZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExp
c3RbMl0ua2V5IGlzICJhIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLm9sZFZhbHVlIGlzIG51
bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5uZXdWYWx1ZSBpcyAiMSIKK1BBU1Mgc3RvcmFn
ZUV2ZW50TGlzdFszXS5rZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFs
dWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLm5ld1ZhbHVlIGlzICIyIgorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzRdLmtleSBpcyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0
XS5vbGRWYWx1ZSBpcyAiMiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSBpcyAi
MyIKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRk9PJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5n
dGggaXMgNgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9y
YWdlRXZlbnRMaXN0WzVdLm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
NV0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5yZW1vdmVJdGVtKCdGVScpCitQQVNTIHN0b3Jh
Z2VFdmVudExpc3QubGVuZ3RoIGlzIDcKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkgaXMg
IkZVIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5jbGVhcigpCitQQVNT
IHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDgKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5r
ZXkgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLm9sZFZhbHVlIGlzIG51bGwKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5uZXdWYWx1ZSBpcyBudWxsCisKKworVGVzdGluZyBsb2Nh
bFN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9yYWdlLmxlbmd0aCBpcyAwCitSZXNl
dCBzdG9yYWdlIGV2ZW50IGxpc3QKK3N0b3JhZ2VFdmVudExpc3QgPSBuZXcgQXJyYXkoKQorc3Rv
cmFnZS5zZXRJdGVtKCdGT08nLCAnQkFSJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgg
aXMgMQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzBdLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5u
ZXdWYWx1ZSBpcyAiQkFSIgorc3RvcmFnZS5zZXRJdGVtKCdGVScsICdCQVInKQorc3RvcmFnZS5z
ZXRJdGVtKCdhJywgJzEnKQorc3RvcmFnZS5zZXRJdGVtKCdiJywgJzInKQorc3RvcmFnZS5zZXRJ
dGVtKCdiJywgJzMnKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA1CitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbMV0ua2V5IGlzICJGVSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5v
bGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ubmV3VmFsdWUgaXMgIkJB
UiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5rZXkgaXMgImEiCitQQVNTIHN0b3JhZ2VFdmVu
dExpc3RbMl0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLm5ld1Zh
bHVlIGlzICIxIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLmtleSBpcyAiYiIKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFszXS5vbGRWYWx1ZSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
M10ubmV3VmFsdWUgaXMgIjIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNF0ua2V5IGlzICJiIgor
UEFTUyBzdG9yYWdlRXZlbnRMaXN0WzRdLm9sZFZhbHVlIGlzICIyIgorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0WzRdLm5ld1ZhbHVlIGlzICIzIgorc3RvcmFnZS5yZW1vdmVJdGVtKCdGT08nKQorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA2CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0u
a2V5IGlzICJGT08iCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ub2xkVmFsdWUgaXMgIkJBUiIK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1XS5uZXdWYWx1ZSBpcyBudWxsCitzdG9yYWdlLnJlbW92
ZUl0ZW0oJ0ZVJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgNworUEFTUyBzdG9y
YWdlRXZlbnRMaXN0WzZdLmtleSBpcyAiRlUiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ub2xk
VmFsdWUgaXMgIkJBUiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5uZXdWYWx1ZSBpcyBudWxs
CitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMgOAorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzddLmtleSBpcyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
N10ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLm5ld1ZhbHVlIGlz
IG51bGwKKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKworCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2lj
LXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Rv
cmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNp
Yy1zZXRhdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwMiBA
QAorVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIERPTSBTdG9yYWdlIG11dGF0aW9ucyBmaXJl
IFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBhdHRh
Y2hlZCB2aWEgc2V0YXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
VGVzdGluZyBzZXNzaW9uU3RvcmFnZQorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2UubGVu
Z3RoIGlzIDAKK2lmcmFtZS5vbmxvYWQgPSBzdGVwMQoraWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMv
c2V0YXR0cmlidXRlLWV2ZW50LWhhbmRsZXIuaHRtbCcKK1Jlc2V0IHN0b3JhZ2UgZXZlbnQgbGlz
dAorc3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgpCitzdG9yYWdlLnNldEl0ZW0oJ0ZPTycs
ICdCQVInKQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHN0b3JhZ2VF
dmVudExpc3RbMF0ua2V5IGlzICJGT08iCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ub2xkVmFs
dWUgaXMgbnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzBdLm5ld1ZhbHVlIGlzICJCQVIiCitz
dG9yYWdlLnNldEl0ZW0oJ0ZVJywgJ0JBUicpCitzdG9yYWdlLnNldEl0ZW0oJ2EnLCAnMScpCitz
dG9yYWdlLnNldEl0ZW0oJ2InLCAnMicpCitzdG9yYWdlLnNldEl0ZW0oJ2InLCAnMycpCitQQVNT
IHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDUKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5r
ZXkgaXMgIkZVIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLm9sZFZhbHVlIGlzIG51bGwKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdFsxXS5uZXdWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0WzJdLmtleSBpcyAiYSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5vbGRWYWx1ZSBp
cyBudWxsCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0ubmV3VmFsdWUgaXMgIjEiCitQQVNTIHN0
b3JhZ2VFdmVudExpc3RbM10ua2V5IGlzICJiIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLm9s
ZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFszXS5uZXdWYWx1ZSBpcyAiMiIK
K1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5rZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExp
c3RbNF0ub2xkVmFsdWUgaXMgIjIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNF0ubmV3VmFsdWUg
aXMgIjMiCitzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZPTycpCitQQVNTIHN0b3JhZ2VFdmVudExpc3Qu
bGVuZ3RoIGlzIDYKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs1XS5rZXkgaXMgIkZPTyIKK1BBU1Mg
c3RvcmFnZUV2ZW50TGlzdFs1XS5vbGRWYWx1ZSBpcyAiQkFSIgorUEFTUyBzdG9yYWdlRXZlbnRM
aXN0WzVdLm5ld1ZhbHVlIGlzIG51bGwKK3N0b3JhZ2UucmVtb3ZlSXRlbSgnRlUnKQorUEFTUyBz
dG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA3CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNl0ua2V5
IGlzICJGVSIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5vbGRWYWx1ZSBpcyAiQkFSIgorUEFT
UyBzdG9yYWdlRXZlbnRMaXN0WzZdLm5ld1ZhbHVlIGlzIG51bGwKK3N0b3JhZ2UuY2xlYXIoKQor
UEFTUyBzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyA4CitQQVNTIHN0b3JhZ2VFdmVudExpc3Rb
N10ua2V5IGlzIG51bGwKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1ZSBpcyBudWxs
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbN10ubmV3VmFsdWUgaXMgbnVsbAorCisKK1Rlc3Rpbmcg
bG9jYWxTdG9yYWdlCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAor
aWZyYW1lLm9ubG9hZCA9IHN0ZXAxCitpZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9zZXRhdHRyaWJ1
dGUtZXZlbnQtaGFuZGxlci5odG1sJworUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdl
RXZlbnRMaXN0ID0gbmV3IEFycmF5KCkKK3N0b3JhZ2Uuc2V0SXRlbSgnRk9PJywgJ0JBUicpCitQ
QVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlzIDEKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFsw
XS5rZXkgaXMgIkZPTyIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFswXS5vbGRWYWx1ZSBpcyBudWxs
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMF0ubmV3VmFsdWUgaXMgIkJBUiIKK3N0b3JhZ2Uuc2V0
SXRlbSgnRlUnLCAnQkFSJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYScsICcxJykKK3N0b3JhZ2Uuc2V0
SXRlbSgnYicsICcyJykKK3N0b3JhZ2Uuc2V0SXRlbSgnYicsICczJykKK1BBU1Mgc3RvcmFnZUV2
ZW50TGlzdC5sZW5ndGggaXMgNQorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzFdLmtleSBpcyAiRlUi
CitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMV0ub2xkVmFsdWUgaXMgbnVsbAorUEFTUyBzdG9yYWdl
RXZlbnRMaXN0WzFdLm5ld1ZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbMl0u
a2V5IGlzICJhIgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzJdLm9sZFZhbHVlIGlzIG51bGwKK1BB
U1Mgc3RvcmFnZUV2ZW50TGlzdFsyXS5uZXdWYWx1ZSBpcyAiMSIKK1BBU1Mgc3RvcmFnZUV2ZW50
TGlzdFszXS5rZXkgaXMgImIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUgaXMg
bnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzNdLm5ld1ZhbHVlIGlzICIyIgorUEFTUyBzdG9y
YWdlRXZlbnRMaXN0WzRdLmtleSBpcyAiYiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5vbGRW
YWx1ZSBpcyAiMiIKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs0XS5uZXdWYWx1ZSBpcyAiMyIKK3N0
b3JhZ2UucmVtb3ZlSXRlbSgnRk9PJykKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMg
NgorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzVdLmtleSBpcyAiRk9PIgorUEFTUyBzdG9yYWdlRXZl
bnRMaXN0WzVdLm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VFdmVudExpc3RbNV0ubmV3
VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5yZW1vdmVJdGVtKCdGVScpCitQQVNTIHN0b3JhZ2VFdmVu
dExpc3QubGVuZ3RoIGlzIDcKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkgaXMgIkZVIgor
UEFTUyBzdG9yYWdlRXZlbnRMaXN0WzZdLm9sZFZhbHVlIGlzICJCQVIiCitQQVNTIHN0b3JhZ2VF
dmVudExpc3RbNl0ubmV3VmFsdWUgaXMgbnVsbAorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3Jh
Z2VFdmVudExpc3QubGVuZ3RoIGlzIDgKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdFs3XS5rZXkgaXMg
bnVsbAorUEFTUyBzdG9yYWdlRXZlbnRMaXN0WzddLm9sZFZhbHVlIGlzIG51bGwKK1BBU1Mgc3Rv
cmFnZUV2ZW50TGlzdFs3XS5uZXdWYWx1ZSBpcyBudWxsCisKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpJbmRleDogTGF5b3V0VGVzdHMvc3Rv
cmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1dGUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJp
YnV0ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24u
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudFRl
c3RIYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmFzaWMt
c2V0YXR0cmlidXRlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvYmFzaWMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnRUZXN0SGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Jhc2ljLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvY2FzZS1zZW5z
aXRpdmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9ldmVudHMvY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9jYXNlLXNlbnNpdGl2ZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKK1ZlcmlmeSB0aGF0IHN0
b3JhZ2UgZXZlbnRzIGZpcmUgZXZlbiB3aGVuIG9ubHkgdGhlIGNhc2Ugb2YgdGhlIHZhbHVlIGNo
YW5nZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nIHNlc3Npb25T
dG9yYWdlCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAorCitWZXJp
Znkgc3RvcmFnZSBldmVudHMgYXJlIGNhc2Ugc2Vuc2l0aXZlCitzdG9yYWdlLmZvbyA9ICd0ZXN0
JworUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5
KCkKK3N0b3JhZ2UuZm9vID0gJ3Rlc3QnCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlz
IDAKK3N0b3JhZ2UuZm9vID0gJ1RFU1QnCitQQVNTIHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIGlz
IDEKKworCitUZXN0aW5nIGxvY2FsU3RvcmFnZQorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3Jh
Z2UubGVuZ3RoIGlzIDAKKworVmVyaWZ5IHN0b3JhZ2UgZXZlbnRzIGFyZSBjYXNlIHNlbnNpdGl2
ZQorc3RvcmFnZS5mb28gPSAndGVzdCcKK1Jlc2V0IHN0b3JhZ2UgZXZlbnQgbGlzdAorc3RvcmFn
ZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgpCitzdG9yYWdlLmZvbyA9ICd0ZXN0JworUEFTUyBzdG9y
YWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAwCitzdG9yYWdlLmZvbyA9ICdURVNUJworUEFTUyBzdG9y
YWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAxCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9jYXNlLXNlbnNpdGl2ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvY2FzZS1zZW5zaXRpdmUuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvY2FzZS1zZW5z
aXRpdmUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvY2FzZS1zZW5zaXRpdmUuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2V2ZW50cy9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2RvY3Vt
ZW50VVJJLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorVGVzdCB0
aGF0IGNoYW5naW5nIGRvY3VtZW50VVJJIGhhcyBubyBlZmZlY3RzIG9uIHRoZSB1cmkgcGFzc2Vk
IGludG8gc3RvcmFnZSBldmVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitU
ZXN0aW5nIHNlc3Npb25TdG9yYWdlCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5n
dGggaXMgMAorUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3
IEFycmF5KCkKK3N0b3JhZ2UuZm9vID0gJzEyMycKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5n
dGggaXMgMQorU2F2aW5nIFVSSQorZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnYWJjJworUEFTUyBk
b2N1bWVudC5kb2N1bWVudFVSSSBpcyAiYWJjIgorc3RvcmFnZS5mb28gPSAneHl6JworUEFTUyBz
dG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCBpcyAyCitQQVNTIHRydWUgaXMgdHJ1ZQorCisKK1Rlc3Rp
bmcgbG9jYWxTdG9yYWdlCitzdG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMg
MAorUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0CitzdG9yYWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5
KCkKK3N0b3JhZ2UuZm9vID0gJzEyMycKK1BBU1Mgc3RvcmFnZUV2ZW50TGlzdC5sZW5ndGggaXMg
MQorU2F2aW5nIFVSSQorZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnYWJjJworUEFTUyBkb2N1bWVu
dC5kb2N1bWVudFVSSSBpcyAiYWJjIgorc3RvcmFnZS5mb28gPSAneHl6JworUEFTUyBzdG9yYWdl
RXZlbnRMaXN0Lmxlbmd0aCBpcyAyCitQQVNTIHRydWUgaXMgdHJ1ZQorCisKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvZG9jdW1lbnRVUkkuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2RvY3VtZW50VVJJLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRz
L2RvY3VtZW50VVJJLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnRUZXN0SGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9ldmVudHMvcmVzb3VyY2VzL2JvZHktZXZlbnQtaGFuZGxlci5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2VzL2JvZHkt
ZXZlbnQtaGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9yZXNvdXJjZXMvYm9keS1ldmVudC1oYW5kbGVyLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+PGhlYWQ+PHNjcmlwdD4KKworZnVuY3Rpb24g
aGFuZGxlU3RvcmFnZUV2ZW50KGUpIHsKKyAgICB3aW5kb3cucGFyZW50LnN0b3JhZ2VFdmVudExp
c3QucHVzaChlKTsKK30KKworPC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9uc3RvcmFnZT0iaGFuZGxl
U3RvcmFnZUV2ZW50KHdpbmRvdy5ldmVudCk7Ij4KKzwvYm9keT48L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9ldmVudFRlc3RIYXJu
ZXNzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVu
dHMvcmVzb3VyY2VzL2V2ZW50VGVzdEhhcm5lc3MuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9ldmVudFRlc3RIYXJuZXNz
LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworaWZyYW1lID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiSUZSQU1FIik7CitpZnJhbWUuc3JjID0gImFib3V0OmJsYW5r
IjsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK2lmcmFtZS5jb250ZW50V2lu
ZG93LmRvY3VtZW50LmJvZHkuaW5uZXJUZXh0ID0gIk5vdGhpbmcgdG8gc2VlIGhlcmUuIjsKKwor
c3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgpOworaWZyYW1lLmNvbnRlbnRXaW5kb3cub25z
dG9yYWdlID0gZnVuY3Rpb24gKGUpIHsKKyAgICB3aW5kb3cucGFyZW50LnN0b3JhZ2VFdmVudExp
c3QucHVzaChlKTsKK30KKworZnVuY3Rpb24gcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKGNhbGxiYWNr
KSB7CisgICAgdmFyIGN1cnJlbnRDb3VudCA9IHN0b3JhZ2VFdmVudExpc3QubGVuZ3RoOworICAg
IGZ1bmN0aW9uIG9uVGltZW91dCgpIHsKKyAgICAgICAgaWYgKGN1cnJlbnRDb3VudCAhPSBzdG9y
YWdlRXZlbnRMaXN0Lmxlbmd0aCkKKyAgICAgICAgICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhj
YWxsYmFjayk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfQor
ICAgIHNldFRpbWVvdXQob25UaW1lb3V0LCAwKTsKK30KKworZnVuY3Rpb24gdGVzdFN0b3JhZ2Vz
KHRlc3RDYWxsYmFjaykKK3sKKyAgICAvLyBXaGVuIHdlJ3JlIGRvbmUgdGVzdGluZyBMb2NhbFN0
b3JhZ2UsIHRoaXMgaXMgcnVuLgorICAgIGZ1bmN0aW9uIGFsbERvbmUoKQorICAgIHsKKyAgICAg
ICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIHdpbmRvdy5zdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAg
ICAgICBkZWJ1ZygiIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkKKyAgICB9CisK
KyAgICAvLyBXaGVuIHdlJ3JlIGRvbmUgdGVzdGluZyB3aXRoIFNlc3Npb25TdG9yYWdlLCB0aGlz
IGlzIHJ1bi4KKyAgICBmdW5jdGlvbiBydW5Mb2NhbFN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAg
ZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIHRlc3RDYWxsYmFjaygibG9j
YWxTdG9yYWdlIiwgYWxsRG9uZSk7CisgICAgfQorCisgICAgLy8gRmlyc3QgcnVuIHRoZSB0ZXN0
IHdpdGggU2Vzc2lvblN0b3JhZ2UuCisgICAgdGVzdENhbGxiYWNrKCJzZXNzaW9uU3RvcmFnZSIs
IHJ1bkxvY2FsU3RvcmFnZSk7Cit9CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvZXZlbnRzL3Jlc291cmNlcy9zZXRhdHRyaWJ1dGUtZXZlbnQtaGFuZGxlci5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvcmVzb3VyY2Vz
L3NldGF0dHJpYnV0ZS1ldmVudC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9zZXRhdHRyaWJ1dGUtZXZl
bnQtaGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACis8aHRtbD48aGVh
ZD48L2hlYWQ+PGJvZHk+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQo
ZSkgeworICAgIHdpbmRvdy5wYXJlbnQuc3RvcmFnZUV2ZW50TGlzdC5wdXNoKGUpOworfQorCitk
b2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgib25zdG9yYWdlIiwgImhhbmRsZVN0b3JhZ2VFdmVu
dCh3aW5kb3cuZXZlbnQpOyIpOworCis8L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9URU1QTEFU
RS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVu
dHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDUzMjMyKQkoZnJvbSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWw6NTMy
MzIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0
cy9URU1QTEFURS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Njcmlw
dC10ZXN0cy9URU1QTEFURS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9U
RU1QTEFURS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICsxLDEzIEBACiA8aHRtbD4KIDxo
ZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5Pgog
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZXZlbnRUZXN0SGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iWU9VUl9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFz
aWMtYm9keS1hdHRyaWJ1dGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMtYm9keS1hdHRyaWJ1dGUuanMJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Njcmlw
dC10ZXN0cy9iYXNpYy1ib2R5LWF0dHJpYnV0ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5
OCBAQAorZGVzY3JpcHRpb24oIlRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBET00gU3RvcmFn
ZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0aGUgZXZl
bnQgbGlzdGVuZXIgc3BlY2lmaWVkIGFzIGFuIGF0dHJpYnV0ZSBvbiB0aGUgYm9keS4iKTsKKwor
ZnVuY3Rpb24gdGVzdChzdG9yYWdlU3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICB3aW5kb3cuY29t
cGxldGlvbkNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgd2luZG93LnN0b3JhZ2UgPSBldmFsKHN0
b3JhZ2VTdHJpbmcpOworICAgIGlmICghc3RvcmFnZSkgeworICAgICAgICB0ZXN0RmFpbGVkKHN0
b3JhZ2VTdHJpbmcgKyAiIERPRVMgTk9UIGV4aXN0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBkZWJ1ZygiVGVzdGluZyAiICsgc3RvcmFnZVN0cmluZyk7CisKKyAgICBldmFsQW5k
TG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsKKyAgICBzaG91bGRCZSgic3RvcmFnZS5sZW5ndGgiLCAi
MCIpOworCisgICAgZXZhbEFuZExvZygiaWZyYW1lLm9ubG9hZCA9IHN0ZXAxIik7CisgICAgZXZh
bEFuZExvZygiaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvYm9keS1ldmVudC1oYW5kbGVyLmh0bWwn
Iik7Cit9CisKK2Z1bmN0aW9uIHN0ZXAxKCkKK3sKKyAgICBkZWJ1ZygiUmVzZXQgc3RvcmFnZSBl
dmVudCBsaXN0Iik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJh
eSgpIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdGT08nLCAnQkFSJykiKTsK
KworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwMik7Cit9CisKK2Z1bmN0aW9uIHN0ZXAy
KCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiMSIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFswXS5rZXkiLCAiRk9PIik7
CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzBdLm9sZFZhbHVlIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzBdLm5ld1ZhbHVlIiwgIkJB
UiIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykiKTsKKyAg
ICBldmFsQW5kTG9nKCJzdG9yYWdlLnNldEl0ZW0oJ2EnLCAnMScpIik7CisgICAgZXZhbEFuZExv
Zygic3RvcmFnZS5zZXRJdGVtKCdiJywgJzInKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uu
c2V0SXRlbSgnYicsICczJykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwMyk7
Cit9CisKK2Z1bmN0aW9uIHN0ZXAzKCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlz
dC5sZW5ndGgiLCAiNSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50
TGlzdFsxXS5rZXkiLCAiRlUiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3Rb
MV0ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExp
c3RbMV0ubmV3VmFsdWUiLCAiQkFSIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9y
YWdlRXZlbnRMaXN0WzJdLmtleSIsICJhIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZl
bnRMaXN0WzJdLm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdl
RXZlbnRMaXN0WzJdLm5ld1ZhbHVlIiwgIjEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InN0b3JhZ2VFdmVudExpc3RbM10ua2V5IiwgImIiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3Jh
Z2VFdmVudExpc3RbM10ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0
b3JhZ2VFdmVudExpc3RbM10ubmV3VmFsdWUiLCAiMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygic3RvcmFnZUV2ZW50TGlzdFs0XS5rZXkiLCAiYiIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs0XS5vbGRWYWx1ZSIsICIyIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzRdLm5ld1ZhbHVlIiwgIjMiKTsKKyAg
ICBldmFsQW5kTG9nKCJzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZPTycpIik7CisKKyAgICBydW5BZnRl
clN0b3JhZ2VFdmVudHMoc3RlcDQpOworfQorCitmdW5jdGlvbiBzdGVwNCgpCit7CisgICAgc2hv
dWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjYiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNV0ua2V5IiwgIkZPTyIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs1XS5vbGRWYWx1ZSIsICJCQVIiKTsKKyAg
ICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbNV0ubmV3VmFsdWUiKTsKKyAgICBldmFs
QW5kTG9nKCJzdG9yYWdlLnJlbW92ZUl0ZW0oJ0ZVJykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFn
ZUV2ZW50cyhzdGVwNSk7Cit9CisKK2Z1bmN0aW9uIHN0ZXA1KCkKK3sKKyAgICBzaG91bGRCZSgi
c3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiNyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygic3RvcmFnZUV2ZW50TGlzdFs2XS5rZXkiLCAiRlUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNl0ub2xkVmFsdWUiLCAiQkFSIik7CisgICAgc2hvdWxk
QmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzZdLm5ld1ZhbHVlIik7CisgICAgZXZhbEFuZExvZygi
c3RvcmFnZS5jbGVhcigpIik7CisgCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXA2KTsK
K30KKworZnVuY3Rpb24gc3RlcDYoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0
Lmxlbmd0aCIsICI4Iik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzddLmtl
eSIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1ZSIpOwor
ICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFs3XS5uZXdWYWx1ZSIpOworIAorICAg
IGNvbXBsZXRpb25DYWxsYmFjaygpOworfQorCit0ZXN0U3RvcmFnZXModGVzdCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMtc2V0YXR0cmlidXRlLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3Rz
L2Jhc2ljLXNldGF0dHJpYnV0ZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXNldGF0dHJpYnV0ZS5qcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OCBAQAorZGVzY3JpcHRpb24oIlRoaXMgaXMgYSB0ZXN0
IHRvIG1ha2Ugc3VyZSBET00gU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRo
YXQgYXJlIGNhdWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgYXR0YWNoZWQgdmlhIHNldGF0dHJp
YnV0ZS4iKTsKKworZnVuY3Rpb24gdGVzdChzdG9yYWdlU3RyaW5nLCBjYWxsYmFjaykKK3sKKyAg
ICB3aW5kb3cuY29tcGxldGlvbkNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgd2luZG93LnN0b3Jh
Z2UgPSBldmFsKHN0b3JhZ2VTdHJpbmcpOworICAgIGlmICghc3RvcmFnZSkgeworICAgICAgICB0
ZXN0RmFpbGVkKHN0b3JhZ2VTdHJpbmcgKyAiIERPRVMgTk9UIGV4aXN0Iik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBkZWJ1ZygiVGVzdGluZyAiICsgc3RvcmFnZVN0cmluZyk7CisK
KyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsKKyAgICBzaG91bGRCZSgic3RvcmFn
ZS5sZW5ndGgiLCAiMCIpOworCisgICAgZXZhbEFuZExvZygiaWZyYW1lLm9ubG9hZCA9IHN0ZXAx
Iik7CisgICAgZXZhbEFuZExvZygiaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvc2V0YXR0cmlidXRl
LWV2ZW50LWhhbmRsZXIuaHRtbCciKTsKK30KKworZnVuY3Rpb24gc3RlcDEoKQoreworICAgIGRl
YnVnKCJSZXNldCBzdG9yYWdlIGV2ZW50IGxpc3QiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdl
RXZlbnRMaXN0ID0gbmV3IEFycmF5KCkiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNldEl0
ZW0oJ0ZPTycsICdCQVInKSIpOworCisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAyKTsK
K30KKworZnVuY3Rpb24gc3RlcDIoKQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0
Lmxlbmd0aCIsICIxIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRM
aXN0WzBdLmtleSIsICJGT08iKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3Rb
MF0ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExp
c3RbMF0ubmV3VmFsdWUiLCAiQkFSIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVt
KCdGVScsICdCQVInKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnYScsICcx
JykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNldEl0ZW0oJ2InLCAnMicpIik7CisgICAg
ZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdiJywgJzMnKSIpOworCisgICAgcnVuQWZ0ZXJT
dG9yYWdlRXZlbnRzKHN0ZXAzKTsKK30KKworZnVuY3Rpb24gc3RlcDMoKQoreworICAgIHNob3Vs
ZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICI1Iik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzFdLmtleSIsICJGVSIpOworICAgIHNob3VsZEJlTnVs
bCgic3RvcmFnZUV2ZW50TGlzdFsxXS5vbGRWYWx1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygic3RvcmFnZUV2ZW50TGlzdFsxXS5uZXdWYWx1ZSIsICJCQVIiKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMl0ua2V5IiwgImEiKTsKKyAgICBzaG91
bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbMl0ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMl0ubmV3VmFsdWUiLCAiMSIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFszXS5rZXkiLCAiYiIpOworICAg
IHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFszXS5vbGRWYWx1ZSIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFszXS5uZXdWYWx1ZSIsICIyIik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzRdLmtleSIsICJiIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzRdLm9sZFZhbHVl
IiwgIjIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNF0u
bmV3VmFsdWUiLCAiMyIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UucmVtb3ZlSXRlbSgnRk9P
JykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwNCk7Cit9CisKK2Z1bmN0aW9u
IHN0ZXA0KCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiNiIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs1XS5rZXkiLCAi
Rk9PIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzVdLm9s
ZFZhbHVlIiwgIkJBUiIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2ZW50TGlzdFs1XS5u
ZXdWYWx1ZSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UucmVtb3ZlSXRlbSgnRlUnKSIpOwor
CisgICAgcnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXA1KTsKK30KKworZnVuY3Rpb24gc3RlcDUo
KQoreworICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICI3Iik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzZdLmtleSIsICJGVSIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs2XS5vbGRWYWx1ZSIs
ICJCQVIiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbNl0ubmV3VmFsdWUi
KTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsKKyAKKyAgICBydW5BZnRlclN0
b3JhZ2VFdmVudHMoc3RlcDYpOworfQorCitmdW5jdGlvbiBzdGVwNigpCit7CisgICAgc2hvdWxk
QmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjgiKTsKKyAgICBzaG91bGRCZU51bGwoInN0
b3JhZ2VFdmVudExpc3RbN10ua2V5Iik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRM
aXN0WzddLm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0Wzdd
Lm5ld1ZhbHVlIik7CisgCisgICAgY29tcGxldGlvbkNhbGxiYWNrKCk7Cit9CisKK3Rlc3RTdG9y
YWdlcyh0ZXN0KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Njcmlw
dC10ZXN0cy9iYXNpYy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLmpzCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDk3IEBACitkZXNjcmlwdGlvbigiVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIERPTSBT
dG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRo
ZSBldmVudCBsaXN0ZW5lciBzZXQgdmlhIHdpbmRvdy5vbnN0b3JhZ2UuIik7CisKK2Z1bmN0aW9u
IHRlc3Qoc3RvcmFnZVN0cmluZywgY2FsbGJhY2spCit7CisgICAgd2luZG93LmNvbXBsZXRpb25D
YWxsYmFjayA9IGNhbGxiYWNrOworICAgIHdpbmRvdy5zdG9yYWdlID0gZXZhbChzdG9yYWdlU3Ry
aW5nKTsKKyAgICBpZiAoIXN0b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZhaWxlZChzdG9yYWdlU3Ry
aW5nICsgIiBET0VTIE5PVCBleGlzdCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
ZGVidWcoIlRlc3RpbmcgIiArIHN0b3JhZ2VTdHJpbmcpOworCisgICAgZXZhbEFuZExvZygic3Rv
cmFnZS5jbGVhcigpIik7CisgICAgc2hvdWxkQmUoInN0b3JhZ2UubGVuZ3RoIiwgIjAiKTsKKwor
ICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwMSk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAxKCkK
K3sKKyAgICBkZWJ1ZygiUmVzZXQgc3RvcmFnZSBldmVudCBsaXN0Iik7CisgICAgZXZhbEFuZExv
Zygic3RvcmFnZUV2ZW50TGlzdCA9IG5ldyBBcnJheSgpIik7CisgICAgZXZhbEFuZExvZygic3Rv
cmFnZS5zZXRJdGVtKCdGT08nLCAnQkFSJykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50
cyhzdGVwMik7Cit9CisKK2Z1bmN0aW9uIHN0ZXAyKCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFn
ZUV2ZW50TGlzdC5sZW5ndGgiLCAiMSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3Rv
cmFnZUV2ZW50TGlzdFswXS5rZXkiLCAiRk9PIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdl
RXZlbnRMaXN0WzBdLm9sZFZhbHVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9y
YWdlRXZlbnRMaXN0WzBdLm5ld1ZhbHVlIiwgIkJBUiIpOworICAgIGV2YWxBbmRMb2coInN0b3Jh
Z2Uuc2V0SXRlbSgnRlUnLCAnQkFSJykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnNldEl0
ZW0oJ2EnLCAnMScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdiJywgJzIn
KSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2Uuc2V0SXRlbSgnYicsICczJykiKTsKKworICAg
IHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwMyk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAzKCkKK3sK
KyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAiNSIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFsxXS5rZXkiLCAiRlUiKTsKKyAgICBz
aG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbMV0ub2xkVmFsdWUiKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbMV0ubmV3VmFsdWUiLCAiQkFSIik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzJdLmtleSIsICJhIik7
CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzJdLm9sZFZhbHVlIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZlbnRMaXN0WzJdLm5ld1ZhbHVlIiwgIjEi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbM10ua2V5Iiwg
ImIiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVudExpc3RbM10ub2xkVmFsdWUiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbM10ubmV3VmFsdWUi
LCAiMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs0XS5r
ZXkiLCAiYiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs0
XS5vbGRWYWx1ZSIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdG9yYWdlRXZl
bnRMaXN0WzRdLm5ld1ZhbHVlIiwgIjMiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnJlbW92
ZUl0ZW0oJ0ZPTycpIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDQpOworfQor
CitmdW5jdGlvbiBzdGVwNCgpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVu
Z3RoIiwgIjYiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3Rb
NV0ua2V5IiwgIkZPTyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50
TGlzdFs1XS5vbGRWYWx1ZSIsICJCQVIiKTsKKyAgICBzaG91bGRCZU51bGwoInN0b3JhZ2VFdmVu
dExpc3RbNV0ubmV3VmFsdWUiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLnJlbW92ZUl0ZW0o
J0ZVJykiKTsKKworICAgIHJ1bkFmdGVyU3RvcmFnZUV2ZW50cyhzdGVwNSk7Cit9CisKK2Z1bmN0
aW9uIHN0ZXA1KCkKK3sKKyAgICBzaG91bGRCZSgic3RvcmFnZUV2ZW50TGlzdC5sZW5ndGgiLCAi
NyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RvcmFnZUV2ZW50TGlzdFs2XS5rZXki
LCAiRlUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0b3JhZ2VFdmVudExpc3RbNl0u
b2xkVmFsdWUiLCAiQkFSIik7CisgICAgc2hvdWxkQmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzZd
Lm5ld1ZhbHVlIik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5jbGVhcigpIik7CisgCisgICAg
cnVuQWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXA2KTsKK30KKworZnVuY3Rpb24gc3RlcDYoKQorewor
ICAgIHNob3VsZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICI4Iik7CisgICAgc2hvdWxk
QmVOdWxsKCJzdG9yYWdlRXZlbnRMaXN0WzddLmtleSIpOworICAgIHNob3VsZEJlTnVsbCgic3Rv
cmFnZUV2ZW50TGlzdFs3XS5vbGRWYWx1ZSIpOworICAgIHNob3VsZEJlTnVsbCgic3RvcmFnZUV2
ZW50TGlzdFs3XS5uZXdWYWx1ZSIpOworIAorICAgIGNvbXBsZXRpb25DYWxsYmFjaygpOworfQor
Cit0ZXN0U3RvcmFnZXModGVzdCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJ
bmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMv
Y2FzZS1zZW5zaXRpdmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9zY3JpcHQtdGVzdHMvY2FzZS1zZW5zaXRpdmUuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3NjcmlwdC10ZXN0cy9j
YXNlLXNlbnNpdGl2ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorZGVzY3JpcHRp
b24oIlZlcmlmeSB0aGF0IHN0b3JhZ2UgZXZlbnRzIGZpcmUgZXZlbiB3aGVuIG9ubHkgdGhlIGNh
c2Ugb2YgdGhlIHZhbHVlIGNoYW5nZXMuIik7CisKK2Z1bmN0aW9uIHRlc3Qoc3RvcmFnZVN0cmlu
ZywgY2FsbGJhY2spCit7CisgICAgd2luZG93LmNvbXBsZXRpb25DYWxsYmFjayA9IGNhbGxiYWNr
OworICAgIHdpbmRvdy5zdG9yYWdlID0gZXZhbChzdG9yYWdlU3RyaW5nKTsKKyAgICBpZiAoIXN0
b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZhaWxlZChzdG9yYWdlU3RyaW5nICsgIiBET0VTIE5PVCBl
eGlzdCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGVidWcoIlRlc3RpbmcgIiAr
IHN0b3JhZ2VTdHJpbmcpOworCisgICAgZXZhbEFuZExvZygic3RvcmFnZS5jbGVhcigpIik7Cisg
ICAgc2hvdWxkQmUoInN0b3JhZ2UubGVuZ3RoIiwgIjAiKTsKKworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZygiVmVyaWZ5IHN0b3JhZ2UgZXZlbnRzIGFyZSBjYXNlIHNlbnNpdGl2ZSIpOworICAg
IGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0gJ3Rlc3QnIik7CisKKyAgICBydW5BZnRlclN0b3Jh
Z2VFdmVudHMoc3RlcDEpOworfQorCitmdW5jdGlvbiBzdGVwMSgpCit7CisgICAgZGVidWcoIlJl
c2V0IHN0b3JhZ2UgZXZlbnQgbGlzdCIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2VFdmVudExp
c3QgPSBuZXcgQXJyYXkoKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0gJ3Rlc3Qn
Iik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDIpOworfQorCitmdW5jdGlvbiBz
dGVwMigpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjAiKTsK
KyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICdURVNUJyIpOworCisgICAgcnVuQWZ0ZXJT
dG9yYWdlRXZlbnRzKHN0ZXAzKTsKK30KKworZnVuY3Rpb24gc3RlcDMoKQoreworICAgIHNob3Vs
ZEJlKCJzdG9yYWdlRXZlbnRMaXN0Lmxlbmd0aCIsICIxIik7CisKKyAgICBjb21wbGV0aW9uQ2Fs
bGJhY2soKTsKK30KKwordGVzdFN0b3JhZ2VzKHRlc3QpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMv
c2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9ldmVudHMvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9zY3JpcHQt
dGVzdHMvZG9jdW1lbnRVUkkuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKK2Rlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgY2hhbmdpbmcgZG9jdW1lbnRVUkkgaGFzIG5vIGVmZmVjdHMgb24g
dGhlIHVyaSBwYXNzZWQgaW50byBzdG9yYWdlIGV2ZW50cy4iKTsKKworZnVuY3Rpb24gdGVzdChz
dG9yYWdlU3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICB3aW5kb3cuY29tcGxldGlvbkNhbGxiYWNr
ID0gY2FsbGJhY2s7CisgICAgd2luZG93LnN0b3JhZ2UgPSBldmFsKHN0b3JhZ2VTdHJpbmcpOwor
ICAgIGlmICghc3RvcmFnZSkgeworICAgICAgICB0ZXN0RmFpbGVkKHN0b3JhZ2VTdHJpbmcgKyAi
IERPRVMgTk9UIGV4aXN0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZWJ1Zygi
VGVzdGluZyAiICsgc3RvcmFnZVN0cmluZyk7CisKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmNs
ZWFyKCkiKTsKKyAgICBzaG91bGRCZSgic3RvcmFnZS5sZW5ndGgiLCAiMCIpOworCisgICAgcnVu
QWZ0ZXJTdG9yYWdlRXZlbnRzKHN0ZXAxKTsKK30KKworZnVuY3Rpb24gc3RlcDEoKQoreworICAg
IGRlYnVnKCJSZXNldCBzdG9yYWdlIGV2ZW50IGxpc3QiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9y
YWdlRXZlbnRMaXN0ID0gbmV3IEFycmF5KCkiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZv
byA9ICcxMjMnIik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDIpOworfQorCitm
dW5jdGlvbiBzdGVwMigpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3Ro
IiwgIjEiKTsKKyAgICBkZWJ1ZygiU2F2aW5nIFVSSSIpOworICAgIHdpbmRvdy5sYXN0VVJJID0g
c3RvcmFnZUV2ZW50TGlzdFswXS51cmk7CisKKyAgICBldmFsQW5kTG9nKCJkb2N1bWVudC5kb2N1
bWVudFVSSSA9ICdhYmMnIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5k
b2N1bWVudFVSSSIsICJhYmMiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICd4eXon
Iik7CisKKyAgICBydW5BZnRlclN0b3JhZ2VFdmVudHMoc3RlcDMpOworfQorCitmdW5jdGlvbiBz
dGVwMygpCit7CisgICAgc2hvdWxkQmUoInN0b3JhZ2VFdmVudExpc3QubGVuZ3RoIiwgIjIiKTsK
KyAgICBzaG91bGRCZVRydWUoU3RyaW5nKHdpbmRvdy5sYXN0VVJJID09IHN0b3JhZ2VFdmVudExp
c3RbMV0udXJpKSk7CisKKyAgICBjb21wbGV0aW9uQ2FsbGJhY2soKTsKK30KKwordGVzdFN0b3Jh
Z2VzKHRlc3QpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTM3MTIpCisr
KyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVu
dHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDc5ICswLDAgQEAKLVRoaXMgaXMg
dGhlIG1haW4gZnJhbWUgb2YgYSAyLWZyYW1lIGRvY3VtZW50LiBFYWNoIGZyYW1lIGlzIGluIHRo
ZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhbmQgdGhlcmVmb3JlIHNoYXJlcyB0aGUgc2FtZSBsb2Nh
bFN0b3JhZ2Ugb2JqZWN0LiBBcyBhIHJlc3VsdCwgZWFjaCBmcmFtZSBzaG91bGQgcmVjZWl2ZSBh
IFN0b3JhZ2VFdmVudCB3aGVuIGVpdGhlciBmcmFtZSBjaGFuZ2VzIHRoZSBsb2NhbFN0b3JhZ2Ug
b2JqZWN0LgotCi1NYWluIGZyYW1lIGFib3V0IHRvIHJ1biBzZXRJdGVtIG9uIGxvY2FsU3RvcmFn
ZS4uLgotTWFpbiBGcmFtZSByZWNlaXZlZCBTdG9yYWdlRXZlbnQ6Ci1LZXkgLSBNYWluIEZyYW1l
Ci1OZXcgVmFsdWUgLSBTRVQKLU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdl
IEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UKLQotU3ViZnJhbWUgcmVj
ZWl2ZWQgc3RvcmFnZSBldmVudDoKLUtleSAtIE1haW4gRnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAot
T2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93
J3Mgd2luZG93LmxvY2FsU3RvcmFnZQotCi1TdWJmcmFtZSBhYm91dCB0byBjaGFuZ2UgbG9jYWxT
dG9yYWdlLi4uCi1NYWluIEZyYW1lIHJlY2VpdmVkIFN0b3JhZ2VFdmVudDoKLUtleSAtIFN1YmZy
YW1lCi1OZXcgVmFsdWUgLSBTRVQKLU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvcmVzb3VyY2VzL2lmcmFtZS1ldmVudHMt
c2Vjb25kLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3Rv
cmFnZQotCi1TdWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0gU3ViZnJhbWUK
LU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3Rv
cmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9yZXNvdXJjZXMvaWZyYW1lLWV2ZW50cy1zZWNv
bmQuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdl
Ci0KLU1haW4gZnJhbWUgYWJvdXQgdG8gcnVuIHJlbW92ZUl0ZW0gb24gbG9jYWxTdG9yYWdlLi4u
Ci1NYWluIEZyYW1lIHJlY2VpdmVkIFN0b3JhZ2VFdmVudDoKLUtleSAtIE1haW4gRnJhbWUKLU5l
dyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIFNFVAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwKLVN0b3JhZ2UgQXJl
YSAtIFRoaXMgd2luZG93J3Mgd2luZG93LmxvY2FsU3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZl
ZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0gTWFpbiBGcmFtZQotTmV3IFZhbHVlIC0gbnVsbAotT2xk
IFZhbHVlIC0gU0VUCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxz
dG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3
aW5kb3cubG9jYWxTdG9yYWdlCi0KLVN1YmZyYW1lIGFib3V0IHRvIGNoYW5nZSBsb2NhbFN0b3Jh
Z2UuLi4KLU1haW4gZnJhbWUgYWJvdXQgdG8gY2xlYXIgbG9jYWxTdG9yYWdlLi4uCi1NYWluIEZy
YW1lIHJlY2VpdmVkIFN0b3JhZ2VFdmVudDoKLUtleSAtIAotTmV3IFZhbHVlIC0gbnVsbAotT2xk
IFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fs
c3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mg
d2luZG93LmxvY2FsU3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50Ogot
S2V5IC0gCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAot
U3RvcmFnZSBBcmVhIC0gVGhpcyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLVN1YmZy
YW1lIGFib3V0IHRvIGNoYW5nZSBsb2NhbFN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVjZWl2ZWQg
U3RvcmFnZUV2ZW50OgotS2V5IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xkIFZhbHVl
IC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9yZXNvdXJjZXMvaWZyYW1lLWV2ZW50cy1zZWNvbmQuaHRtbAotU3RvcmFnZSBBcmVhIC0gVGhp
cyB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9yYWdlCi0KLVN1YmZyYW1lIHJlY2VpdmVkIHN0b3Jh
Z2UgZXZlbnQ6Ci1LZXkgLSBTdWJmcmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQgVmFsdWUgLSBu
dWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Jl
c291cmNlcy9pZnJhbWUtZXZlbnRzLXNlY29uZC5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdp
bmRvdydzIHdpbmRvdy5sb2NhbFN0b3JhZ2UKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVu
dHMuaHRtbAkocmV2aXNpb24gNTM3MTIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvbG9jYWxzdG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2
NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhckxv
Y2FsU3RvcmFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24g
bG9nKGEpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRN
TCArPSBhICsgIjxicj4iOwotfQotCi1mdW5jdGlvbiBub3JtYWxpemVVUkwodXJsKQotewotICAg
IHJldHVybiB1cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZigiTGF5b3V0VGVzdHMiKSk7Ci19
Ci0KLWZ1bmN0aW9uIGZpbmlzaCgpCi17Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCi19Ci0KLWZ1
bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudChlKQotewotICAgIGxvZygiTWFpbiBGcmFtZSByZWNl
aXZlZCBTdG9yYWdlRXZlbnQ6Iik7Ci0gICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGUua2V5
KTsKLSAgICBsb2coIk5ldyBWYWx1ZSAgICAgLSAiICsgZS5uZXdWYWx1ZSk7Ci0gICAgbG9nKCJP
bGQgVmFsdWUgICAgIC0gIiArIGUub2xkVmFsdWUpOwotICAgIGxvZygiVVJJICAgICAgICAgICAt
ICIgKyBub3JtYWxpemVVUkwoZS51cmkpKTsKLSAgICBsb2coIlN0b3JhZ2UgQXJlYSAgLSAiICsg
KChlLnN0b3JhZ2VBcmVhID09IHdpbmRvdy5sb2NhbFN0b3JhZ2UpID8gIlRoaXMgd2luZG93J3Mg
d2luZG93LmxvY2FsU3RvcmFnZSIgOiAiQW5vdGhlciB3aW5kb3cncyB3aW5kb3cubG9jYWxTdG9y
YWdlIikpOwotICAgIGxvZygiIik7Ci0gICAgCi0gICAgaWYgKGUua2V5ID09ICJTdWJmcmFtZSIp
Ci0gICAgICAgIGZpbmlzaCgpOwotfQotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGlm
ICghd2luZG93LmxvY2FsU3RvcmFnZSkgewotICAgICAgICBsb2coIndpbmRvdy5sb2NhbFN0b3Jh
Z2UgRE9FUyBOT1QgZXhpc3QiKTsKLSAgICAgICAgZmluaXNoKCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsIGhhbmRsZVN0
b3JhZ2VFdmVudCwgZmFsc2UpOwotICAgIGxvZygiTWFpbiBmcmFtZSBhYm91dCB0byBydW4gc2V0
SXRlbSBvbiBsb2NhbFN0b3JhZ2UuLi4iKTsKLSAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiTWFp
biBGcmFtZSIsICJTRVQiKTsKLSAgICBsb2coIk1haW4gZnJhbWUgYWJvdXQgdG8gcnVuIHJlbW92
ZUl0ZW0gb24gbG9jYWxTdG9yYWdlLi4uIik7Ci0gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0o
Ik1haW4gRnJhbWUiKTsKLSAgICBsb2coIk1haW4gZnJhbWUgYWJvdXQgdG8gY2xlYXIgbG9jYWxT
dG9yYWdlLi4uIik7Ci0gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7Ci19Ci0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKTsiPgotVGhpcyBpcyB0aGUgbWFpbiBm
cmFtZSBvZiBhIDItZnJhbWUgZG9jdW1lbnQuICBFYWNoIGZyYW1lIGlzIGluIHRoZSBzYW1lIHNl
Y3VyaXR5IG9yaWdpbiBhbmQgdGhlcmVmb3JlIHNoYXJlcyB0aGUgc2FtZSBsb2NhbFN0b3JhZ2Ug
b2JqZWN0LgotQXMgYSByZXN1bHQsIGVhY2ggZnJhbWUgc2hvdWxkIHJlY2VpdmUgYSBTdG9yYWdl
RXZlbnQgd2hlbiBlaXRoZXIgZnJhbWUgY2hhbmdlcyB0aGUgbG9jYWxTdG9yYWdlIG9iamVjdC48
YnI+Ci08aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZS1ldmVudHMtc2Vjb25kLmh0bWwiPjwv
aWZyYW1lPjxicj4KLTxkaXYgaWQ9ImxvZ2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdl
dC1hbmQtc2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gNTM3MTIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxz
dG9yYWdlL2luZGV4LWdldC1hbmQtc2V0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSw1NCArMSwyOSBAQAogVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIHlvdSBjYW4gZ2V0IGFu
ZCBzZXQgdmFsdWVzIGluIGxvY2FsU3RvcmFnZSBieSBpbmRleC4KIFNldHRpbmcgRk9PIHVzaW5n
IHRoZSBpbmRleCBzZXR0ZXIuCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcg
VmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLQogUmVhZGluZyBGT086CiBCQVIKIEJBUgog
QkFSCiAKIFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyBzZXRJdGVtLgotU3RvcmFnZSBldmVudCBm
aXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFaCi1PbGQgVmFsdWUgLSBCQVIKLQogUmVh
ZGluZyBGT086CiBCQVoKIEJBWgogQkFaCiAKIFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyB0aGUg
aW5kZXggc2V0dGVyLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVl
IC0gQkFUCi1PbGQgVmFsdWUgLSBCQVoKLQogUmVhZGluZyBGT086CiBCQVQKIEJBVAogQkFUCiAK
IFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyBwcm9wZXJ0eS1zbG90IHN5bnRheAotU3RvcmFnZSBl
dmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFUTUFOCi1PbGQgVmFsdWUgLSBC
QVQKLQogUmVhZGluZyBGT086CiBCQVRNQU4KIEJBVE1BTgogQkFUTUFOCiAKIFJlbW92aW5nIEZP
TywgdGhlbiB0cnlpbmcgdG8gcmVhZCBpdAotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZP
TwotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFUTUFOCi0KIFJlYWRpbmcgRk9POgog
dW5kZWZpbmVkCiB1bmRlZmluZWQKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0
Lmh0bWwJKHJldmlzaW9uIDUzNzEyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
OSwxNSArMTksNiBAQCBmdW5jdGlvbiBmaW5pc2goKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCkKIH0KIAotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50KGUpCi17
Ci0gICAgbG9nKCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAgICAgICAg
ICAtICIgKyBlLmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGUubmV3VmFsdWUp
OwotICAgIGxvZygiT2xkIFZhbHVlICAgICAtICIgKyBlLm9sZFZhbHVlKTsKLSAgICBsb2coIiIp
OwotfQotCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3Jh
Z2UpIHsKQEAgLTM2LDggKzI3LDYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgCi0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCBo
YW5kbGVTdG9yYWdlRXZlbnQsIGZhbHNlKTsKLSAgICAKICAgICBsb2coIlNldHRpbmcgRk9PIHVz
aW5nIHRoZSBpbmRleCBzZXR0ZXIuIik7CiAgICAgbG9jYWxTdG9yYWdlWyJGT08iXSA9ICJCQVIi
OwogICAgIGxvZygiUmVhZGluZyBGT086Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxz
dG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
NTM3MTIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29u
c3RvcmFnZS1hdHRyaWJ1dGUtbWFya3VwLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwyMiArMCwwIEBACi1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgbG9jYWxTdG9yYWdlIG11
dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBs
aXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdlLiBUaGUgZXZlbnQgbGlzdGVu
ZXIgaXMgc2V0dXAgaW4gdGhlIGJvZHkgZWxlbWVudCdzIG1hcmt1cC4KLVN0b3JhZ2UgZXZlbnQg
ZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1T
dG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVl
IC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBu
dWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1O
ZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFya3Vw
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fs
c3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLW1hcmt1cC5odG1sCShyZXZpc2lvbiA1MzcxMikK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdl
LWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhckxvY2FsU3RvcmFnZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24gbG9n
KGEpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCAr
PSBhICsgIjxicj4iOwotfQotCi1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoKQotewotICAg
IGlmICghd2luZG93LmV2ZW50KSB7Ci0gICAgICAgIGxvZygiR2xvYmFsIGV2ZW50IG5vdCBhdmFp
bGFibGUuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgbG9nKCJTdG9yYWdl
IGV2ZW50IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAgICAgICAgICAtICIgKyBldmVudC5rZXkp
OwotICAgIGxvZygiTmV3IFZhbHVlICAgICAtICIgKyBldmVudC5uZXdWYWx1ZSk7Ci0gICAgbG9n
KCJPbGQgVmFsdWUgICAgIC0gIiArIGV2ZW50Lm9sZFZhbHVlKTsKLSAgICBsb2coIiIpOwotfQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsK
LSAgICAgICAgbG9nKCJ3aW5kb3cubG9jYWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVt
KCJGT08iLCAiQkFSIik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJGVSIsICJC
QVIiKTsKLSAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIkZPTyIpOwotICAgIHdp
bmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiIG9uc3RvcmFnZT0iaGFuZGxlU3RvcmFnZUV2
ZW50KCk7Ij4KLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBsb2NhbFN0b3JhZ2UgbXV0YXRp
b25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3Rl
bmVyIGNvcnJlc3BvbmRpbmcgdG8gYm9keS5vbnN0b3JhZ2UuICBUaGUgZXZlbnQgbGlzdGVuZXIg
aXMgc2V0dXAgaW4gdGhlIGJvZHkgZWxlbWVudCdzIG1hcmt1cC48YnI+Ci08ZGl2IGlkPSJsb2dn
ZXIiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDUzNzEyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBAQAotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBz
dXJlIExvY2FsU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNh
dWdodCBieSB0aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9uZGluZyB0byBib2R5Lm9uc3RvcmFn
ZS4gVGhlIGV2ZW50IGxpc3RlbmVyIGlzIHNldHVwIHZpYSBib2R5LnNldEF0dHJpYnV0ZSgpLgot
U3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFs
dWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0g
QkFSCi1PbGQgVmFsdWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08K
LU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotCi1TdG9yYWdlIGV2ZW50IGZpcmVk
OgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotCi0KSW5kZXg6
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0
dHJpYnV0ZS1zZXRhdHRyaWJ1dGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0cmli
dXRlLmh0bWwJKHJldmlzaW9uIDUzNzEyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2NsZWFyTG9jYWxTdG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0
aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnQpIHsKLSAg
ICAgICAgbG9nKCJHbG9iYWwgZXZlbnQgbm90IGF2YWlsYWJsZS4iKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICAKLSAgICBsb2coIlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9n
KCJLZXkgICAgICAgICAgIC0gIiArIGV2ZW50LmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAg
IC0gIiArIGV2ZW50Lm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZXZl
bnQub2xkVmFsdWUpOwotICAgIGxvZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewot
ICAgIGlmICghd2luZG93LmxvY2FsU3RvcmFnZSkgewotICAgICAgICBsb2coIndpbmRvdy5sb2Nh
bFN0b3JhZ2UgRE9FUyBOT1QgZXhpc3QiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAK
LSAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgib25zdG9yYWdlIiwgImhhbmRsZVN0b3Jh
Z2VFdmVudCgpOyIpOwotICAgIAotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiRk9P
IiwgIkJBUiIpOwotICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiRlUiLCAiQkFSIik7
Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAgICB3aW5kb3cu
bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBM
b2NhbFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQg
YnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gYm9keS5vbnN0b3JhZ2UuICBU
aGUgZXZlbnQgbGlzdGVuZXIgaXMgc2V0dXAgdmlhIGJvZHkuc2V0QXR0cmlidXRlKCkuPGJyPgot
PGRpdiBpZD0ibG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1z
ZXR3aW5kb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3ctZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA1MzcxMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3ctZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0IHRvIG1h
a2Ugc3VyZSBMb2NhbFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3RvcmFnZUV2ZW50cyB0aGF0IGFy
ZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3BvbmRpbmcgdG8gd2luZG93Lm9u
c3RvcmFnZS4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJB
UgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5l
dyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgot
S2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotU3RvcmFnZSBl
dmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIK
LQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL29u
c3RvcmFnZS1hdHRyaWJ1dGUtc2V0d2luZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNl
dHdpbmRvdy5odG1sCShyZXZpc2lvbiA1MzcxMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw0OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jbGVhckxvY2FsU3RvcmFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24gbG9nKGEpCi17Ci0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCArPSBhICsgIjxicj4iOwotfQotCi1mdW5j
dGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoKQotewotICAgIGlmICghd2luZG93LmV2ZW50KSB7Ci0g
ICAgICAgIGxvZygiR2xvYmFsIGV2ZW50IG5vdCBhdmFpbGFibGUuIik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgCi0gICAgbG9nKCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIpOwotICAgIGxv
ZygiS2V5ICAgICAgICAgICAtICIgKyBldmVudC5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAg
ICAtICIgKyBldmVudC5uZXdWYWx1ZSk7Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiArIGV2
ZW50Lm9sZFZhbHVlKTsKLSAgICBsb2coIiIpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsK
LSAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cubG9j
YWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICB3aW5kb3cub25zdG9yYWdlID0gaGFuZGxlU3RvcmFnZUV2ZW50OwotICAgIAotICAgIHdpbmRv
dy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiRk9PIiwgIkJBUiIpOwotICAgIHdpbmRvdy5sb2NhbFN0
b3JhZ2Uuc2V0SXRlbSgiRlUiLCAiQkFSIik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1v
dmVJdGVtKCJGT08iKTsKLSAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLVRo
aXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBMb2NhbFN0b3JhZ2UgbXV0YXRpb25zIGZpcmUgU3Rv
cmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJlc3Bv
bmRpbmcgdG8gd2luZG93Lm9uc3RvcmFnZS48YnI+Ci08ZGl2IGlkPSJsb2dnZXIiPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zaW1wbGUtZXZlbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3NpbXBsZS1ldmVudHMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA1MzcxMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2Uvc2ltcGxlLWV2ZW50cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMjYgKzAsMCBAQAotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJlIGxvY2FsU3Rv
cmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgot
S2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLUV2ZW50IGhhcyBh
IFVSSQotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgot
T2xkIFZhbHVlIC0gbnVsbAotRXZlbnQgaGFzIGEgVVJJCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6
Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotRXZlbnQgaGFz
IGEgVVJJCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gbnVs
bAotT2xkIFZhbHVlIC0gQkFSCi1FdmVudCBoYXMgYSBVUkkKLQotCkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3NpbXBsZS1ldmVudHMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Np
bXBsZS1ldmVudHMuaHRtbAkocmV2aXNpb24gNTM3MTIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3NpbXBsZS1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSw1NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jbGVhckxvY2FsU3RvcmFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQot
ZnVuY3Rpb24gbG9nKGEpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIp
LmlubmVySFRNTCArPSBhICsgIjxicj4iOwotfQotCi1mdW5jdGlvbiBmaW5pc2goKQotewotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKQotfQotCi1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoZSkK
LXsKLSAgICBsb2coIlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkgICAgICAg
ICAgIC0gIiArIGUua2V5KTsKLSAgICBsb2coIk5ldyBWYWx1ZSAgICAgLSAiICsgZS5uZXdWYWx1
ZSk7Ci0gICAgbG9nKCJPbGQgVmFsdWUgICAgIC0gIiArIGUub2xkVmFsdWUpOwotICAgIGlmIChl
LnVyaSkKLSAgICAgICAgbG9nKCJFdmVudCBoYXMgYSBVUkkiKTsKLSAgICBsb2coIiIpOwotfQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsK
LSAgICAgICAgbG9nKCJ3aW5kb3cubG9jYWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAg
ICAgIGZpbmlzaCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwgaGFuZGxlU3RvcmFnZUV2ZW50LCBmYWxzZSk7Ci0K
LSAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oIkZPTyIsICJCQVIiKTsKLSAgICB3aW5k
b3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oIkZVIiwgIkJBUiIpOwotICAgIHdpbmRvdy5sb2NhbFN0
b3JhZ2UucmVtb3ZlSXRlbSgiRk9PIik7Ci0gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJ
dGVtKCJGVSIpOwotICAgIAotICAgIGZpbmlzaCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci1UaGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUg
bG9jYWxTdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHM8YnI+Ci08ZGl2IGlkPSJs
b2dnZXIiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9jb21wbGV4LXZhbHVlcy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2NvbXBsZXgtdmFs
dWVzLmpzCShyZXZpc2lvbiA1MzcxMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9zY3JpcHQtdGVzdHMvY29tcGxleC12YWx1ZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAg
KzEsNSBAQAogZGVzY3JpcHRpb24oIlRlc3Qgc29tZSBjb3JuZXIgY2FzZSBET00gU3RvcmFnZSB2
YWx1ZXMuIik7CiAKLWV2ZW50Q291bnRlciA9IDA7Ci1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZl
bnQoKSB7Ci0gICAgZXZlbnRDb3VudGVyKys7Ci19Ci0KIGZ1bmN0aW9uIHRlc3RLZXlWYWx1ZShr
ZXksIHZhbHVlKQogewogICAgIGtleVN0cmluZyA9ICJzdG9yYWdlWyciICsga2V5ICsgIiddIjsK
QEAgLTczLDIxICs2OCw2IEBAIGZ1bmN0aW9uIHRlc3Qoc3RvcmFnZVN0cmluZykKICAgICB0ZXN0
S2V5VmFsdWUoImZvbzExIiwgayk7CiAgICAgZXZhbEFuZExvZygic3RvcmFnZS5zZXRJdGVtKCdm
b28xMicsIGspIik7CiAgICAgdGVzdEtleVZhbHVlKCJmb28xMiIsIGspOwotCi0gICAgZGVidWco
IiIpOwotICAgIGRlYnVnKCJWZXJpZnkgc3RvcmFnZSBldmVudHMgYXJlIGNhc2Ugc2Vuc2l0aXZl
Iik7Ci0gICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28gPSAndGVzdCciKTsKLSAgICBkZWJ1Zygi
U2V0dGluZyBldmVudCBsaXN0ZW5lciIpOwotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJz
dG9yYWdlIiwgaGFuZGxlU3RvcmFnZUV2ZW50LCBmYWxzZSk7Ci0gICAgc2hvdWxkQmUoImV2ZW50
Q291bnRlciIsICIwIik7Ci0gICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28gPSAndGVzdCciKTsK
LSAgICBzaG91bGRCZSgiZXZlbnRDb3VudGVyIiwgIjAiKTsKLSAgICBldmFsQW5kTG9nKCJzdG9y
YWdlLmZvbyA9ICdURVNUJyIpOwotICAgIHNob3VsZEJlKCJldmVudENvdW50ZXIiLCAiMSIpOwot
Ci0gICAgLy8gUmVzZXQgdGhlIGNvdW50ZXIgZm9yIG5leHQgdGVzdHMgKGlmIGFueSkuCi0gICAg
d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCBoYW5kbGVTdG9yYWdlRXZlbnQs
IGZhbHNlKTsKLSAgICBldmVudENvdW50ZXIgPSAwOwogfQogCiB0ZXN0KCJzZXNzaW9uU3RvcmFn
ZSIpOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9k
b2N1bWVudFVSSS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2Uvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzCShyZXZpc2lvbiA1MzcxMikKKysrIExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHdv
cmtpbmcgY29weSkKQEAgLTEsNTAgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBjaGFu
Z2luZyBkb2N1bWVudFVSSSBoYXMgbm8gZWZmZWN0cyBvbiBzdG9yYWdlIGV2ZW50cy4iKTsKLQot
ZnVuY3Rpb24gdGVzdChzdG9yYWdlU3RyaW5nKQotewotICAgIHdpbmRvdy5zdG9yYWdlID0gZXZh
bChzdG9yYWdlU3RyaW5nKTsKLSAgICBpZiAoIXN0b3JhZ2UpIHsKLSAgICAgICAgdGVzdEZhaWxl
ZChzdG9yYWdlU3RyaW5nICsgIiBET0VTIE5PVCBleGlzdCIpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgZGVidWcoIlRlc3RpbmcgIiArIHN0b3JhZ2VTdHJpbmcpOwotCi0gICAgd2lu
ZG93Lm9uc3RvcmFnZSA9IG51bGw7Ci0gICAgZXZhbEFuZExvZygic3RvcmFnZS5jbGVhcigpIik7
Ci0gICAgc2hvdWxkQmUoInN0b3JhZ2UubGVuZ3RoIiwgIjAiKTsKLQotICAgIGV2YWxBbmRMb2co
IndpbmRvdy5vbnN0b3JhZ2UgPSBmaXJzdEV2ZW50Iik7Ci0gICAgZXZhbEFuZExvZygic3RvcmFn
ZS5mb28gPSAnMTIzJyIpOwotfQotCi1mdW5jdGlvbiBmaXJzdEV2ZW50KGUpCi17Ci0gICAgZGVi
dWcoIkZpcnN0IGV2ZW50IGZpcmVkIik7Ci0gICAgZGVidWcoIlNhdmluZyBVUkkiKTsKLSAgICB3
aW5kb3cubGFzdFVSSSA9IGUudXJpOwotCi0gICAgZXZhbEFuZExvZygiZG9jdW1lbnQuZG9jdW1l
bnRVUkkgPSAnYWJjJyIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZG9j
dW1lbnRVUkkiLCAiYWJjIik7Ci0KLSAgICBldmFsQW5kTG9nKCJ3aW5kb3cub25zdG9yYWdlID0g
c2Vjb25kRXZlbnQiKTsKLSAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9ICd4eXonIik7Ci19
Ci0KLWZ1bmN0aW9uIHNlY29uZEV2ZW50KGUpCi17Ci0gICAgZGVidWcoIlNlY29uZCBldmVudCBm
aXJlZCIpOwotICAgIHNob3VsZEJlVHJ1ZShTdHJpbmcod2luZG93Lmxhc3RVUkkgPT0gZS51cmkp
KTsKLQotICAgIGlmIChkb25lKSB7Ci0gICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwotICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgIH0KLX0KLQotd2lu
ZG93LmRvbmUgPSBmYWxzZTsKLXRlc3QoInNlc3Npb25TdG9yYWdlIik7Ci1kZWJ1ZygiIik7Ci1k
ZWJ1ZygiIik7Ci13aW5kb3cuZG9uZSA9IHRydWU7Ci10ZXN0KCJsb2NhbFN0b3JhZ2UiKTsKSW5k
ZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pZnJhbWUt
ZXZlbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDUzNzEyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9y
YWdlL2lmcmFtZS1ldmVudHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDc5ICsw
LDAgQEAKLVRoaXMgaXMgdGhlIG1haW4gZnJhbWUgb2YgYSAyLWZyYW1lIGRvY3VtZW50LiBFYWNo
IGZyYW1lIGlzIGluIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhbmQgdGhlcmVmb3JlIHNoYXJl
cyB0aGUgc2FtZSBzZXNzaW9uU3RvcmFnZSBvYmplY3QuIEFzIGEgcmVzdWx0LCBlYWNoIGZyYW1l
IHNob3VsZCByZWNlaXZlIGEgU3RvcmFnZUV2ZW50IHdoZW4gZWl0aGVyIGZyYW1lIGNoYW5nZXMg
dGhlIHNlc3Npb25TdG9yYWdlIG9iamVjdC4KLQotTWFpbiBmcmFtZSBhYm91dCB0byBydW4gc2V0
SXRlbSBvbiBzZXNzaW9uU3RvcmFnZS4uLgotTWFpbiBGcmFtZSByZWNlaXZlZCBTdG9yYWdlRXZl
bnQ6Ci1LZXkgLSBNYWluIEZyYW1lCi1OZXcgVmFsdWUgLSBTRVQKLU9sZCBWYWx1ZSAtIG51bGwK
LVVSSSAtIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pZnJh
bWUtZXZlbnRzLmh0bWwKLVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LnNlc3Np
b25TdG9yYWdlCi0KLVN1YmZyYW1lIHJlY2VpdmVkIHN0b3JhZ2UgZXZlbnQ6Ci1LZXkgLSBNYWlu
IEZyYW1lCi1OZXcgVmFsdWUgLSBTRVQKLU9sZCBWYWx1ZSAtIG51bGwKLVVSSSAtIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0bWwK
LVN0b3JhZ2UgQXJlYSAtIFRoaXMgd2luZG93J3Mgd2luZG93LnNlc3Npb25TdG9yYWdlCi0KLVN1
YmZyYW1lIGFib3V0IHRvIGNoYW5nZSBzZXNzaW9uU3RvcmFnZS4uLgotTWFpbiBGcmFtZSByZWNl
aXZlZCBTdG9yYWdlRXZlbnQ6Ci1LZXkgLSBTdWJmcmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQg
VmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lv
bnN0b3JhZ2UvcmVzb3VyY2VzL2lmcmFtZS1ldmVudHMtc2Vjb25kLmh0bWwKLVN0b3JhZ2UgQXJl
YSAtIFRoaXMgd2luZG93J3Mgd2luZG93LnNlc3Npb25TdG9yYWdlCi0KLVN1YmZyYW1lIHJlY2Vp
dmVkIHN0b3JhZ2UgZXZlbnQ6Ci1LZXkgLSBTdWJmcmFtZQotTmV3IFZhbHVlIC0gU0VUCi1PbGQg
VmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lv
bnN0b3JhZ2UvcmVzb3VyY2VzL2lmcmFtZS1ldmVudHMtc2Vjb25kLmh0bWwKLVN0b3JhZ2UgQXJl
YSAtIFRoaXMgd2luZG93J3Mgd2luZG93LnNlc3Npb25TdG9yYWdlCi0KLU1haW4gZnJhbWUgYWJv
dXQgdG8gcnVuIHJlbW92ZUl0ZW0gb24gc2Vzc2lvblN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVj
ZWl2ZWQgU3RvcmFnZUV2ZW50OgotS2V5IC0gTWFpbiBGcmFtZQotTmV3IFZhbHVlIC0gbnVsbAot
T2xkIFZhbHVlIC0gU0VUCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vz
c2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRv
dydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2
ZW50OgotS2V5IC0gTWFpbiBGcmFtZQotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gU0VU
Ci1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZy
YW1lLWV2ZW50cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNz
aW9uU3RvcmFnZQotCi1TdWJmcmFtZSBhYm91dCB0byBjaGFuZ2Ugc2Vzc2lvblN0b3JhZ2UuLi4K
LU1haW4gZnJhbWUgYWJvdXQgdG8gY2xlYXIgc2Vzc2lvblN0b3JhZ2UuLi4KLU1haW4gRnJhbWUg
cmVjZWl2ZWQgU3RvcmFnZUV2ZW50OgotS2V5IC0gCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFs
dWUgLSBudWxsCi1VUkkgLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0
b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCi1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdp
bmRvdy5zZXNzaW9uU3RvcmFnZQotCi1TdWJmcmFtZSByZWNlaXZlZCBzdG9yYWdlIGV2ZW50Ogot
S2V5IC0gCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBudWxsCi1VUkkgLSBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1s
Ci1TdG9yYWdlIEFyZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQotCi1T
dWJmcmFtZSBhYm91dCB0byBjaGFuZ2Ugc2Vzc2lvblN0b3JhZ2UuLi4KLU1haW4gRnJhbWUgcmVj
ZWl2ZWQgU3RvcmFnZUV2ZW50OgotS2V5IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xk
IFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Np
b25zdG9yYWdlL3Jlc291cmNlcy9pZnJhbWUtZXZlbnRzLXNlY29uZC5odG1sCi1TdG9yYWdlIEFy
ZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQotCi1TdWJmcmFtZSByZWNl
aXZlZCBzdG9yYWdlIGV2ZW50OgotS2V5IC0gU3ViZnJhbWUKLU5ldyBWYWx1ZSAtIFNFVAotT2xk
IFZhbHVlIC0gbnVsbAotVVJJIC0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Np
b25zdG9yYWdlL3Jlc291cmNlcy9pZnJhbWUtZXZlbnRzLXNlY29uZC5odG1sCi1TdG9yYWdlIEFy
ZWEgLSBUaGlzIHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZQotCi0KSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pZnJhbWUtZXZlbnRzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25z
dG9yYWdlL2lmcmFtZS1ldmVudHMuaHRtbAkocmV2aXNpb24gNTM3MTIpCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaWZyYW1lLWV2ZW50cy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDY2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3JhZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Ci19Ci0KLWZ1bmN0aW9uIGxvZyhhKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJsb2dnZXIiKS5pbm5lckhUTUwgKz0gYSArICI8YnI+IjsKLX0KLQotZnVuY3Rpb24gbm9y
bWFsaXplVVJMKHVybCkKLXsKLSAgICByZXR1cm4gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4
T2YoIkxheW91dFRlc3RzIikpOwotfQotCi1mdW5jdGlvbiBmaW5pc2goKQotewotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKQotfQotCi1mdW5jdGlvbiBoYW5kbGVTdG9yYWdlRXZlbnQoZSkKLXsKLSAg
ICBsb2coIk1haW4gRnJhbWUgcmVjZWl2ZWQgU3RvcmFnZUV2ZW50OiIpOwotICAgIGxvZygiS2V5
ICAgICAgICAgICAtICIgKyBlLmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGUu
bmV3VmFsdWUpOwotICAgIGxvZygiT2xkIFZhbHVlICAgICAtICIgKyBlLm9sZFZhbHVlKTsKLSAg
ICBsb2coIlVSSSAgICAgICAgICAgLSAiICsgbm9ybWFsaXplVVJMKGUudXJpKSk7Ci0gICAgbG9n
KCJTdG9yYWdlIEFyZWEgIC0gIiArICgoZS5zdG9yYWdlQXJlYSA9PSB3aW5kb3cuc2Vzc2lvblN0
b3JhZ2UpID8gIlRoaXMgd2luZG93J3Mgd2luZG93LnNlc3Npb25TdG9yYWdlIiA6ICJBbm90aGVy
IHdpbmRvdydzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZSIpKTsKLSAgICBsb2coIiIpOwotICAgIAot
ICAgIGlmIChlLmtleSA9PSAiU3ViZnJhbWUiKQotICAgICAgICBmaW5pc2goKTsKLX0KLQotZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBpZiAoIXdpbmRvdy5zZXNzaW9uU3RvcmFnZSkgewot
ICAgICAgICBsb2coIndpbmRvdy5zZXNzaW9uU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwotICAg
ICAgICBmaW5pc2goKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAKLSAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsIGhhbmRsZVN0b3JhZ2VFdmVudCwgZmFsc2UpOwotICAg
IGxvZygiTWFpbiBmcmFtZSBhYm91dCB0byBydW4gc2V0SXRlbSBvbiBzZXNzaW9uU3RvcmFnZS4u
LiIpOwotICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIk1haW4gRnJhbWUiLCAiU0VUIik7Ci0g
ICAgbG9nKCJNYWluIGZyYW1lIGFib3V0IHRvIHJ1biByZW1vdmVJdGVtIG9uIHNlc3Npb25TdG9y
YWdlLi4uIik7Ci0gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiTWFpbiBGcmFtZSIpOwot
ICAgIGxvZygiTWFpbiBmcmFtZSBhYm91dCB0byBjbGVhciBzZXNzaW9uU3RvcmFnZS4uLiIpOwot
ICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJzdGFydFRlc3QoKTsiPgotVGhpcyBpcyB0aGUgbWFpbiBmcmFtZSBvZiBhIDIt
ZnJhbWUgZG9jdW1lbnQuICBFYWNoIGZyYW1lIGlzIGluIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdp
biBhbmQgdGhlcmVmb3JlIHNoYXJlcyB0aGUgc2FtZSBzZXNzaW9uU3RvcmFnZSBvYmplY3QuCi1B
cyBhIHJlc3VsdCwgZWFjaCBmcmFtZSBzaG91bGQgcmVjZWl2ZSBhIFN0b3JhZ2VFdmVudCB3aGVu
IGVpdGhlciBmcmFtZSBjaGFuZ2VzIHRoZSBzZXNzaW9uU3RvcmFnZSBvYmplY3QuPGJyPgotPGlm
cmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUtZXZlbnRzLXNlY29uZC5odG1sIj48L2lmcmFtZT48
YnI+Ci08ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2luZGV4LWdldC1hbmQt
c2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA1MzcxMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3Rv
cmFnZS9pbmRleC1nZXQtYW5kLXNldC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
NTQgKzEsMjkgQEAKIFRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB5b3UgY2FuIGdldCBhbmQg
c2V0IHZhbHVlcyBpbiBTZXNzaW9uU3RvcmFnZSBieSBpbmRleC4KIFNldHRpbmcgRk9PIHVzaW5n
IHRoZSBpbmRleCBzZXR0ZXIuCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcg
VmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLQogUmVhZGluZyBGT086CiBCQVIKIEJBUgog
QkFSCiAKIFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyBzZXRJdGVtLgotU3RvcmFnZSBldmVudCBm
aXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFaCi1PbGQgVmFsdWUgLSBCQVIKLQogUmVh
ZGluZyBGT086CiBCQVoKIEJBWgogQkFaCiAKIFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyB0aGUg
aW5kZXggc2V0dGVyLgotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVl
IC0gQkFUCi1PbGQgVmFsdWUgLSBCQVoKLQogUmVhZGluZyBGT086CiBCQVQKIEJBVAogQkFUCiAK
IFNldHRpbmcgRk9PIGFnYWluLCB1c2luZyBwcm9wZXJ0eS1zbG90IHN5bnRheAotU3RvcmFnZSBl
dmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFUTUFOCi1PbGQgVmFsdWUgLSBC
QVQKLQogUmVhZGluZyBGT086CiBCQVRNQU4KIEJBVE1BTgogQkFUTUFOCiAKIFJlbW92aW5nIEZP
TywgdGhlbiB0cnlpbmcgdG8gcmVhZCBpdAotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZP
TwotTmV3IFZhbHVlIC0gbnVsbAotT2xkIFZhbHVlIC0gQkFUTUFOCi0KIFJlYWRpbmcgRk9POgog
dW5kZWZpbmVkCiB1bmRlZmluZWQKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQtYW5k
LXNldC5odG1sCShyZXZpc2lvbiA1MzcxMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9zZXNzaW9uc3RvcmFnZS9pbmRleC1nZXQtYW5kLXNldC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xOSwxNSArMTksNiBAQCBmdW5jdGlvbiBmaW5pc2goKQogICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCkKIH0KIAotZnVuY3Rpb24gaGFuZGxlU3RvcmFnZUV2ZW50
KGUpCi17Ci0gICAgbG9nKCJTdG9yYWdlIGV2ZW50IGZpcmVkOiIpOwotICAgIGxvZygiS2V5ICAg
ICAgICAgICAtICIgKyBlLmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGUubmV3
VmFsdWUpOwotICAgIGxvZygiT2xkIFZhbHVlICAgICAtICIgKyBlLm9sZFZhbHVlKTsKLSAgICBs
b2coIiIpOwotfQotCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBpZiAoIXdpbmRvdy5zZXNz
aW9uU3RvcmFnZSkgewpAQCAtMzYsOCArMjcsNiBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3Rv
cmFnZSIsIGhhbmRsZVN0b3JhZ2VFdmVudCwgZmFsc2UpOwotICAgIAogICAgIGxvZygiU2V0dGlu
ZyBGT08gdXNpbmcgdGhlIGluZGV4IHNldHRlci4iKTsKICAgICBzZXNzaW9uU3RvcmFnZVsiRk9P
Il0gPSAiQkFSIjsKICAgICBsb2coIlJlYWRpbmcgRk9POiIpOwpJbmRleDogTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUtbWFy
a3VwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA1MzcxMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
ZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLW1hcmt1cC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBAQAotVGhpcyBpcyBhIHRlc3QgdG8gbWFrZSBzdXJl
IFNlc3Npb25TdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhhdCBhcmUgY2F1
Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHkub25zdG9yYWdl
LiBUaGUgZXZlbnQgbGlzdGVuZXIgaXMgc2V0dXAgaW4gdGhlIGJvZHkgZWxlbWVudCdzIG1hcmt1
cC4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xk
IFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1
ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0g
Rk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotU3RvcmFnZSBldmVudCBm
aXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9y
YWdlLWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAu
aHRtbAkocmV2aXNpb24gNTM3MTIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
c2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1tYXJrdXAuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotCi1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9uIGhh
bmRsZVN0b3JhZ2VFdmVudCgpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnQpIHsKLSAgICAgICAg
bG9nKCJHbG9iYWwgZXZlbnQgbm90IGF2YWlsYWJsZS4iKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICAKLSAgICBsb2coIlN0b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkg
ICAgICAgICAgIC0gIiArIGV2ZW50LmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiAr
IGV2ZW50Lm5ld1ZhbHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZXZlbnQub2xk
VmFsdWUpOwotICAgIGxvZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlm
ICghd2luZG93LnNlc3Npb25TdG9yYWdlKSB7Ci0gICAgICAgIGxvZygid2luZG93LnNlc3Npb25T
dG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0g
ICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZPTyIsICJCQVIiKTsKLSAgICB3aW5k
b3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiRlUiLCAiQkFSIik7Ci0gICAgd2luZG93LnNlc3Np
b25TdG9yYWdlLnJlbW92ZUl0ZW0oIkZPTyIpOwotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5y
ZW1vdmVJdGVtKCJGVSIpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpOyIgb25zdG9yYWdlPSJoYW5kbGVTdG9yYWdlRXZlbnQoKTsiPgotVGhpcyBpcyBh
IHRlc3QgdG8gbWFrZSBzdXJlIFNlc3Npb25TdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VF
dmVudHMgdGhhdCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5n
IHRvIGJvZHkub25zdG9yYWdlLiAgVGhlIGV2ZW50IGxpc3RlbmVyIGlzIHNldHVwIGluIHRoZSBi
b2R5IGVsZW1lbnQncyBtYXJrdXAuPGJyPgotPGRpdiBpZD0ibG9nZ2VyIj48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9u
c3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdl
L29uc3RvcmFnZS1hdHRyaWJ1dGUtc2V0YXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
NTM3MTIpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uv
b25zdG9yYWdlLWF0dHJpYnV0ZS1zZXRhdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBTZXNzaW9u
U3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzIHRoYXQgYXJlIGNhdWdodCBieSB0
aGUgZXZlbnQgbGlzdGVuZXIgY29ycmVzcG9uZGluZyB0byBib2R5Lm9uc3RvcmFnZS4gVGhlIGV2
ZW50IGxpc3RlbmVyIGlzIHNldHVwIHZpYSBib2R5LnNldEF0dHJpYnV0ZSgpLgotU3RvcmFnZSBl
dmVudCBmaXJlZDoKLUtleSAtIEZPTwotTmV3IFZhbHVlIC0gQkFSCi1PbGQgVmFsdWUgLSBudWxs
Ci0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gQkFSCi1PbGQg
VmFsdWUgLSBudWxsCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGT08KLU5ldyBWYWx1
ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0g
RlUKLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotCi0KSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRl
LXNldGF0dHJpYnV0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5o
dG1sCShyZXZpc2lvbiA1MzcxMikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
ZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmlidXRlLXNldGF0dHJpYnV0ZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3JhZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0aW9uIGxvZyhhKQotewotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5lckhUTUwgKz0gYSArICI8YnI+IjsKLX0KLQotZnVuY3Rp
b24gaGFuZGxlU3RvcmFnZUV2ZW50KCkKLXsKLSAgICBpZiAoIXdpbmRvdy5ldmVudCkgewotICAg
ICAgICBsb2coIkdsb2JhbCBldmVudCBub3QgYXZhaWxhYmxlLiIpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIAotICAgIGxvZygiU3RvcmFnZSBldmVudCBmaXJlZDoiKTsKLSAgICBsb2co
IktleSAgICAgICAgICAgLSAiICsgZXZlbnQua2V5KTsKLSAgICBsb2coIk5ldyBWYWx1ZSAgICAg
LSAiICsgZXZlbnQubmV3VmFsdWUpOwotICAgIGxvZygiT2xkIFZhbHVlICAgICAtICIgKyBldmVu
dC5vbGRWYWx1ZSk7Ci0gICAgbG9nKCIiKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0g
ICAgaWYgKCF3aW5kb3cuc2Vzc2lvblN0b3JhZ2UpIHsKLSAgICAgICAgbG9nKCJ3aW5kb3cuc2Vz
c2lvblN0b3JhZ2UgRE9FUyBOT1QgZXhpc3QiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICAKLSAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgib25zdG9yYWdlIiwgImhhbmRsZVN0
b3JhZ2VFdmVudCgpOyIpOwotICAgIAotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVt
KCJGT08iLCAiQkFSIik7Ci0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZVIiwg
IkJBUiIpOwotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAg
ICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8g
bWFrZSBzdXJlIFNlc3Npb25TdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhh
dCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIGJvZHku
b25zdG9yYWdlLiAgVGhlIGV2ZW50IGxpc3RlbmVyIGlzIHNldHVwIHZpYSBib2R5LnNldEF0dHJp
YnV0ZSgpLjxicj4KLTxkaXYgaWQ9ImxvZ2dlciI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9y
YWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9vbnN0b3JhZ2UtYXR0cmli
dXRlLXNldHdpbmRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDUzNzEyKQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL29uc3RvcmFnZS1hdHRyaWJ1dGUt
c2V0d2luZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi1U
aGlzIGlzIGEgdGVzdCB0byBtYWtlIHN1cmUgU2Vzc2lvblN0b3JhZ2UgbXV0YXRpb25zIGZpcmUg
U3RvcmFnZUV2ZW50cyB0aGF0IGFyZSBjYXVnaHQgYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGNvcnJl
c3BvbmRpbmcgdG8gd2luZG93Lm9uc3RvcmFnZS4KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkg
LSBGT08KLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1TdG9yYWdlIGV2ZW50
IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZhbHVlIC0gbnVsbAotCi1T
dG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRk9PCi1OZXcgVmFsdWUgLSBudWxsCi1PbGQgVmFs
dWUgLSBCQVIKLQotU3RvcmFnZSBldmVudCBmaXJlZDoKLUtleSAtIEZVCi1OZXcgVmFsdWUgLSBu
dWxsCi1PbGQgVmFsdWUgLSBCQVIKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3Jh
Z2Uvb25zdG9yYWdlLWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRtbAkocmV2aXNpb24gNTM3MTIpCisr
KyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvb25zdG9yYWdl
LWF0dHJpYnV0ZS1zZXR3aW5kb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0OSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9y
YWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlv
biBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJI
VE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudCgpCi17
Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnQpIHsKLSAgICAgICAgbG9nKCJHbG9iYWwgZXZlbnQgbm90
IGF2YWlsYWJsZS4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBsb2coIlN0
b3JhZ2UgZXZlbnQgZmlyZWQ6Iik7Ci0gICAgbG9nKCJLZXkgICAgICAgICAgIC0gIiArIGV2ZW50
LmtleSk7Ci0gICAgbG9nKCJOZXcgVmFsdWUgICAgIC0gIiArIGV2ZW50Lm5ld1ZhbHVlKTsKLSAg
ICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZXZlbnQub2xkVmFsdWUpOwotICAgIGxvZygiIik7
Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICghd2luZG93LnNlc3Npb25TdG9y
YWdlKSB7Ci0gICAgICAgIGxvZygid2luZG93LnNlc3Npb25TdG9yYWdlIERPRVMgTk9UIGV4aXN0
Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB3aW5kb3cub25zdG9yYWdlID0gaGFu
ZGxlU3RvcmFnZUV2ZW50OwotICAgIAotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVt
KCJGT08iLCAiQkFSIik7Ci0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkZVIiwg
IkJBUiIpOwotICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJGT08iKTsKLSAg
ICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiRlUiKTsKLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgotVGhpcyBpcyBhIHRlc3QgdG8g
bWFrZSBzdXJlIFNlc3Npb25TdG9yYWdlIG11dGF0aW9ucyBmaXJlIFN0b3JhZ2VFdmVudHMgdGhh
dCBhcmUgY2F1Z2h0IGJ5IHRoZSBldmVudCBsaXN0ZW5lciBjb3JyZXNwb25kaW5nIHRvIHdpbmRv
dy5vbnN0b3JhZ2UuPGJyPgotPGRpdiBpZD0ibG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9z
aW1wbGUtZXZlbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvc2ltcGxlLWV2ZW50cy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDUzNzEyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Np
b25zdG9yYWdlL3NpbXBsZS1ldmVudHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDI2ICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFnZSBt
dXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRzCi1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0g
Rk9PCi1OZXcgVmFsdWUgLSBCQVIKLU9sZCBWYWx1ZSAtIG51bGwKLUV2ZW50IGhhcyBhIFVSSQot
Ci1TdG9yYWdlIGV2ZW50IGZpcmVkOgotS2V5IC0gRlUKLU5ldyBWYWx1ZSAtIEJBUgotT2xkIFZh
bHVlIC0gbnVsbAotRXZlbnQgaGFzIGEgVVJJCi0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkg
LSBGT08KLU5ldyBWYWx1ZSAtIG51bGwKLU9sZCBWYWx1ZSAtIEJBUgotRXZlbnQgaGFzIGEgVVJJ
Ci0KLVN0b3JhZ2UgZXZlbnQgZmlyZWQ6Ci1LZXkgLSBGVQotTmV3IFZhbHVlIC0gbnVsbAotT2xk
IFZhbHVlIC0gQkFSCi1FdmVudCBoYXMgYSBVUkkKLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvc2ltcGxlLWV2ZW50cy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1w
bGUtZXZlbnRzLmh0bWwJKHJldmlzaW9uIDUzNzEyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSw1NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jbGVhclNlc3Npb25TdG9yYWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotfQot
Ci1mdW5jdGlvbiBsb2coYSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2Vy
IikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaCgpCi17Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpCi19Ci0KLWZ1bmN0aW9uIGhhbmRsZVN0b3JhZ2VFdmVudChl
KQotewotICAgIGxvZygiU3RvcmFnZSBldmVudCBmaXJlZDoiKTsKLSAgICBsb2coIktleSAgICAg
ICAgICAgLSAiICsgZS5rZXkpOwotICAgIGxvZygiTmV3IFZhbHVlICAgICAtICIgKyBlLm5ld1Zh
bHVlKTsKLSAgICBsb2coIk9sZCBWYWx1ZSAgICAgLSAiICsgZS5vbGRWYWx1ZSk7Ci0gICAgaWYg
KGUudXJpKQotICAgICAgICBsb2coIkV2ZW50IGhhcyBhIFVSSSIpOwotICAgIGxvZygiIik7Ci19
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICghd2luZG93LnNlc3Npb25TdG9yYWdl
KSB7Ci0gICAgICAgIGxvZygid2luZG93LnNlc3Npb25TdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7
Ci0gICAgICAgIGZpbmlzaCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwgaGFuZGxlU3RvcmFnZUV2ZW50LCBmYWxz
ZSk7Ci0KLSAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiRk9PIiwgIkJBUiIpOwot
ICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJGVSIsICJCQVIiKTsKLSAgICB3aW5k
b3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiRk9PIik7Ci0gICAgd2luZG93LnNlc3Npb25T
dG9yYWdlLnJlbW92ZUl0ZW0oIkZVIik7Ci0gICAgCi0gICAgZmluaXNoKCk7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLVRoaXMgaXMgYSB0ZXN0
IHRvIG1ha2Ugc3VyZSBTZXNzaW9uU3RvcmFnZSBtdXRhdGlvbnMgZmlyZSBTdG9yYWdlRXZlbnRz
PGJyPgotPGRpdiBpZD0ibG9nZ2VyIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
</data>
<flag name="review"
          id="29650"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>