<?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>92560</bug_id>
          
          <creation_ts>2012-07-27 16:29:38 -0700</creation_ts>
          <short_desc>IndexedDB: integer version layout tests</short_desc>
          <delta_ts>2012-08-21 15:26:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>92674</blocked>
    
    <blocked>92897</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>681227</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-27 16:29:38 -0700</bug_when>
    <thetext>IndexedDB: integer version layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681229</commentid>
    <comment_count>1</comment_count>
      <attachid>155086</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-27 16:30:06 -0700</bug_when>
    <thetext>Created attachment 155086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681233</commentid>
    <comment_count>2</comment_count>
      <attachid>155087</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-27 16:34:22 -0700</bug_when>
    <thetext>Created attachment 155087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681237</commentid>
    <comment_count>3</comment_count>
      <attachid>155088</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-27 16:39:45 -0700</bug_when>
    <thetext>Created attachment 155088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681239</commentid>
    <comment_count>4</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-27 16:41:13 -0700</bug_when>
    <thetext>Josh and Alec, could you take a look at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681655</commentid>
    <comment_count>5</comment_count>
      <attachid>155088</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-29 19:44:54 -0700</bug_when>
    <thetext>Comment on attachment 155088
Patch

Didn&apos;t finish going through, but initial feedback.

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

&gt; LayoutTests/storage/indexeddb/resources/intversion-abort-in-initial-upgradeneeded.js:11
&gt; +    dbname = self.location.pathname.substring(1 + self.location.pathname.lastIndexOf(&quot;/&quot;));

This is getting a bit long to type and fragile to copy/paste, how about a helper in shared.js, e.g. setDBNameFromTestPath() ? It could log something pretty to the output.

&gt; LayoutTests/storage/indexeddb/resources/intversion-abort-in-initial-upgradeneeded.js:21
&gt; +    request.onupgradeneeded = upgradeNeeded;

Add onblocked handler? (Your suggestion elsewhere - I think we want to do that in general going forward so we get TEXT fail w/ diff rather than TIMEOUT.)

Ditto for the other tests.

&gt; LayoutTests/storage/indexeddb/resources/intversion-and-setversion.js:49
&gt; +    db = trans.db;

Is this line needed?

&gt; LayoutTests/storage/indexeddb/resources/intversion-and-setversion.js:59
&gt; +    db = event.target.db;

Or this one? If I understand things correctly, db should have remained the same object the whole time.

&gt; LayoutTests/storage/indexeddb/resources/intversion-blocked.js:25
&gt; +      event = evt;

Should be indented 2 more spaces.

&gt; LayoutTests/storage/indexeddb/resources/intversion-blocked.js:71
&gt; +    evalAndLog(&quot;gotBlockedEvent = true&quot;);

I don&apos;t know if we do anywhere else, but in one of these tests it wouldn&apos;t hurt to say: shouldBe(&quot;event.target&quot;, &quot;connection1&quot;);

&gt; LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js:37
&gt; +    transaction.oncomplete = function(e)

In other tests, we don&apos;t include the e parameter if not used, and { on the same line as function keyword for anonymous functions. I&apos;m not sure we&apos;re totally consistent, though.

&gt; LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js:56
&gt; +function openSuccess(evt)

Do we know what the state of db should be here? To test if db is closed we can call db.transaction() on it (it will raise if db is closed).

&gt; LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js:66
&gt; +      finishJSTest();

Should be indented two more spaces.

&gt; LayoutTests/storage/indexeddb/resources/intversion-close-in-oncomplete.js:33
&gt; +    evalAndLog(&quot;db.createObjectStore(\&quot;os\&quot;)&quot;);

For readability, use single quotes instead of escaped quotes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681665</commentid>
    <comment_count>6</comment_count>
      <attachid>155088</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-29 20:34:54 -0700</bug_when>
    <thetext>Comment on attachment 155088
Patch

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

&gt; LayoutTests/storage/indexeddb/resources/intversion-high-version-first.js:6
&gt; +description(&quot;Test that if two open requests are waiting at the same time, the one with the higher version gets called first&quot;);

Wow... the consequences of this are non-intuitive!

&gt; LayoutTests/storage/indexeddb/resources/intversion-high-version-first.js:45
&gt; +    request2.onsuccess = successCallback2;

... so 2 succeeds because 1 closes promptly, but 3 and 4 get queued and 4 wins, 3 is blocked?

I would have expected that all 3 are treated equally, 4 wins, and 2 and 3 get VersionError.

&gt; LayoutTests/storage/indexeddb/resources/intversion-open-with-version.js:26
&gt; +    shouldBeEqualToString(&quot;Object.prototype.toString.apply(request)&quot;, &quot;[object IDBOpenDBRequest]&quot;);

Other tests use String(foo) rather than the ...apply() call. While I&apos;m a pedantic fan of the latter, the former is easier to read. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682286</commentid>
    <comment_count>7</comment_count>
      <attachid>155088</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-30 12:28:46 -0700</bug_when>
    <thetext>Comment on attachment 155088
Patch

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

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-abort-in-initial-upgradeneeded.js:11
&gt;&gt; +    dbname = self.location.pathname.substring(1 + self.location.pathname.lastIndexOf(&quot;/&quot;));
&gt; 
&gt; This is getting a bit long to type and fragile to copy/paste, how about a helper in shared.js, e.g. setDBNameFromTestPath() ? It could log something pretty to the output.

Added.  Also added preamble() to shared.js.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-abort-in-initial-upgradeneeded.js:21
&gt;&gt; +    request.onupgradeneeded = upgradeNeeded;
&gt; 
&gt; Add onblocked handler? (Your suggestion elsewhere - I think we want to do that in general going forward so we get TEXT fail w/ diff rather than TIMEOUT.)
&gt; 
&gt; Ditto for the other tests.

Done, I think everywhere.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-and-setversion.js:49
&gt;&gt; +    db = trans.db;
&gt; 
&gt; Is this line needed?

Not strictly needed, but I like to retrieve all the genericly named objects in the function so as to be resilient against changes in the other earlier function.  If I intend to reuse an object later in a different function I try to either declare it in the global scope or give it an explicit name, a la connection1.

What do you do?

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-blocked.js:25
&gt;&gt; +      event = evt;
&gt; 
&gt; Should be indented 2 more spaces.

Moved to new function.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-blocked.js:71
&gt;&gt; +    evalAndLog(&quot;gotBlockedEvent = true&quot;);
&gt; 
&gt; I don&apos;t know if we do anywhere else, but in one of these tests it wouldn&apos;t hurt to say: shouldBe(&quot;event.target&quot;, &quot;connection1&quot;);

Added to versionChangeHandler above.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js:37
&gt;&gt; +    transaction.oncomplete = function(e)
&gt; 
&gt; In other tests, we don&apos;t include the e parameter if not used, and { on the same line as function keyword for anonymous functions. I&apos;m not sure we&apos;re totally consistent, though.

Fixed.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js:56
&gt;&gt; +function openSuccess(evt)
&gt; 
&gt; Do we know what the state of db should be here? To test if db is closed we can call db.transaction() on it (it will raise if db is closed).

It should be open, since db.close hasn&apos;t been called yet.  Added a transaction line.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js:66
&gt;&gt; +      finishJSTest();
&gt; 
&gt; Should be indented two more spaces.

Thanks.  I need to get vim to autoindent 4 spaces if the file matches third_party/WebKit.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-close-in-oncomplete.js:33
&gt;&gt; +    evalAndLog(&quot;db.createObjectStore(\&quot;os\&quot;)&quot;);
&gt; 
&gt; For readability, use single quotes instead of escaped quotes?

Done.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-high-version-first.js:6
&gt;&gt; +description(&quot;Test that if two open requests are waiting at the same time, the one with the higher version gets called first&quot;);
&gt; 
&gt; Wow... the consequences of this are non-intuitive!

Yeah, I&apos;m not sure I&apos;m reading the spec correctly either.  It could use some clarification on this point.  I intend to file a bug.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-high-version-first.js:45
&gt;&gt; +    request2.onsuccess = successCallback2;
&gt; 
&gt; ... so 2 succeeds because 1 closes promptly, but 3 and 4 get queued and 4 wins, 3 is blocked?
&gt; 
&gt; I would have expected that all 3 are treated equally, 4 wins, and 2 and 3 get VersionError.

Now that I&apos;m re-reading this, I feel like you&apos;re right.  Either way, we don&apos;t do it right yet.  Firefox fires upgradeneeded at 2 then 3 then 4, so I don&apos;t think they have figured it out either.

&gt;&gt; LayoutTests/storage/indexeddb/resources/intversion-open-with-version.js:26
&gt;&gt; +    shouldBeEqualToString(&quot;Object.prototype.toString.apply(request)&quot;, &quot;[object IDBOpenDBRequest]&quot;);
&gt; 
&gt; Other tests use String(foo) rather than the ...apply() call. While I&apos;m a pedantic fan of the latter, the former is easier to read. :)

Ah yes, I switched to String(foo) halfway through these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682307</commentid>
    <comment_count>8</comment_count>
      <attachid>155343</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-30 13:03:25 -0700</bug_when>
    <thetext>Created attachment 155343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682372</commentid>
    <comment_count>9</comment_count>
      <attachid>155360</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-30 14:14:19 -0700</bug_when>
    <thetext>Created attachment 155360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683427</commentid>
    <comment_count>10</comment_count>
      <attachid>155622</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-31 13:26:10 -0700</bug_when>
    <thetext>Created attachment 155622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683434</commentid>
    <comment_count>11</comment_count>
      <attachid>155623</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-31 13:31:51 -0700</bug_when>
    <thetext>Created attachment 155623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683436</commentid>
    <comment_count>12</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-31 13:33:27 -0700</bug_when>
    <thetext>Removed intversion-high-version-first (for now) because it causes the new code to permanently stay in m_runningVersionChangeTransaction, causing the next test to timeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683591</commentid>
    <comment_count>13</comment_count>
      <attachid>155662</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-31 16:12:45 -0700</bug_when>
    <thetext>Created attachment 155662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683625</commentid>
    <comment_count>14</comment_count>
      <attachid>155674</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-31 16:35:58 -0700</bug_when>
    <thetext>Created attachment 155674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683733</commentid>
    <comment_count>15</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-31 18:38:03 -0700</bug_when>
    <thetext>Tony, could you review this?

I&apos;m going to land a series of patches in the coming days (hopefully by friday!) that will enable some of this functionality incrementally.  It&apos;d be nice to land these all at once and then just include updated expected files with the code as necessary.

Josh didn&apos;t LGTM here but he did say it looked good in an offline thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684361</commentid>
    <comment_count>16</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 11:26:08 -0700</bug_when>
    <thetext>Nate,

Tony, our usual reviewer, is OOO the next couple of days.  Could you review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684585</commentid>
    <comment_count>17</comment_count>
      <attachid>155885</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 14:28:45 -0700</bug_when>
    <thetext>Created attachment 155885
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684747</commentid>
    <comment_count>18</comment_count>
      <attachid>155885</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 16:27:30 -0700</bug_when>
    <thetext>Comment on attachment 155885
Patch for landing

Clearing flags on attachment: 155885

Committed r124383: &lt;http://trac.webkit.org/changeset/124383&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684748</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 16:27:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701181</commentid>
    <comment_count>20</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-21 15:26:28 -0700</bug_when>
    <thetext>*** Bug 84309 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155086</attachid>
            <date>2012-07-27 16:30:06 -0700</date>
            <delta_ts>2012-07-27 16:34:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92560-20120727162954.patch</filename>
            <type>text/plain</type>
            <size>45255</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUzOGRjNTlmNTEwZmY5MTBjZDM4
ZmVjZmFmOTI2NTY3NzRiZTg3My4uM2E5MzRkZjA4NGE3YzExZGY1MTYwMzMwMDQxNTk2OTdkY2E1
YTZkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEyLTA3LTI3ICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IGludGVnZXIgdmVyc2lv
biBsYXlvdXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkyNTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9h
Y2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93
IChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0
LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVl
ZGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
YW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdl
ZW4tZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWluLW9uY29tcGxldGUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQt
cGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgt
dmVyc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKHVwZ3Jh
ZGVOZWVkZWQpOgorICAgICAgICAob25BYm9ydCk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNz
KToKKyAgICAgICAgKGluU2V0VmVyc2lvbik6CisgICAgICAgIChzZXRWZXJzaW9uRG9uZSk6Cisg
ICAgICAgIChzZWNvbmRPcGVuKToKKyAgICAgICAgKGZpcnN0VXBncmFkZU5lZWRlZCk6CisgICAg
ICAgICh0cmFuc2FjdGlvbkNvbXBsZXRlZCk6CisgICAgICAgIChmaXJzdE9wZW5XaXRoVmVyc2lv
bik6CisgICAgICAgIChzZXRWZXJzaW9uTm90QWxsb3dlZCk6CisgICAgICAgIChlcnJvcldoZW5U
cnlpbmdMb3dWZXJzaW9uKToKKyAgICAgICAgKHNlY29uZFVwZ3JhZGVOZWVkZWQpOgorICAgICAg
ICAodGhpcmRPcGVuU3VjY2Vzcyk6CisgICAgICAgIChmb3VydGhPcGVuU3VjY2Vzcyk6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYmxvY2tlZC5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MucmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQpOgorICAgICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChmaXJz
dFN1Y2Nlc3NFdmVudEhhbmRsZXIpOgorICAgICAgICAodmVyc2lvbkNoYW5nZUhhbmRsZXIpOgor
ICAgICAgICAoYmxvY2tlZEV2ZW50SGFuZGxlcik6CisgICAgICAgIChzZWNvbmRVcGdyYWRlTmVl
ZGVkRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKHNlY29uZFN1Y2Nlc3NDYWxsYmFjayk6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vl
bi1ldmVudHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgIChkZWxldGVTdWNj
ZXNzKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSk6Cisg
ICAgICAgICh1cGdyYWRlTmVlZGVkKToKKyAgICAgICAgKGNsb3NlREIpOgorICAgICAgICAob3Bl
blN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWNsb3NlLWluLW9uY29tcGxldGUuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAg
ICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSk6CisgICAgICAgICh1cGdyYWRlTmVlZGVkKToKKyAgICAgICAgKG9wZW5TdWNj
ZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1o
aWdoLXZlcnNpb24tZmlyc3QuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgIChk
ZWxldGVTdWNjZXNzLnJlcXVlc3Qub251cGdyYWRlbmVlZGVkKToKKyAgICAgICAgKGRlbGV0ZVN1
Y2Nlc3MpOgorICAgICAgICAoZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKHZl
cnNpb25DaGFuZ2VIYW5kbGVyKToKKyAgICAgICAgKGJsb2NrZWRFdmVudEhhbmRsZXIyKToKKyAg
ICAgICAgKHVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIyKToKKyAgICAgICAgKHN1Y2Nlc3NDYWxs
YmFjazIpOgorICAgICAgICAoYmxvY2tlZEV2ZW50SGFuZGxlcjQpOgorICAgICAgICAodXBncmFk
ZU5lZWRlZEV2ZW50SGFuZGxlcjQpOgorICAgICAgICAoc3VjY2Vzc0NhbGxiYWNrNCk6CisgICAg
ICAgIChlcnJvckhhbmRsZXIzKToKKyAgICAgICAgKGJsb2NrZWRFdmVudEhhbmRsZXIzKToKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFt
ZXRlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3Mu
cmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQpOgorICAgICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAg
ICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQudHJhbnNh
Y3Rpb24ub25jb21wbGV0ZSk6CisgICAgICAgICh1cGdyYWRlTmVlZGVkKToKKyAgICAgICAgKG9w
ZW5TdWNjZXNzKToKKwogMjAxMi0wNy0yNiAgTmF5YW4gS3VtYXIgSyAgPG5heWFua2tAbW90b3Jv
bGEuY29tPgogCiAgICAgICAgIFtXZWJHTF0gSW5pdGlhbCBzaXplIG9mIGNhbnZhcyBjYW4gYmUg
bGFyZ2VyIHRoYW4gTUFYX1ZJRVdQT1JUX0RJTVMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDNjZjhmYjVkNmUxMDQ2ZjViOTIyZDM3YzI2YmNhY2IwOWI3ZWExOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5p
dGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IHRo
YXQgYW4gYWJvcnQgaW4gdGhlIGluaXRpYWwgdXBncmFkZW5lZWRlZCBzZXRzIHZlcnNpb24gYmFj
ayB0byAwCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxm
LmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8
fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKK0ZBSUwgU3VjY2Vz
cyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWlu
aXRpYWwtdXBncmFkZW5lZWRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2OGFjMGQwZTdjOTgwNTUyM2Rl
NDhjYTAzMjE3NjFiM2YyNTNmN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5o
dG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVk
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1z
ZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjJkOWQ2NTQ0M2VhNTZmNWUzNzVl
NjllYWFhNmM4OTNlYWY3NGZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0OSBAQAorVGVzdCB0aGF0IGJsYWggYmxhaC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorRkFJTCBTdHJpbmco
cmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0
IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0XS4KKworQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBw
YXJhbWV0ZXI6CitpbmRleGVkREIub3BlbihkYm5hbWUpCisKK29wZW5TdWNjZXNzKCk6CitkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAiIgorcmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oInNvbWUgdmVyc2lvbiIpCisKK2luU2V0VmVyc2lvbigpOgorUEFTUyBkYi52
ZXJzaW9uIGlzICJzb21lIHZlcnNpb24iCisKK3NldFZlcnNpb25Eb25lKCk6CitQQVNTIGRiLnZl
cnNpb24gaXMgInNvbWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK2luZGV4ZWREQi5vcGVuKGRibmFt
ZSkKK3JlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kT3BlbgorCitzZWNvbmRPcGVuKCk6CitkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRh
YmFzZV0iCitQQVNTIGRiLnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK3Jl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCisKK2ZpcnN0T3BlbldpdGhWZXJzaW9u
KCk6CitGQUlMIGRpZFRyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxz
ZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0
IElEQkRhdGFiYXNlXSIKK1BBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCitGQUlMIGRi
LnZlcnNpb24gc2hvdWxkIGJlIDIgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAo
b2YgdHlwZSBzdHJpbmcpLgorRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3Qg
SURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlJlcXVlc3RdLgorcmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oInN0cmluZyB2ZXJzaW9uIDIiKQorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMg
IltvYmplY3QgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RdIgorcmVxdWVzdC5vbmVycm9yID0gc2V0
VmVyc2lvbk5vdEFsbG93ZWQKK0ZBSUwgU3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3Rl
ZGx5LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5k
LXNldHZlcnNpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tYW5kLXNldHZlcnNpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDZkZWQzOWUwMTNmM2NjNTU3Y2Ji
NjA4M2Y4ZTc2ZmFjMjI4ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2lu
dHZlcnNpb24tYW5kLXNldHZlcnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjY0OWYwMzQ0ODA0
M2ZmYzUyYWE4N2Q2YWMwYmE0ZTE4MDljMTFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDI1IEBACitUZXN0IHRoYXQgYmxvY2tlZCBldmVudHMgZ2V0IGRlbGl2ZXJlZCBwcm9w
ZXJseSB3aXRoIHRoZSBuZXcgb3BlbiBhcGkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8
IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERC
OworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitkZWxldGVTdWNjZXNzKCk6
CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQorCitmaXJzdFN1Y2Nlc3NFdmVu
dEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorY29ubmVj
dGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIKK1BBU1MgU3RyaW5n
KGNvbm5lY3Rpb24xKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCityZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oZGJuYW1lLCAzKQorCitzZWNvbmRTdWNjZXNzQ2FsbGJhY2soKToKK0ZBSUwgZ290
U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMzg3ZGVlYjgwNDA0YTU5NzcxMmEzM2FkYzg2YTE4YzYzZWU0ZjhhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1i
bG9ja2VkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4t
ZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzZiMTg3NDBjNjg3ZThjZDZiMDFlYjRh
MzA2MTE5Y2I0ODJlNzdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMCBAQAorVGVzdCB0aGF0IHNwZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3Blbmlu
ZyBhIG5vbi1leGlzdGVudCBkYiBjYXVzZXMgYW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhh
dCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgc2V0IGNvcnJlY3RseS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0
SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2Vs
Zi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorcmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKKworCitvcGVuU3VjY2VzcygpOgorUEFTUyBk
aWRDYWxsQ2xvc2VEQiBpcyBmYWxzZQorRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK0ZBSUwgZGIu
dmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmlu
ZykuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9z
ZS1iZXR3ZWVuLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllMGUzYzFhNzI4
YzczZDVhMjcwMmQxMzE1NTA1NDhlNDZmMTE2ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0
bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9u
Y29tcGxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZjFjYzE1MDRhMDU5ZDVmY2RhOGM4
NDc5YTM5ZjJlMWJhM2IzNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjIgQEAKK1Rlc3QgdGhhdCBzcGVjaWZ5aW5nIGEgdmVyc2lvbiB3aGVuIG9wZW5p
bmcgYSBub24tZXhpc3RlbnQgZGIgY2F1c2VzIGFuIHVwZ3JhZGVuZWVkZWQgZXZlbnQgYW5kIHRo
YXQgdGhlIHZlcnNpb24gbnVtYmVyIGlzIHNldCBjb3JyZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtp
dEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNl
bGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK3JlcXVl
c3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCisKK29wZW5TdWNjZXNzKCk6CitGQUlMIHNh
d1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51
bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSB0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycsICdyZWFkd3JpdGUnKQorUEFTUyBFeGNl
cHRpb24gd2FzIHRocm93bi4KK0ZBSUwgY29kZSBzaG91bGQgYmUgMTEuIFdhcyA4LgorRkFJTCBl
bmFtZSBzaG91bGQgYmUgSW52YWxpZFN0YXRlRXJyb3IuIFdhcyBOb3RGb3VuZEVycm9yLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25j
b21wbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1j
bG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU5YzYwNWIwM2Q2ODEwYTM2Njcw
YWNmYTUyNzVjMjBhMjgyOTY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sCkBAIC0wLDAg
KzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
aGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNzgwOTkwYjIzM2Y4OWJiNTMwNzg3ZTdmY2I3MWViODM2ZTQ1
ZmE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAK
K1Rlc3QgdGhhdCBpZiB0d28gb3BlbiByZXF1ZXN0cyBhcmUgd2FpdGluZyBhdCB0aGUgc2FtZSB0
aW1lLCB0aGUgb25lIHdpdGggdGhlIGhpZ2hlciB2ZXJzaW9uIGdldHMgY2FsbGVkIGZpcnN0CisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWRE
QiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1z
SW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkKKworZGVsZXRlU3VjY2VzcygpOgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgMSkKKworZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKCk6CitGQUlMIGdvdEZpcnN0VXBn
cmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitjb25uZWN0aW9uMSA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKK2Nvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IHZlcnNp
b25DaGFuZ2VIYW5kbGVyCityZXF1ZXN0MiA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKK3Jl
cXVlc3QzID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorcmVxdWVzdDQgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDQpCisKK3N1Y2Nlc3NDYWxsYmFjazIoKToKK1BBU1MgZ290QmxvY2tlZEV2
ZW50NCBpcyBmYWxzZQorRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHku
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1oaWdoLXZl
cnNpb24tZmlyc3QuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24taGlnaC12ZXJzaW9uLWZpcnN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzM4Y2U0YmJkZWMzZWQzMjRi
ZTM4YzUzNjBhODIyZjgxYTIyZGI2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0Lmh0bWwKQEAgLTAs
MCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQxODAwNTExMDFlMjU5Njc4Yjc5NjRhMDRiNDFlNTM4NDgxNmE4NTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LW9taXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IHRoYXQg
aW5pdGlhbCB2ZXJzaW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIGEgbm9uLWV4aXN0ZW50
IGRiIGlzIDEKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorCitvcGVuU3VjY2Vz
cygpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitUZXN0IGxpbmUgZnJvbSBJREJGYWN0b3J5
Lm9wZW46IElmIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkIGFuZCBubyBkYXRhYmFzZSBleGlzdHMs
IHNldCBkYXRhYmFzZSB2ZXJzaW9uIHRvIDEuCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDEg
KG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YmI1NGEyMGRiYTRlNWFlYTZkNzI5MzgyNzBkMTUzYzg3NjAyZGVjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1vbWl0LXBhcmFtZXRlci5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
b3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwYTBlY2JlZjcxMzEy
ZjNiZDI1ZTFkMzNhZTVjMjEyMmE4MTE0NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDI5IEBACitUZXN0IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hl
biBvcGVuaW5nIGEgbm9uLWV4aXN0ZW50IGRiIGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50
IGFuZCB0aGF0IHRoZSB2ZXJzaW9uIG51bWJlciBpcyBzZXQgY29ycmVjdGx5LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2Vs
Zi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWRE
QiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
CitTaG91bGQgdHJpZ2dlcjoKKzQuMS40OiBJZiBubyBkYXRhYmFzZSB3aXRoIHRoZSBnaXZlbiBu
YW1lIGZyb20gdGhlIG9yaWdpbiBvcmlnaW4gd2FzIGZvdW5kLCBvciBpZiBpdCB3YXMgZGVsZXRl
ZCBkdXJpbmcgdGhlIHByZXZpb3VzIHN0ZXAsIHRoZW4gY3JlYXRlIGEgZGF0YWJhc2Ugd2l0aCBu
YW1lIG5hbWUsIHdpdGggMCBhcyB2ZXJzaW9uLCBhbmQgd2l0aCBubyBvYmplY3Qgc3RvcmVzLiBM
ZXQgZGIgYmUgdGhlIG5ldyBkYXRhYmFzZS4KKzQuMS42OiBDcmVhdGUgYSBuZXcgY29ubmVjdGlv
biB0byBkYiBhbmQgbGV0IGNvbm5lY3Rpb24gcmVwcmVzZW50IGl0LgorNC4xLjc6IElmIHRoZSB2
ZXJzaW9uIG9mIGRiIGlzIGxvd2VyIHRoYW4gdmVyc2lvbiwgdGhlbiBydW4gdGhlIHN0ZXBzIGZv
ciBydW5uaW5nIGEgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uIHVzaW5nIGNvbm5lY3Rpb24s
IHZlcnNpb24sIHJlcXVlc3QgYW5kIHVwZ3JhZGUgY2FsbGJhY2suCis0LjEuOTogUmV0dXJuIGNv
bm5lY3Rpb24uCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQorRkFJTCBPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHJlcXVlc3QpIHNob3VsZCBiZSBbb2JqZWN0IElE
Qk9wZW5EQlJlcXVlc3RdLiBXYXMgW29iamVjdCBJREJSZXF1ZXN0XS4KKworCitvcGVuU3VjY2Vz
cygpOgorVGVzdCA0LjEuNywgdGhhdCBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gd2FzIHJ1
bi4KK0ZBSUwgc2F3VXBncmFkZU5lZWRlZCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorRkFJ
TCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKK0tpbmQgb2YgdGVzdCA0LjEuOToKK1BBU1MgT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5hcHBseShkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgorRkFJ
TCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUg
c3RyaW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LW9wZW4td2l0aC12ZXJzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThjNzNkNDRmODJi
MjE3YWNlN2MxMjE3NjA4YjBhYWYxNzRhYzI5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uaHRtbApA
QCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVl
ZGVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZTFhZTZm
Mzc2NWYyNDQ4M2Y0ZGI0YjVjMzdjOTEwMzM1Yzg0OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1p
bml0aWFsLXVwZ3JhZGVuZWVkZWQuanMKQEAgLTAsMCArMSw0NiBAQAoraWYgKHRoaXMuaW1wb3J0
U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisK
K2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYW4gYWJvcnQgaW4gdGhlIGluaXRpYWwgdXBncmFkZW5l
ZWRlZCBzZXRzIHZlcnNpb24gYmFjayB0byAwIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRo
bmFtZS5zdWJzdHJpbmcoMSArIHNlbGYubG9jYXRpb24ucGF0aG5hbWUubGFzdEluZGV4T2YoIi8i
KSk7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9u
IGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRT
dWNjZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVl
ZGVkOworfQorCitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIp
OworICAgIHRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgIHRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKKyAgICB0cmFu
c2FjdGlvbi5vbmFib3J0ID0gb25BYm9ydDsKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5h
Ym9ydCgpIik7Cit9CisKK2Z1bmN0aW9uIG9uQWJvcnQoZXZ0KQoreworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1Zygib25BYm9ydCgpOiIpOworICAgIGV2ZW50ID0gZXZ0OworICAgIHNob3VsZEJl
KCJldmVudC50YXJnZXQuZGIudmVyc2lvbiIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2JmODZiZGFiNTM5M2QxMjcxOWU2MTBhNzU3ZmRiNThmM2E5OTE4MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWFuZC1zZXR2ZXJzaW9uLmpzCkBAIC0wLDAgKzEsMTg5IEBACitpZiAodGhpcy5pbXBvcnRT
Y3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKwor
ZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBibGFoIGJsYWguIik7CisKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgZGJuYW1lID0gc2VsZi5sb2NhdGlv
bi5wYXRobmFtZS5zdWJzdHJpbmcoMSArIHNlbGYubG9jYXRpb24ucGF0aG5hbWUubGFzdEluZGV4
T2YoIi8iKSk7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1
ZXN0KSIsICJbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0ZXI6Iik7
CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0g
dW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
b3BlblN1Y2Nlc3MoKToiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICIiKTsK
KyAgICBldmFsQW5kTG9nKCdyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic29tZSB2ZXJzaW9uIikn
KTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGluU2V0VmVyc2lvbjsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGluU2V0VmVyc2lvbihl
dnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJpblNl
dFZlcnNpb24oKToiKTsKKyAgICB0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgdHJh
bnMub25jb21wbGV0ZSA9IHNldFZlcnNpb25Eb25lOworICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4
cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBkYiA9IHRyYW5zLmRiOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJzb21lIHZlcnNpb24iKTsKKyAgICAvLyBGSVhNRTog
QWxzbyBjYWxsIG9wZW4gd2l0aCB2ZXJzaW9uIGZyb20gaGVyZS4KK30KKworZnVuY3Rpb24gc2V0
VmVyc2lvbkRvbmUoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1Zygic2V0VmVyc2lvbkRvbmUoKToiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5kYjsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29tZSB2ZXJzaW9uIik7
CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1
Y2Nlc3MgPSBzZWNvbmRPcGVuIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1bmV4cGVjdGVkVXBn
cmFkZU5lZWRlZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBzZWNvbmRPcGVuKGV2dCkKK3sKKyAg
ICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNlY29uZE9wZW4oKToi
KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29tZSB2ZXJzaW9uIik7
CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIC8vIEZJWE1FOiBBbHNvIGNhbGwg
aXQgd2l0aCAwLCAtMSwgYW5kIC00LgorICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVk
REIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmaXJz
dFVwZ3JhZGVOZWVkZWQKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdE9wZW5XaXRoVmVyc2lvbjsKK30KKworZnVu
Y3Rpb24gZmlyc3RVcGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoImZpcnN0VXBncmFkZU5lZWRlZCgpOiIpOworICAgIGV2YWxB
bmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiU3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QudHJhbnNhY3Rpb24pIiwgIltvYmplY3QgSURC
VHJhbnNhY3Rpb25dIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5vbGRWZXJz
aW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwg
IjIiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0
cmFuc2FjdGlvbkNvbXBsZXRlZCIpOworICAgIHJlcXVlc3QudHJhbnNhY3Rpb24ub25hYm9ydCA9
IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworfQorCit2YXIgZGlkVHJhbnNhY3Rpb25Db21wbGV0
ZSA9IGZhbHNlOworZnVuY3Rpb24gdHJhbnNhY3Rpb25Db21wbGV0ZWQoZXZ0KQoreworICAgIGV2
ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidHJhbnNhY3Rpb25Db21wbGV0
ZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkaWRUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZSIp
OworfQorCitmdW5jdGlvbiBmaXJzdE9wZW5XaXRoVmVyc2lvbihldnQpCit7CisgICAgZXZlbnQg
PSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmaXJzdE9wZW5XaXRoVmVyc2lvbigp
OiIpOworICAgIHNob3VsZEJlVHJ1ZSgiZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSIpOworICAgIGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiU3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOworICAgIHNob3Vs
ZEJlTnVsbCgicmVxdWVzdC50cmFuc2FjdGlvbiIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9u
IiwgIjIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0KSIsICJb
b2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdIik7CisgICAgZXZhbEFuZExvZygncmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oInN0cmluZyB2ZXJzaW9uIDIiKScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiU3RyaW5nKHJlcXVlc3QpIiwgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3Rd
Iik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwor
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICBl
dmFsQW5kTG9nKCJyZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uTm90QWxsb3dlZCIpOworfQor
CitmdW5jdGlvbiBzZXRWZXJzaW9uTm90QWxsb3dlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7
CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzZXRWZXJzaW9uTm90QWxsb3dlZCgpOiIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJlcnJvciIpOworICAgIGRl
YnVnKCJyZXF1ZXN0LndlYmtpdEVycm9yTWVzc2FnZSA9ICIgKyByZXF1ZXN0LndlYmtpdEVycm9y
TWVzc2FnZSk7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIGV2YWxBbmRMb2co
InJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDEpIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdC5vbmVycm9yID0gZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbiIpOworICAgIHJlcXVl
c3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGVycm9y
V2hlblRyeWluZ0xvd1ZlcnNpb24oZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbigpOiIpOworICAgIGRl
YnVnKCJyZXF1ZXN0LndlYmtpdEVycm9yTWVzc2FnZSA9ICIgKyByZXF1ZXN0LndlYmtpdEVycm9y
TWVzc2FnZSk7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgNCkiKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJh
Y2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAg
ZXZhbEFuZExvZygicmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBzZWNvbmRVcGdyYWRlTmVlZGVk
Iik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSB0aGlyZE9wZW5TdWNjZXNz
Iik7Cit9CisKK3ZhciBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkID0gZmFsc2U7CitmdW5jdGlvbiBz
ZWNvbmRVcGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1Zygi
Iik7CisgICAgZGVidWcoInNlY29uZFVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9n
KCJnb3RTZWNvbmRVcGdyYWRlTmVlZGVkID0gdHJ1ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5v
bGRWZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI0Iik7
Cit9CisKK2Z1bmN0aW9uIHRoaXJkT3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0
OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidGhpcmRPcGVuU3VjY2VzcygpOiIpOworICAg
IHNob3VsZEJlVHJ1ZSgiZ290U2Vjb25kVXBncmFkZU5lZWRlZCIpOworICAgIGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwg
IjQiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgZXZhbEFuZExvZygicmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
Lm9uc3VjY2VzcyA9IGZvdXJ0aE9wZW5TdWNjZXNzIik7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQgPSB1bmV4cGVjdGVkVXBncmFkZU5lZWRlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGZv
dXJ0aE9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoImZvdXJ0aE9wZW5TdWNjZXNzKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiNCIp
OworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYmxvY2tl
ZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYTQ5NDVhZGYxMzI0MjQ4MzNlZTc1NDUzZWM3YjExMDNkMTEzNDhh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2ludHZlcnNpb24tYmxvY2tlZC5qcwpAQCAtMCwwICsxLDk2IEBACitpZiAodGhpcy5pbXBv
cnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30K
KworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBibG9ja2VkIGV2ZW50cyBnZXQgZGVsaXZlcmVkIHBy
b3Blcmx5IHdpdGggdGhlIG5ldyBvcGVuIGFwaSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0
aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKCIv
IikpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24g
ZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImRlbGV0ZVN1
Y2Nlc3MoKToiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RTdWNjZXNzRXZlbnRIYW5k
bGVyOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAg
IGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7CisgICAgcmVxdWVzdC5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgIGV2ZW50ID0gZXZ0OworICAgICAgZGVi
dWcoIiIpOworICAgICAgZGVidWcoInJlcXVlc3Qub251cGdyYWRlbmVlZGVkKCk6Iik7CisgICAg
ICBldmFsQW5kTG9nKCJnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWUiKTsKKyAgICAg
IHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICAgIHNob3VsZEJlKCJldmVu
dC5uZXdWZXJzaW9uIiwgIjIiKTsKKyAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5n
KGV2ZW50KSIsICJbb2JqZWN0IElEQlVwZ3JhZGVOZWVkZWRFdmVudF0iKTsKKyAgICB9Cit9CisK
K2dvdEJsb2NrZWRFdmVudCA9IGZhbHNlOworZnVuY3Rpb24gZmlyc3RTdWNjZXNzRXZlbnRIYW5k
bGVyKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
ImZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOiIpCisgICAgc2hvdWxkQmVUcnVlKCJnb3RGaXJz
dFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xID0gZXZl
bnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLm9udmVyc2lv
bmNoYW5nZSA9IHZlcnNpb25DaGFuZ2VIYW5kbGVyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJTdHJpbmcoY29ubmVjdGlvbjEpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAg
ZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMykiKTsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IHNlY29uZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IGJsb2NrZWRFdmVudEhhbmRsZXI7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBzZWNv
bmRVcGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyOworfQorCit2YXIgc2F3VmVyc2lvbkNoYW5nZUV2
ZW50ID0gZmFsc2U7CitmdW5jdGlvbiB2ZXJzaW9uQ2hhbmdlSGFuZGxlcihldnQpCit7CisgICAg
ZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ2ZXJzaW9uQ2hhbmdlSGFu
ZGxlcigpOiIpOworICAgIGV2YWxBbmRMb2coInNhd1ZlcnNpb25DaGFuZ2VFdmVudCA9IHRydWUi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5n
ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0
IElEQlZlcnNpb25DaGFuZ2VFdmVudF0iKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lv
biIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMyIpOworfQorCitm
dW5jdGlvbiBibG9ja2VkRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXIoKToiKTsKKyAgICBz
aG91bGRCZVRydWUoInNhd1ZlcnNpb25DaGFuZ2VFdmVudCIpOworICAgIGV2YWxBbmRMb2coImdv
dEJsb2NrZWRFdmVudCA9IHRydWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmlu
ZyhldmVudCkiLCAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdIik7CisgICAgc2hvdWxk
QmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJz
aW9uIiwgIjMiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAiYmxv
Y2tlZCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsKK30KKworZ290
U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiBzZWNvbmRVcGdyYWRl
TmVlZGVkRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNl
Y29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIoKToiKTsKKyAgICBzaG91bGRCZVRydWUoImdv
dEJsb2NrZWRFdmVudCIpOworICAgIGV2YWxBbmRMb2coImdvdFNlY29uZFVwZ3JhZGVOZWVkZWRF
dmVudCA9IHRydWUiKTsKK30KKworZnVuY3Rpb24gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKGV2dCkK
K3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNlY29uZFN1Y2Nlc3NDYWxsYmFjaygpOiIp
OworICAgIHNob3VsZEJlVHJ1ZSgiZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRz
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
Y2xvc2UtYmV0d2Vlbi1ldmVudHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkyOTU4ZGMzZDE5OWJlMGQ3YTg4
MmU1NGQzNmIyZGRjOTk1YmE3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmpz
CkBAIC0wLDAgKzEsNjkgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRT
Y3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAg
IGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0
IHNwZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBjYXVz
ZXMgYW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaXMg
c2V0IGNvcnJlY3RseS4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKKyAgICBkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmlu
ZygxICsgc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKTsKKworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOwor
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2Vz
cyhldnQpIHsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
LCA3KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2Vk
ID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBz
YXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3Jh
ZGVOZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI3Iik7CisKKyAgICBldmFsQW5k
TG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIpOworICAgIHRyYW5z
YWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICB0cmFuc2FjdGlv
bi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAg
ICAgICAgZGVidWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7CisgICAgICAgIGV2YWxBbmRM
b2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgICAgIGV2YWxBbmRMb2co
InNldFRpbWVvdXQoY2xvc2VEQiwgMCkiKTsKKyAgICB9Cit9CisKK3ZhciBkaWRDYWxsQ2xvc2VE
QiA9IGZhbHNlOworZnVuY3Rpb24gY2xvc2VEQigpCit7CisgICAgZGVidWcoIiIpOworICAgIGRl
YnVnKCJjbG9zZURCKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGlkQ2FsbENsb3NlREIgPSB0cnVl
Iik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIGZpbmlzaEpTVGVzdCgpOwor
fQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIHNob3VsZEJlRmFs
c2UoImRpZENhbGxDbG9zZURCIik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdUcmFuc2FjdGlvbkNv
bXBsZXRlIik7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICI3Iik7CisgICAgaWYgKGRiLnZlcnNpb24g
IT09IDcpCisgICAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2Ut
aW4tb25jb21wbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJkOTU4YWEw
ZTYwZGQ0OTU1Yzg2OTYzNTkxYjQ5OTdmMjVhZmI5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9u
Y29tcGxldGUuanMKQEAgLTAsMCArMSw1OCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewor
ICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9u
KCJUZXN0IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hlbiBvcGVuaW5nIGEgbm9uLWV4aXN0
ZW50IGRiIGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGFuZCB0aGF0IHRoZSB2ZXJzaW9u
IG51bWJlciBpcyBzZXQgY29ycmVjdGx5LiIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBy
ZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5h
bWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKCIvIikp
OworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBk
ZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDcpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsK
KyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQ7CisgICAgcmVxdWVz
dC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworfQorCit2YXIgc2F3VHJh
bnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlOworZnVuY3Rpb24gdXBncmFkZU5lZWRlZChldnQpCit7
CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRlTmVl
ZGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiNyIpOworICAgIGV2YWxBbmRMb2coImRi
LmNyZWF0ZU9iamVjdFN0b3JlKFwib3NcIikiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0
aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9y
dCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUg
PSBmdW5jdGlvbihlKQorICAgIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1Zygi
dHJhbnNhY3Rpb24ub25jb21wbGV0ZToiKTsKKyAgICAgICAgZXZhbEFuZExvZygic2F3VHJhbnNh
Y3Rpb25Db21wbGV0ZSA9IHRydWUiKTsKKyAgICAgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIp
OworICAgIH0KK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0g
ZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKKyAgICBz
aG91bGRCZVRydWUoInNhd1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBldmFsQW5kTG9nKCJk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICI3
Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigidHJhbnNhY3Rpb24gPSBkYi50cmFuc2Fj
dGlvbignb3MnLCAncmVhZHdyaXRlJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVz
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjliNzU4YWY0ZTYwZjYyNzg5YjExMDllZjk0ZDNkY2FlZmRkNzA5NTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVy
c2lvbi1oaWdoLXZlcnNpb24tZmlyc3QuanMKQEAgLTAsMCArMSwxNTAgQEAKK2lmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOwor
fQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGlmIHR3byBvcGVuIHJlcXVlc3RzIGFyZSB3YWl0
aW5nIGF0IHRoZSBzYW1lIHRpbWUsIHRoZSBvbmUgd2l0aCB0aGUgaGlnaGVyIHZlcnNpb24gZ2V0
cyBjYWxsZWQgZmlyc3QiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKKyAgICBkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmlu
ZygxICsgc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKTsKKyAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3Mo
ZXZ0KSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJkZWxldGVTdWNjZXNzKCk6Iik7Cisg
ICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcjsKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBnb3RGaXJzdFVwZ3Jh
ZGVOZWVkZWRFdmVudCA9IGZhbHNlOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZXZ0KSB7CisgICAgICBldmVudCA9IGV2dDsKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAg
IGRlYnVnKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCgpOiIpOworICAgICAgZXZhbEFuZExvZygi
Z290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlIik7CisgICAgICBzaG91bGRCZSgiZXZl
bnQub2xkVmVyc2lvbiIsICIwIik7CisgICAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIs
ICIxIik7CisgICAgfQorfQorCitmdW5jdGlvbiBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoZXZ0
KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RT
dWNjZXNzRXZlbnRIYW5kbGVyKCk6IikKKyAgICBzaG91bGRCZVRydWUoImdvdEZpcnN0VXBncmFk
ZU5lZWRlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdl
ID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0MiA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0MyA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMykiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0NCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgNCkiKTsKKyAgICByZXF1ZXN0Mi5vbnN1Y2Nlc3MgPSBzdWNj
ZXNzQ2FsbGJhY2syOworICAgIHJlcXVlc3QyLm9uYmxvY2tlZCA9IGJsb2NrZWRFdmVudEhhbmRs
ZXIyOworICAgIHJlcXVlc3QyLm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRFdmVudEhh
bmRsZXIyOworICAgIHJlcXVlc3QyLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
KworICAgIHJlcXVlc3QzLm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7Cisg
ICAgcmVxdWVzdDMub25ibG9ja2VkID0gYmxvY2tlZEV2ZW50SGFuZGxlcjM7CisgICAgcmVxdWVz
dDMub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKKyAg
ICByZXF1ZXN0My5vbmVycm9yID0gZXJyb3JIYW5kbGVyMzsKKworICAgIHJlcXVlc3Q0Lm9uc3Vj
Y2VzcyA9IHN1Y2Nlc3NDYWxsYmFjazQ7CisgICAgcmVxdWVzdDQub25ibG9ja2VkID0gYmxvY2tl
ZEV2ZW50SGFuZGxlcjQ7CisgICAgcmVxdWVzdDQub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5l
ZWRlZEV2ZW50SGFuZGxlcjQ7CisgICAgcmVxdWVzdDQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCit2YXIgdmVyc2lvbkNoYW5nZUV2ZW50c1NlZW4gPSAwOworZnVuY3Rp
b24gdmVyc2lvbkNoYW5nZUhhbmRsZXIoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygidmVyc2lvbkNoYW5nZUhhbmRsZXIoKToiKTsKKyAgICBkZWJ1
ZygiKyt2ZXJzaW9uQ2hhbmdlRXZlbnRzU2VlbiA9ICIgKyAoKyt2ZXJzaW9uQ2hhbmdlRXZlbnRz
U2VlbikpOworICAgIGRlYnVnKCJldmVudC5vbGRWZXJzaW9uID0gIiArIGV2ZW50Lm9sZFZlcnNp
b24pOworICAgIGRlYnVnKCJldmVudC5uZXdWZXJzaW9uID0gIiArIGV2ZW50Lm5ld1ZlcnNpb24p
OworfQorCit2YXIgZ290QmxvY2tlZEV2ZW50MiA9IGZhbHNlOworZnVuY3Rpb24gYmxvY2tlZEV2
ZW50SGFuZGxlcjIoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZygiYmxvY2tlZEV2ZW50SGFuZGxlcjIoKToiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
b2xkVmVyc2lvbiIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMiIp
OworICAgIHNob3VsZEJlRmFsc2UoImdvdEJsb2NrZWRFdmVudDQiKTsKKyAgICBldmFsQW5kTG9n
KCJnb3RCbG9ja2VkRXZlbnQyID0gdHJ1ZSIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24x
LmNsb3NlKCkiKTsKKyAgICBpZiAoZ290QmxvY2tlZEV2ZW50NCkKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIyKGV2dCkKK3sK
KyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVk
ZWRFdmVudEhhbmRsZXIyKCk6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiZ290QmxvY2tlZEV2ZW50
NCIpOworICAgIGlmIChnb3RCbG9ja2VkRXZlbnQ0KQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKworZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrMihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7
CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzdWNjZXNzQ2FsbGJhY2syKCk6Iik7CisgICAg
c2hvdWxkQmVGYWxzZSgiZ290QmxvY2tlZEV2ZW50NCIpOworICAgIGlmIChnb3RCbG9ja2VkRXZl
bnQ0KQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIGdvdEJsb2NrZWRFdmVudDQg
PSBmYWxzZTsKK2Z1bmN0aW9uIGJsb2NrZWRFdmVudEhhbmRsZXI0KGV2dCkKK3sKKyAgICBldmVu
dCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXI0
KCk6Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3Vs
ZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjQiKTsKKyAgICBzaG91bGRCZVRydWUoImdvdEJsb2Nr
ZWRFdmVudDIiKTsKKyAgICBldmFsQW5kTG9nKCJnb3RCbG9ja2VkRXZlbnQ0ID0gdHJ1ZSIpOwor
fQorCitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyNChldnQpCit7CisgICAgZXZl
bnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkRXZlbnRI
YW5kbGVyNCgpOiIpOworfQorCitmdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2s0KGV2dCkKK3sKKyAg
ICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInN1Y2Nlc3NDYWxsYmFj
azQoKToiKTsKK30KKworZnVuY3Rpb24gZXJyb3JIYW5kbGVyMyhldnQpCit7CisgICAgZXZlbnQg
PSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJlcnJvckhhbmRsZXIzKCk6Iik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGJsb2NrZWRFdmVudEhhbmRsZXIzKGV2
dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXIzKCk6
Iik7CisgICAgZGVidWcoIkZGIGFsc28gZmFpbHMgdGhpcyB0ZXN0LiIpOworICAgIHVuZXhwZWN0
ZWRCbG9ja2VkQ2FsbGJhY2soZXZ0KTsKK30KKworCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFt
ZXRlci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLW9taXQtcGFyYW1ldGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlN2QwZjNlODNlYTEzMTU3NDYwYWEw
MTkzODI0NDU2M2Y3ZTk1OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5qcwpAQCAtMCww
ICsxLDM4IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygn
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRT
Y3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBpbml0aWFs
IHZlcnNpb24gYWZ0ZXIgYSBzdWNjZXNzZnVsIG9wZW4gb2YgYSBub24tZXhpc3RlbnQgZGIgaXMg
MSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwor
ICAgIGRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxv
Y2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKCIvIikpOworCisgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKCkgeworICAgICAgdGVzdFBhc3NlZCgiR290IHVwZ3JhZGVuZWVkZWQgZXZlbnQiKTsKKyAg
ICB9Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7CisgICAgZGIgPSBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkZWJ1ZygiVGVzdCBs
aW5lIGZyb20gSURCRmFjdG9yeS5vcGVuOiBJZiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZCBhbmQg
bm8gZGF0YWJhc2UgZXhpc3RzLCBzZXQgZGF0YWJhc2UgdmVyc2lvbiB0byAxLiIpOworICAgIHNo
b3VsZEJlKCdkYi52ZXJzaW9uJywgJzEnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVz
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ODllZDM5MjZmYTliNTI0NDRhNzNlNmZhNTUyNzJjNTk0MDA0ODVkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24tb3Blbi13aXRoLXZlcnNpb24uanMKQEAgLTAsMCArMSw3NiBAQAoraWYgKHRoaXMuaW1wb3J0
U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisK
K2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hlbiBvcGVuaW5n
IGEgbm9uLWV4aXN0ZW50IGRiIGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGFuZCB0aGF0
IHRoZSB2ZXJzaW9uIG51bWJlciBpcyBzZXQgY29ycmVjdGx5LiIpOworCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGRibmFtZSA9IHNlbGYubG9j
YXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJ
bmRleE9mKCIvIikpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNj
ZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQor
CitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGRlYnVnKCJTaG91bGQgdHJpZ2dl
cjoiKTsKKyAgICBkZWJ1ZygiNC4xLjQ6IElmIG5vIGRhdGFiYXNlIHdpdGggdGhlIGdpdmVuIG5h
bWUgZnJvbSB0aGUgb3JpZ2luIG9yaWdpbiB3YXMgZm91bmQsIG9yIGlmIGl0IHdhcyBkZWxldGVk
IGR1cmluZyB0aGUgcHJldmlvdXMgc3RlcCwgdGhlbiBjcmVhdGUgYSBkYXRhYmFzZSB3aXRoIG5h
bWUgbmFtZSwgd2l0aCAwIGFzIHZlcnNpb24sIGFuZCB3aXRoIG5vIG9iamVjdCBzdG9yZXMuIExl
dCBkYiBiZSB0aGUgbmV3IGRhdGFiYXNlLiIpOworICAgIGRlYnVnKCI0LjEuNjogQ3JlYXRlIGEg
bmV3IGNvbm5lY3Rpb24gdG8gZGIgYW5kIGxldCBjb25uZWN0aW9uIHJlcHJlc2VudCBpdC4iKTsK
KyAgICBkZWJ1ZygiNC4xLjc6IElmIHRoZSB2ZXJzaW9uIG9mIGRiIGlzIGxvd2VyIHRoYW4gdmVy
c2lvbiwgdGhlbiBydW4gdGhlIHN0ZXBzIGZvciBydW5uaW5nIGEgXCJ2ZXJzaW9uY2hhbmdlXCIg
dHJhbnNhY3Rpb24gdXNpbmcgY29ubmVjdGlvbiwgdmVyc2lvbiwgcmVxdWVzdCBhbmQgdXBncmFk
ZSBjYWxsYmFjay4iKTsKKyAgICBkZWJ1ZygiNC4xLjk6IFJldHVybiBjb25uZWN0aW9uLiIpOwor
CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBw
bHkocmVxdWVzdCkiLCAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIpOworICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1
cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRD
YWxsYmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBzYXdVcGdyYWRlTmVlZGVkID0gZmFs
c2U7Cit2YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlOworZnVuY3Rpb24gdXBncmFk
ZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgdGVzdFBhc3NlZCgiSW4gdGhl
IHVwZ3JhZGVuZWVkZWQgZXZlbnQgaGFuZGVyOiIpOworICAgIGRlYnVnKCJUZXN0IDQuOC45LjE6
Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KGRiKSIs
ICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOworICAgIGRlYnVnKCJUZXN0IDQuOC45LjM6Iik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOworICAgIHNob3VsZEJlKCJldmVu
dC5uZXdWZXJzaW9uIiwgIjciKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRh
cmdldC5yZWFkeVN0YXRlIiwgImRvbmUiKTsKKyAgICBkZWJ1ZygiVGVzdCA0LjEuNDoiKTsKKyAg
ICBzaG91bGRCZSgiZGIubmFtZSIsICJkYm5hbWUiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lv
biIsICI3Iik7CisgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAi
KTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0
aW9uIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3Ry
aW5nLmFwcGx5KHRyYW5zYWN0aW9uKSIsICJbb2JqZWN0IElEQlRyYW5zYWN0aW9uXSIpOworICAg
IGV2YWxBbmRMb2coJ29zID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInNvbWVPUyIpJyk7CisgICAg
dHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihlKSB7CisgICAgICBldmFsQW5kTG9nKCJzYXdU
cmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZSIpOworICAgIH0KKyAgICBzYXdVcGdyYWRlTmVlZGVk
ID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0g
ZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKKyAgICBk
ZWJ1ZygiVGVzdCA0LjEuNywgdGhhdCBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gd2FzIHJ1
bi4iKTsKKyAgICBzaG91bGRCZSgic2F3VXBncmFkZU5lZWRlZCIsICJ0cnVlIik7CisgICAgc2hv
dWxkQmVUcnVlKCJzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIik7CisgICAgZGIgPSBldmFsQW5kTG9n
KCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkZWJ1ZygiS2luZCBvZiB0ZXN0IDQu
MS45OiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0
cmluZy5hcHBseShkYikiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAgICBzaG91bGRCZSgn
ZGIudmVyc2lvbicsICI3Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155087</attachid>
            <date>2012-07-27 16:34:22 -0700</date>
            <delta_ts>2012-07-27 16:39:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92560-20120727163410.patch</filename>
            <type>text/plain</type>
            <size>45492</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUzOGRjNTlmNTEwZmY5MTBjZDM4
ZmVjZmFmOTI2NTY3NzRiZTg3My4uOTc3NzM3NmRjZmQ0MGU4MTVhZWM4ZTQ2OTBmN2I3YWJkNjM4
NjNiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDEyLTA3LTI3ICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IGludGVnZXIgdmVyc2lv
biBsYXlvdXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkyNTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW9zdCBvZiB0aGUgaW50ZWdlciB2ZXJzaW9uIGxheW91dCB0ZXN0cyBhcmUgaGVyZSwg
d2l0aCBmYWlsdXJlcyBpbgorICAgICAgICB0aGUgZXhwZWN0ZWQgZmlsZXMuICBUaGlzIHdpbGwg
YWxsb3cgdXMgdG8gaW5jcmVtZW50YWxseSBpbXBsZW1lbnQKKyAgICAgICAgdXBncmFkZW5lZWRl
ZCBhbmQgaW50ZWdlciB2ZXJzaW9ucy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0
aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1i
bG9ja2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25j
b21wbGV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12
ZXJzaW9uLWZpcnN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRl
ZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgor
ICAgICAgICAodXBncmFkZU5lZWRlZCk6CisgICAgICAgIChvbkFib3J0KToKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAg
ICAob3BlblN1Y2Nlc3MpOgorICAgICAgICAoaW5TZXRWZXJzaW9uKToKKyAgICAgICAgKHNldFZl
cnNpb25Eb25lKToKKyAgICAgICAgKHNlY29uZE9wZW4pOgorICAgICAgICAoZmlyc3RVcGdyYWRl
TmVlZGVkKToKKyAgICAgICAgKHRyYW5zYWN0aW9uQ29tcGxldGVkKToKKyAgICAgICAgKGZpcnN0
T3BlbldpdGhWZXJzaW9uKToKKyAgICAgICAgKHNldFZlcnNpb25Ob3RBbGxvd2VkKToKKyAgICAg
ICAgKGVycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24pOgorICAgICAgICAoc2Vjb25kVXBncmFkZU5l
ZWRlZCk6CisgICAgICAgICh0aGlyZE9wZW5TdWNjZXNzKToKKyAgICAgICAgKGZvdXJ0aE9wZW5T
dWNjZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1ibG9ja2VkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoZGVsZXRlU3Vj
Y2Vzcy5yZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToK
KyAgICAgICAgKGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcik6CisgICAgICAgICh2ZXJzaW9uQ2hh
bmdlSGFuZGxlcik6CisgICAgICAgIChibG9ja2VkRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKHNl
Y29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIpOgorICAgICAgICAoc2Vjb25kU3VjY2Vzc0Nh
bGxiYWNrKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFkZU5lZWRlZC50cmFuc2FjdGlvbi5v
bmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAoY2xvc2VEQik6
CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFkZU5lZWRl
ZC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQpOgorICAg
ICAgICAob3BlblN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MucmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQpOgorICAg
ICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIp
OgorICAgICAgICAodmVyc2lvbkNoYW5nZUhhbmRsZXIpOgorICAgICAgICAoYmxvY2tlZEV2ZW50
SGFuZGxlcjIpOgorICAgICAgICAodXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjIpOgorICAgICAg
ICAoc3VjY2Vzc0NhbGxiYWNrMik6CisgICAgICAgIChibG9ja2VkRXZlbnRIYW5kbGVyNCk6Cisg
ICAgICAgICh1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyNCk6CisgICAgICAgIChzdWNjZXNzQ2Fs
bGJhY2s0KToKKyAgICAgICAgKGVycm9ySGFuZGxlcjMpOgorICAgICAgICAoYmxvY2tlZEV2ZW50
SGFuZGxlcjMpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLW9taXQtcGFyYW1ldGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAo
ZGVsZXRlU3VjY2Vzcy5yZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCk6CisgICAgICAgIChkZWxldGVT
dWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFk
ZU5lZWRlZC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQp
OgorICAgICAgICAob3BlblN1Y2Nlc3MpOgorCiAyMDEyLTA3LTI2ICBOYXlhbiBLdW1hciBLICA8
bmF5YW5ra0Btb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBJbml0aWFsIHNpemUgb2Yg
Y2FudmFzIGNhbiBiZSBsYXJnZXIgdGhhbiBNQVhfVklFV1BPUlRfRElNUy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlh
bC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kM2NmOGZiNWQ2ZTEwNDZmNWI5MjJkMzdjMjZiY2FjYjA5YjdlYTE5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTQgQEAKK1Rlc3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNl
dHMgdmVyc2lvbiBiYWNrIHRvIDAKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2lu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lLCAy
KQorRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVw
Z3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY4YWMw
ZDBlN2M5ODA1NTIzZGU0OGNhMDMyMTc2MWIzZjI1M2Y3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11
cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFs
LXVwZ3JhZGVuZWVkZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1z
ZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YTgxMDhm
NDIxYTFjODc2NjRiYzU2MDI2NTdlMTM0N2ZkOGU3NjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQ5IEBACitUZXN0IHRoYXQgaW50IHZlcnNpb24gdXBncmFkZXMg
YSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcgdmVyc2lvbnMgYXJlIHRoZW4gZGlzYWxs
b3dlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitGQUlMIFN0cmluZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJ
REJPcGVuREJSZXF1ZXN0XS4gV2FzIFtvYmplY3QgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RdLgor
CitDYWxsIG9wZW4gd2l0aCBubyB2ZXJzaW9uIHBhcmFtZXRlcjoKK2luZGV4ZWREQi5vcGVuKGRi
bmFtZSkKKworb3BlblN1Y2Nlc3MoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBk
Yi52ZXJzaW9uIGlzICIiCityZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic29tZSB2ZXJzaW9uIikK
KworaW5TZXRWZXJzaW9uKCk6CitQQVNTIGRiLnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIKKwor
c2V0VmVyc2lvbkRvbmUoKToKK1BBU1MgZGIudmVyc2lvbiBpcyAic29tZSB2ZXJzaW9uIgorZGIu
Y2xvc2UoKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNv
bmRPcGVuCisKK3NlY29uZE9wZW4oKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBT
dHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1BBU1MgZGIudmVyc2lvbiBpcyAi
c29tZSB2ZXJzaW9uIgorZGIuY2xvc2UoKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgMikKKworZmlyc3RPcGVuV2l0aFZlcnNpb24oKToKK0ZBSUwgZGlkVHJhbnNhY3Rpb25Db21w
bGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0
CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgorUEFTUyByZXF1ZXN0
LnRyYW5zYWN0aW9uIGlzIG51bGwKK0ZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgMiAob2YgdHlw
ZSBudW1iZXIpLiBXYXMgc29tZSB2ZXJzaW9uIChvZiB0eXBlIHN0cmluZykuCitGQUlMIFN0cmlu
ZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XS4gV2FzIFtvYmpl
Y3QgSURCUmVxdWVzdF0uCityZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic3RyaW5nIHZlcnNpb24g
MiIpCitQQVNTIFN0cmluZyhyZXF1ZXN0KSBpcyAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdF0iCityZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uTm90QWxsb3dlZAorRkFJTCBTdWNj
ZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUwNmRlZDM5ZTAxM2YzY2M1NTdjYmI2MDgzZjhlNzZmYWMyMjhmOGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1z
ZXR2ZXJzaW9uLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg2NjQ5ZjAzNDQ4MDQzZmZjNTJhYTg3ZDZhYzBiYTRlMTgwOWMxMWIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3QgdGhhdCBibG9j
a2VkIGV2ZW50cyBnZXQgZGVsaXZlcmVkIHByb3Blcmx5IHdpdGggdGhlIG5ldyBvcGVuIGFwaQor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUsIDIpCisKK2ZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgorRkFJTCBnb3RGaXJzdFVw
Z3JhZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorY29ubmVjdGlvbjEg
PSBldmVudC50YXJnZXQucmVzdWx0Citjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB2ZXJz
aW9uQ2hhbmdlSGFuZGxlcgorUEFTUyBTdHJpbmcoY29ubmVjdGlvbjEpIGlzICJbb2JqZWN0IElE
QkRhdGFiYXNlXSIKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpCisKK3NlY29u
ZFN1Y2Nlc3NDYWxsYmFjaygpOgorRkFJTCBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzODdkZWViODA0MDRhNTk3
NzEyYTMzYWRjODZhMThjNjNlZTRmOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDEwIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2
ZXJzaW9uLWJsb2NrZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3Nl
LWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjNmIxODc0MGM2ODdlOGNkNmIwMWViNGEzMDYxMTljYjQ4MmU3N2QKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJl
dHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACitUZXN0IHRoYXQgc3Bl
Y2lmeWluZyBhIHZlcnNpb24gd2hlbiBvcGVuaW5nIGEgbm9uLWV4aXN0ZW50IGRiIGNhdXNlcyBh
biB1cGdyYWRlbmVlZGVkIGV2ZW50IGFuZCB0aGF0IHRoZSB2ZXJzaW9uIG51bWJlciBpcyBzZXQg
Y29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3
KQorCisKK29wZW5TdWNjZXNzKCk6CitQQVNTIGRpZENhbGxDbG9zZURCIGlzIGZhbHNlCitGQUlM
IHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBl
IG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWUwZTNjMWE3MjhjNzNkNWEyNzAyZDEzMTU1MDU0OGU0NmYxMTZl
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWNs
b3NlLWJldHdlZW4tZXZlbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1j
bG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTdmMWNjMTUwNGEwNTlkNWZjZGE4Yzg0NzlhMzlmMmUxYmEzYjM3OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2Ut
aW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorVGVzdCB0aGF0IHNw
ZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBjYXVzZXMg
YW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgc2V0
IGNvcnJlY3RseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwg
NykKKworb3BlblN1Y2Nlc3MoKToKK0ZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitGQUlMIGRiLnZl
cnNpb24gc2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcp
LgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
J29zJywgJ3JlYWR3cml0ZScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorRkFJTCBjb2Rl
IHNob3VsZCBiZSAxMS4gV2FzIDguCitGQUlMIGVuYW1lIHNob3VsZCBiZSBJbnZhbGlkU3RhdGVF
cnJvci4gV2FzIE5vdEZvdW5kRXJyb3IuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNTljNjA1YjAzZDY4MTBhMzY2NzBhY2ZhNTI3NWMyMGEyODI5NjVhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9z
ZS1pbi1vbmNvbXBsZXRlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNv
bXBsZXRlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24t
Zmlyc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1oaWdoLXZlcnNpb24tZmlyc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3ODA5OTBi
MjMzZjg5YmI1MzA3ODdlN2ZjYjcxZWI4MzZlNDVmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorVGVzdCB0aGF0IGlmIHR3byBvcGVuIHJlcXVl
c3RzIGFyZSB3YWl0aW5nIGF0IHRoZSBzYW1lIHRpbWUsIHRoZSBvbmUgd2l0aCB0aGUgaGlnaGVy
IHZlcnNpb24gZ2V0cyBjYWxsZWQgZmlyc3QKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8
IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERC
OworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitkZWxldGVTdWNjZXNzKCk6
CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKQorCitmaXJzdFN1Y2Nlc3NFdmVu
dEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorY29ubmVj
dGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIKK3JlcXVlc3QyID0g
aW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQorcmVxdWVzdDMgPSBpbmRleGVkREIub3BlbihkYm5h
bWUsIDMpCityZXF1ZXN0NCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNCkKKworc3VjY2Vzc0Nh
bGxiYWNrMigpOgorUEFTUyBnb3RCbG9ja2VkRXZlbnQ0IGlzIGZhbHNlCitGQUlMIFN1Y2Nlc3Mg
ZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MzhjZTRiYmRlYzNlZDMyNGJlMzhjNTM2MGE4MjJmODFhMjJkYjYwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1o
aWdoLXZlcnNpb24tZmlyc3QuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lv
bi1maXJzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1vbWl0LXBhcmFtZXRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE4MDA1MTEwMWUyNTk2
NzhiNzk2NGEwNGI0MWU1Mzg0ODE2YTg1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3QgdGhhdCBpbml0aWFsIHZlcnNpb24gYWZ0ZXIgYSBzdWNj
ZXNzZnVsIG9wZW4gb2YgYSBub24tZXhpc3RlbnQgZGIgaXMgMQorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVk
REIub3BlbihkYm5hbWUpCisKK29wZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKK1Rlc3QgbGluZSBmcm9tIElEQkZhY3Rvcnkub3BlbjogSWYgbm8gdmVyc2lvbiBpcyBzcGVj
aWZpZWQgYW5kIG5vIGRhdGFiYXNlIGV4aXN0cywgc2V0IGRhdGFiYXNlIHZlcnNpb24gdG8gMS4K
K0ZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgMSAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0
eXBlIHN0cmluZykuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1vbWl0LXBhcmFtZXRlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiYjU0YTIwZGJhNGU1
YWVhNmQ3MjkzODI3MGQxNTNjODc2MDJkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwKQEAgLTAs
MCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTBhMGVjYmVmNzEzMTJmM2JkMjVlMWQzM2FlNWMyMTIyYTgxMTQ1YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKK1Rlc3Qg
dGhhdCBzcGVjaWZ5aW5nIGEgdmVyc2lvbiB3aGVuIG9wZW5pbmcgYSBub24tZXhpc3RlbnQgZGIg
Y2F1c2VzIGFuIHVwZ3JhZGVuZWVkZWQgZXZlbnQgYW5kIHRoYXQgdGhlIHZlcnNpb24gbnVtYmVy
IGlzIHNldCBjb3JyZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK1Nob3VsZCB0cmlnZ2VyOgorNC4xLjQ6IElm
IG5vIGRhdGFiYXNlIHdpdGggdGhlIGdpdmVuIG5hbWUgZnJvbSB0aGUgb3JpZ2luIG9yaWdpbiB3
YXMgZm91bmQsIG9yIGlmIGl0IHdhcyBkZWxldGVkIGR1cmluZyB0aGUgcHJldmlvdXMgc3RlcCwg
dGhlbiBjcmVhdGUgYSBkYXRhYmFzZSB3aXRoIG5hbWUgbmFtZSwgd2l0aCAwIGFzIHZlcnNpb24s
IGFuZCB3aXRoIG5vIG9iamVjdCBzdG9yZXMuIExldCBkYiBiZSB0aGUgbmV3IGRhdGFiYXNlLgor
NC4xLjY6IENyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGRiIGFuZCBsZXQgY29ubmVjdGlvbiBy
ZXByZXNlbnQgaXQuCis0LjEuNzogSWYgdGhlIHZlcnNpb24gb2YgZGIgaXMgbG93ZXIgdGhhbiB2
ZXJzaW9uLCB0aGVuIHJ1biB0aGUgc3RlcHMgZm9yIHJ1bm5pbmcgYSAidmVyc2lvbmNoYW5nZSIg
dHJhbnNhY3Rpb24gdXNpbmcgY29ubmVjdGlvbiwgdmVyc2lvbiwgcmVxdWVzdCBhbmQgdXBncmFk
ZSBjYWxsYmFjay4KKzQuMS45OiBSZXR1cm4gY29ubmVjdGlvbi4KK3JlcXVlc3QgPSBpbmRleGVk
REIub3BlbihkYm5hbWUsIDcpCitGQUlMIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHko
cmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0
IElEQlJlcXVlc3RdLgorCisKK29wZW5TdWNjZXNzKCk6CitUZXN0IDQuMS43LCB0aGF0IGEgdmVy
c2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB3YXMgcnVuLgorRkFJTCBzYXdVcGdyYWRlTmVlZGVkIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitGQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorS2luZCBv
ZiB0ZXN0IDQuMS45OgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KGRiKSBp
cyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9m
IHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lOGM3M2Q0NGY4MmIyMTdhY2U3YzEyMTc2MDhiMGFhZjE3NGFjMjlh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13
aXRoLXZlcnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVu
ZWVkZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVlMWFlNmYzNzY1ZjI0NDgzZjRkYjRiNWMzN2M5MTAzMzVj
ODQ5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5qcwpAQCAt
MCwwICsxLDQ2IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0
cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBv
cnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhbiBh
Ym9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBiYWNrIHRvIDAi
KTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAg
ICBkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygxICsgc2VsZi5sb2Nh
dGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICByZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQ7Cit9CisKK2Z1bmN0aW9uIHVwZ3JhZGVO
ZWVkZWQoZXZ0KQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidXBncmFkZU5lZWRlZCgp
OiIpOworICAgIGV2ZW50ID0gZXZ0OworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAg
ICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIyIik7CisgICAgdHJhbnNhY3Rpb24gPSBldmVudC50
YXJnZXQudHJhbnNhY3Rpb247CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHVuZXhwZWN0
ZWRDb21wbGV0ZUNhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSBvbkFib3J0Owor
ICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uLmFib3J0KCkiKTsKK30KKworZnVuY3Rpb24gb25B
Ym9ydChldnQpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvbkFib3J0KCk6Iik7Cisg
ICAgZXZlbnQgPSBldnQ7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5kYi52ZXJzaW9uIiwg
IjAiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZl
cnNpb24uanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVy
c2lvbi1hbmQtc2V0dmVyc2lvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmI2ZWM3NzkxNThkN2JjZTI1ZDVh
NTFlMDIxMGZkYTExMGFjYWM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uanMKQEAgLTAs
MCArMSwxODkgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRz
KCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9y
dFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGludCB2
ZXJzaW9uIHVwZ3JhZGVzIGEgc3RyaW5nIHZlcnNpb24gYW5kIHRoYXQgc3RyaW5nIHZlcnNpb25z
IGFyZSB0aGVuIGRpc2FsbG93ZWQiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3Zl
VmVuZG9yUHJlZml4ZXMoKTsKKyAgICBkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLnN1
YnN0cmluZygxICsgc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKTsKKwor
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QpIiwgIltvYmpl
Y3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1
Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9
CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgZGVidWcoIiIpOworICAgIGRl
YnVnKCJDYWxsIG9wZW4gd2l0aCBubyB2ZXJzaW9uIHBhcmFtZXRlcjoiKTsKKyAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1bmV4cGVjdGVkVXBn
cmFkZU5lZWRlZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7Cisg
ICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2Vzcygp
OiIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgIiIpOworICAgIGV2YWxBbmRM
b2coJ3JlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCJzb21lIHZlcnNpb24iKScpOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gaW5TZXRWZXJzaW9uOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gaW5TZXRWZXJzaW9uKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImluU2V0VmVyc2lvbigpOiIp
OworICAgIHRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICB0cmFucy5vbmNvbXBsZXRl
ID0gc2V0VmVyc2lvbkRvbmU7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENh
bGxiYWNrOworICAgIGRiID0gdHJhbnMuZGI7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJk
Yi52ZXJzaW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAgIC8vIEZJWE1FOiBBZGQgYSB0ZXN0IHRo
YXQgY2FsbHMgb3BlbiB3aXRoIHZlcnNpb24gZnJvbSBoZXJlLgorfQorCitmdW5jdGlvbiBzZXRW
ZXJzaW9uRG9uZShldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAg
IGRlYnVnKCJzZXRWZXJzaW9uRG9uZSgpOiIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LmRiOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJzb21lIHZlcnNpb24iKTsK
KyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHNlY29uZE9wZW4iKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVuZXhwZWN0ZWRVcGdy
YWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHNlY29uZE9wZW4oZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic2Vjb25kT3BlbigpOiIp
OworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJzb21lIHZlcnNpb24iKTsK
KyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgLy8gRklYTUU6IEFkZCB0ZXN0cyB0
aGF0IGNhbGwgaXQgd2l0aCAwLCAtMSwgYW5kIC00LgorICAgIGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSBmaXJzdFVwZ3JhZGVOZWVkZWQKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2Vk
Q2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdE9wZW5XaXRoVmVyc2lvbjsK
K30KKworZnVuY3Rpb24gZmlyc3RVcGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2
dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImZpcnN0VXBncmFkZU5lZWRlZCgpOiIpOwor
ICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiU3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QudHJhbnNhY3Rpb24pIiwgIltv
YmplY3QgSURCVHJhbnNhY3Rpb25dIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC5vbGRWZXJzaW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdW
ZXJzaW9uIiwgIjIiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0LnRyYW5zYWN0aW9uLm9uY29t
cGxldGUgPSB0cmFuc2FjdGlvbkNvbXBsZXRlZCIpOworICAgIHJlcXVlc3QudHJhbnNhY3Rpb24u
b25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworfQorCit2YXIgZGlkVHJhbnNhY3Rp
b25Db21wbGV0ZSA9IGZhbHNlOworZnVuY3Rpb24gdHJhbnNhY3Rpb25Db21wbGV0ZWQoZXZ0KQor
eworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidHJhbnNhY3Rp
b25Db21wbGV0ZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkaWRUcmFuc2FjdGlvbkNvbXBsZXRl
ID0gdHJ1ZSIpOworfQorCitmdW5jdGlvbiBmaXJzdE9wZW5XaXRoVmVyc2lvbihldnQpCit7Cisg
ICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmaXJzdE9wZW5XaXRo
VmVyc2lvbigpOiIpOworICAgIHNob3VsZEJlVHJ1ZSgiZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSIp
OworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOwor
ICAgIHNob3VsZEJlTnVsbCgicmVxdWVzdC50cmFuc2FjdGlvbiIpOworICAgIHNob3VsZEJlKCJk
Yi52ZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1
ZXN0KSIsICJbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdIik7CisgICAgZXZhbEFuZExvZygncmVx
dWVzdCA9IGRiLnNldFZlcnNpb24oInN0cmluZyB2ZXJzaW9uIDIiKScpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QpIiwgIltvYmplY3QgSURCVmVyc2lvbkNoYW5n
ZVJlcXVlc3RdIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENh
bGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFj
azsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uTm90QWxsb3dl
ZCIpOworfQorCitmdW5jdGlvbiBzZXRWZXJzaW9uTm90QWxsb3dlZChldnQpCit7CisgICAgZXZl
bnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzZXRWZXJzaW9uTm90QWxsb3dl
ZCgpOiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJlcnJvciIp
OworICAgIGRlYnVnKCJyZXF1ZXN0LndlYmtpdEVycm9yTWVzc2FnZSA9ICIgKyByZXF1ZXN0Lndl
YmtpdEVycm9yTWVzc2FnZSk7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDEpIik7CisgICAgZXZh
bEFuZExvZygicmVxdWVzdC5vbmVycm9yID0gZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbiIpOwor
ICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7Cit9CisKK2Z1bmN0
aW9uIGVycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24oZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0Owor
ICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbigpOiIp
OworICAgIGRlYnVnKCJyZXF1ZXN0LndlYmtpdEVycm9yTWVzc2FnZSA9ICIgKyByZXF1ZXN0Lndl
YmtpdEVycm9yTWVzc2FnZSk7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSwgNCkiKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBzZWNvbmRVcGdy
YWRlTmVlZGVkIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSB0aGlyZE9w
ZW5TdWNjZXNzIik7Cit9CisKK3ZhciBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkID0gZmFsc2U7Citm
dW5jdGlvbiBzZWNvbmRVcGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNlY29uZFVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBl
dmFsQW5kTG9nKCJnb3RTZWNvbmRVcGdyYWRlTmVlZGVkID0gdHJ1ZSIpOworICAgIHNob3VsZEJl
KCJldmVudC5vbGRWZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lv
biIsICI0Iik7Cit9CisKK2Z1bmN0aW9uIHRoaXJkT3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2
ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidGhpcmRPcGVuU3VjY2Vzcygp
OiIpOworICAgIHNob3VsZEJlVHJ1ZSgiZ290U2Vjb25kVXBncmFkZU5lZWRlZCIpOworICAgIGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJkYi52
ZXJzaW9uIiwgIjQiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgZXZhbEFu
ZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IGZvdXJ0aE9wZW5TdWNjZXNzIik7CisgICAgcmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQgPSB1bmV4cGVjdGVkVXBncmFkZU5lZWRlZENhbGxiYWNrOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1
bmN0aW9uIGZvdXJ0aE9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoImZvdXJ0aE9wZW5TdWNjZXNzKCk6Iik7CisgICAgZXZhbEFu
ZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNp
b24iLCAiNCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9j
a2VkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24tYmxvY2tlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTQ5NDVhZGYxMzI0MjQ4MzNlZTc1NDUzZWM3YjEx
MDNkMTEzNDhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYmxvY2tlZC5qcwpAQCAtMCwwICsxLDk2IEBACitpZiAo
dGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQu
anMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBibG9ja2VkIGV2ZW50cyBnZXQgZGVs
aXZlcmVkIHByb3Blcmx5IHdpdGggdGhlIG5ldyBvcGVuIGFwaSIpOworCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGRibmFtZSA9IHNlbGYubG9j
YXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJ
bmRleE9mKCIvIikpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2Vz
czsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKwor
ZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
ImRlbGV0ZVN1Y2Nlc3MoKToiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RTdWNjZXNz
RXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgIGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7CisgICAgcmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgIGV2ZW50ID0gZXZ0Owor
ICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWcoInJlcXVlc3Qub251cGdyYWRlbmVlZGVkKCk6
Iik7CisgICAgICBldmFsQW5kTG9nKCJnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWUi
KTsKKyAgICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICAgIHNob3Vs
ZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjIiKTsKKyAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiU3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0IElEQlVwZ3JhZGVOZWVkZWRFdmVudF0iKTsKKyAg
ICB9Cit9CisKK2dvdEJsb2NrZWRFdmVudCA9IGZhbHNlOworZnVuY3Rpb24gZmlyc3RTdWNjZXNz
RXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZGVidWcoImZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOiIpCisgICAgc2hvdWxkQmVUcnVl
KCJnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rp
b24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24x
Lm9udmVyc2lvbmNoYW5nZSA9IHZlcnNpb25DaGFuZ2VIYW5kbGVyIik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJTdHJpbmcoY29ubmVjdGlvbjEpIiwgIltvYmplY3QgSURCRGF0YWJhc2Vd
Iik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMyki
KTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNlY29uZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9u
YmxvY2tlZCA9IGJsb2NrZWRFdmVudEhhbmRsZXI7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSBzZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyOworfQorCit2YXIgc2F3VmVyc2lv
bkNoYW5nZUV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiB2ZXJzaW9uQ2hhbmdlSGFuZGxlcihldnQp
Cit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ2ZXJzaW9u
Q2hhbmdlSGFuZGxlcigpOiIpOworICAgIGV2YWxBbmRMb2coInNhd1ZlcnNpb25DaGFuZ2VFdmVu
dCA9IHRydWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVy
c2lvbmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGV2ZW50KSIs
ICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0iKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
b2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMyIp
OworfQorCitmdW5jdGlvbiBibG9ja2VkRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBldmVudCA9
IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXIoKToi
KTsKKyAgICBzaG91bGRCZVRydWUoInNhd1ZlcnNpb25DaGFuZ2VFdmVudCIpOworICAgIGV2YWxB
bmRMb2coImdvdEJsb2NrZWRFdmVudCA9IHRydWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIlN0cmluZyhldmVudCkiLCAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdIik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVu
dC5uZXdWZXJzaW9uIiwgIjMiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5
cGUiLCAiYmxvY2tlZCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsK
K30KKworZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiBzZWNv
bmRVcGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAg
ZGVidWcoInNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIoKToiKTsKKyAgICBzaG91bGRC
ZVRydWUoImdvdEJsb2NrZWRFdmVudCIpOworICAgIGV2YWxBbmRMb2coImdvdFNlY29uZFVwZ3Jh
ZGVOZWVkZWRFdmVudCA9IHRydWUiKTsKK30KKworZnVuY3Rpb24gc2Vjb25kU3VjY2Vzc0NhbGxi
YWNrKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNlY29uZFN1Y2Nlc3NDYWxs
YmFjaygpOiIpOworICAgIHNob3VsZEJlVHJ1ZSgiZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50
Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWJldHdl
ZW4tZXZlbnRzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lu
dHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkyOTU4ZGMzZDE5
OWJlMGQ3YTg4MmU1NGQzNmIyZGRjOTk1YmE3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4t
ZXZlbnRzLmpzCkBAIC0wLDAgKzEsNjkgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAg
ICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigi
VGVzdCB0aGF0IHNwZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVu
dCBkYiBjYXVzZXMgYW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBu
dW1iZXIgaXMgc2V0IGNvcnJlY3RseS4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVt
b3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1l
LnN1YnN0cmluZygxICsgc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKTsK
KworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVs
ZXRlU3VjY2VzcyhldnQpIHsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9w
ZW4oZGJuYW1lLCA3KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Cisg
ICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qu
b25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBkZWJ1ZygiIik7Cit9
CisKK3ZhciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRl
TmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVi
dWcoInVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI3Iik7CisKKyAg
ICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIpOwor
ICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICB0
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgZGVidWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7CisgICAgICAg
IGV2YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgICAgIGV2
YWxBbmRMb2coInNldFRpbWVvdXQoY2xvc2VEQiwgMCkiKTsKKyAgICB9Cit9CisKK3ZhciBkaWRD
YWxsQ2xvc2VEQiA9IGZhbHNlOworZnVuY3Rpb24gY2xvc2VEQigpCit7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJjbG9zZURCKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGlkQ2FsbENsb3Nl
REIgPSB0cnVlIik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBl
dnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIHNo
b3VsZEJlRmFsc2UoImRpZENhbGxDbG9zZURCIik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdUcmFu
c2FjdGlvbkNvbXBsZXRlIik7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICI3Iik7CisgICAgaWYgKGRi
LnZlcnNpb24gIT09IDcpCisgICAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24tY2xvc2UtaW4tb25jb21wbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmJkOTU4YWEwZTYwZGQ0OTU1Yzg2OTYzNTkxYjQ5OTdmMjVhZmI5OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNs
b3NlLWluLW9uY29tcGxldGUuanMKQEAgLTAsMCArMSw1OCBAQAoraWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUZXN0IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hlbiBvcGVuaW5nIGEg
bm9uLWV4aXN0ZW50IGRiIGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGFuZCB0aGF0IHRo
ZSB2ZXJzaW9uIG51bWJlciBpcyBzZXQgY29ycmVjdGx5LiIpOworCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGRibmFtZSA9IHNlbGYubG9jYXRp
b24ucGF0aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRl
eE9mKCIvIikpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNz
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitm
dW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBp
bmRleGVkREIub3BlbihkYm5hbWUsIDcpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVu
U3VjY2VzczsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQ7Cisg
ICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworfQorCit2
YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlOworZnVuY3Rpb24gdXBncmFkZU5lZWRl
ZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ1
cGdyYWRlTmVlZGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiNyIpOworICAgIGV2YWxB
bmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKFwib3NcIikiKTsKKworICAgIGV2YWxBbmRMb2co
InRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CisgICAgdHJhbnNhY3Rp
b24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9u
Y29tcGxldGUgPSBmdW5jdGlvbihlKQorICAgIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICBkZWJ1ZygidHJhbnNhY3Rpb24ub25jb21wbGV0ZToiKTsKKyAgICAgICAgZXZhbEFuZExvZygi
c2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUiKTsKKyAgICAgICAgZXZhbEFuZExvZygiZGIu
Y2xvc2UoKSIpOworICAgIH0KK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToi
KTsKKyAgICBzaG91bGRCZVRydWUoInNhd1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBldmFs
QW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgnZGIudmVy
c2lvbicsICI3Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigidHJhbnNhY3Rpb24gPSBk
Yi50cmFuc2FjdGlvbignb3MnLCAncmVhZHdyaXRlJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURf
U1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjliNzU4YWY0ZTYwZjYyNzg5YjExMDllZjk0ZDNkY2FlZmRkNzA5NTkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QuanMKQEAgLTAsMCArMSwxNTAgQEAKK2lm
ICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJl
ZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGlmIHR3byBvcGVuIHJlcXVlc3Rz
IGFyZSB3YWl0aW5nIGF0IHRoZSBzYW1lIHRpbWUsIHRoZSBvbmUgd2l0aCB0aGUgaGlnaGVyIHZl
cnNpb24gZ2V0cyBjYWxsZWQgZmlyc3QiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVt
b3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1l
LnN1YnN0cmluZygxICsgc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKTsK
KyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0
ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJkZWxldGVTdWNjZXNz
KCk6Iik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwg
MSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcjsK
KyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBnb3RG
aXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IGZhbHNlOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICBldmVudCA9IGV2dDsKKyAgICAgIGRlYnVnKCIi
KTsKKyAgICAgIGRlYnVnKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCgpOiIpOworICAgICAgZXZh
bEFuZExvZygiZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlIik7CisgICAgICBzaG91
bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7CisgICAgICBzaG91bGRCZSgiZXZlbnQubmV3
VmVyc2lvbiIsICIxIik7CisgICAgfQorfQorCitmdW5jdGlvbiBmaXJzdFN1Y2Nlc3NFdmVudEhh
bmRsZXIoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygiZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKCk6IikKKyAgICBzaG91bGRCZVRydWUoImdvdEZp
cnN0VXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEub252ZXJz
aW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0MiA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0MyA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMykiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0NCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNCkiKTsKKyAgICByZXF1ZXN0Mi5vbnN1Y2Nl
c3MgPSBzdWNjZXNzQ2FsbGJhY2syOworICAgIHJlcXVlc3QyLm9uYmxvY2tlZCA9IGJsb2NrZWRF
dmVudEhhbmRsZXIyOworICAgIHJlcXVlc3QyLm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVk
ZWRFdmVudEhhbmRsZXIyOworICAgIHJlcXVlc3QyLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKKworICAgIHJlcXVlc3QzLm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdDMub25ibG9ja2VkID0gYmxvY2tlZEV2ZW50SGFuZGxlcjM7Cisg
ICAgcmVxdWVzdDMub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxs
YmFjazsKKyAgICByZXF1ZXN0My5vbmVycm9yID0gZXJyb3JIYW5kbGVyMzsKKworICAgIHJlcXVl
c3Q0Lm9uc3VjY2VzcyA9IHN1Y2Nlc3NDYWxsYmFjazQ7CisgICAgcmVxdWVzdDQub25ibG9ja2Vk
ID0gYmxvY2tlZEV2ZW50SGFuZGxlcjQ7CisgICAgcmVxdWVzdDQub251cGdyYWRlbmVlZGVkID0g
dXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjQ7CisgICAgcmVxdWVzdDQub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCit2YXIgdmVyc2lvbkNoYW5nZUV2ZW50c1NlZW4gPSAw
OworZnVuY3Rpb24gdmVyc2lvbkNoYW5nZUhhbmRsZXIoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0
OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidmVyc2lvbkNoYW5nZUhhbmRsZXIoKToiKTsK
KyAgICBkZWJ1ZygiKyt2ZXJzaW9uQ2hhbmdlRXZlbnRzU2VlbiA9ICIgKyAoKyt2ZXJzaW9uQ2hh
bmdlRXZlbnRzU2VlbikpOworICAgIGRlYnVnKCJldmVudC5vbGRWZXJzaW9uID0gIiArIGV2ZW50
Lm9sZFZlcnNpb24pOworICAgIGRlYnVnKCJldmVudC5uZXdWZXJzaW9uID0gIiArIGV2ZW50Lm5l
d1ZlcnNpb24pOworfQorCit2YXIgZ290QmxvY2tlZEV2ZW50MiA9IGZhbHNlOworZnVuY3Rpb24g
YmxvY2tlZEV2ZW50SGFuZGxlcjIoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiYmxvY2tlZEV2ZW50SGFuZGxlcjIoKToiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQub2xkVmVyc2lvbiIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNp
b24iLCAiMiIpOworICAgIHNob3VsZEJlRmFsc2UoImdvdEJsb2NrZWRFdmVudDQiKTsKKyAgICBl
dmFsQW5kTG9nKCJnb3RCbG9ja2VkRXZlbnQyID0gdHJ1ZSIpOworICAgIGV2YWxBbmRMb2coImNv
bm5lY3Rpb24xLmNsb3NlKCkiKTsKKyAgICBpZiAoZ290QmxvY2tlZEV2ZW50NCkKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIy
KGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVw
Z3JhZGVOZWVkZWRFdmVudEhhbmRsZXIyKCk6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiZ290Qmxv
Y2tlZEV2ZW50NCIpOworICAgIGlmIChnb3RCbG9ja2VkRXZlbnQ0KQorICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrMihldnQpCit7CisgICAgZXZl
bnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzdWNjZXNzQ2FsbGJhY2syKCk6
Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiZ290QmxvY2tlZEV2ZW50NCIpOworICAgIGlmIChnb3RC
bG9ja2VkRXZlbnQ0KQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIGdvdEJsb2Nr
ZWRFdmVudDQgPSBmYWxzZTsKK2Z1bmN0aW9uIGJsb2NrZWRFdmVudEhhbmRsZXI0KGV2dCkKK3sK
KyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImJsb2NrZWRFdmVu
dEhhbmRsZXI0KCk6Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOwor
ICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjQiKTsKKyAgICBzaG91bGRCZVRydWUo
ImdvdEJsb2NrZWRFdmVudDIiKTsKKyAgICBldmFsQW5kTG9nKCJnb3RCbG9ja2VkRXZlbnQ0ID0g
dHJ1ZSIpOworfQorCitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyNChldnQpCit7
CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRlTmVl
ZGVkRXZlbnRIYW5kbGVyNCgpOiIpOworfQorCitmdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2s0KGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInN1Y2Nl
c3NDYWxsYmFjazQoKToiKTsKK30KKworZnVuY3Rpb24gZXJyb3JIYW5kbGVyMyhldnQpCit7Cisg
ICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJlcnJvckhhbmRsZXIz
KCk6Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGJsb2NrZWRFdmVudEhh
bmRsZXIzKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImJsb2NrZWRFdmVudEhh
bmRsZXIzKCk6Iik7CisgICAgZGVidWcoIkZGIGFsc28gZmFpbHMgdGhpcyB0ZXN0LiIpOworICAg
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2soZXZ0KTsKK30KKworCit0ZXN0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1v
bWl0LXBhcmFtZXRlci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlN2QwZjNlODNlYTEz
MTU3NDYwYWEwMTkzODI0NDU2M2Y3ZTk1OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5q
cwpAQCAtMCwwICsxLDM4IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0
U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAg
ICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhh
dCBpbml0aWFsIHZlcnNpb24gYWZ0ZXIgYSBzdWNjZXNzZnVsIG9wZW4gb2YgYSBub24tZXhpc3Rl
bnQgZGIgaXMgMSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVm
aXhlcygpOworICAgIGRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEg
KyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKCIvIikpOworCisgICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2
dCkgeworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKCkgeworICAgICAgdGVzdFBhc3NlZCgiR290IHVwZ3JhZGVuZWVkZWQgZXZl
bnQiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVu
dCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Cisg
ICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkZWJ1
ZygiVGVzdCBsaW5lIGZyb20gSURCRmFjdG9yeS5vcGVuOiBJZiBubyB2ZXJzaW9uIGlzIHNwZWNp
ZmllZCBhbmQgbm8gZGF0YWJhc2UgZXhpc3RzLCBzZXQgZGF0YWJhc2UgdmVyc2lvbiB0byAxLiIp
OworICAgIHNob3VsZEJlKCdkYi52ZXJzaW9uJywgJzEnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanMgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ODllZDM5MjZmYTliNTI0NDRhNzNlNmZhNTUyNzJjNTk0MDA0ODVkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanMKQEAgLTAsMCArMSw3NiBAQAoraWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpz
Jyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hl
biBvcGVuaW5nIGEgbm9uLWV4aXN0ZW50IGRiIGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50
IGFuZCB0aGF0IHRoZSB2ZXJzaW9uIG51bWJlciBpcyBzZXQgY29ycmVjdGx5LiIpOworCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGRibmFtZSA9
IHNlbGYubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lLmxhc3RJbmRleE9mKCIvIikpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBk
ZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGRlYnVnKCJTaG91
bGQgdHJpZ2dlcjoiKTsKKyAgICBkZWJ1ZygiNC4xLjQ6IElmIG5vIGRhdGFiYXNlIHdpdGggdGhl
IGdpdmVuIG5hbWUgZnJvbSB0aGUgb3JpZ2luIG9yaWdpbiB3YXMgZm91bmQsIG9yIGlmIGl0IHdh
cyBkZWxldGVkIGR1cmluZyB0aGUgcHJldmlvdXMgc3RlcCwgdGhlbiBjcmVhdGUgYSBkYXRhYmFz
ZSB3aXRoIG5hbWUgbmFtZSwgd2l0aCAwIGFzIHZlcnNpb24sIGFuZCB3aXRoIG5vIG9iamVjdCBz
dG9yZXMuIExldCBkYiBiZSB0aGUgbmV3IGRhdGFiYXNlLiIpOworICAgIGRlYnVnKCI0LjEuNjog
Q3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gdG8gZGIgYW5kIGxldCBjb25uZWN0aW9uIHJlcHJlc2Vu
dCBpdC4iKTsKKyAgICBkZWJ1ZygiNC4xLjc6IElmIHRoZSB2ZXJzaW9uIG9mIGRiIGlzIGxvd2Vy
IHRoYW4gdmVyc2lvbiwgdGhlbiBydW4gdGhlIHN0ZXBzIGZvciBydW5uaW5nIGEgXCJ2ZXJzaW9u
Y2hhbmdlXCIgdHJhbnNhY3Rpb24gdXNpbmcgY29ubmVjdGlvbiwgdmVyc2lvbiwgcmVxdWVzdCBh
bmQgdXBncmFkZSBjYWxsYmFjay4iKTsKKyAgICBkZWJ1ZygiNC4xLjk6IFJldHVybiBjb25uZWN0
aW9uLiIpOworCisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgNykiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuYXBwbHkocmVxdWVzdCkiLCAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIpOworICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQgPSB1cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBzYXdVcGdyYWRlTmVl
ZGVkID0gZmFsc2U7Cit2YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlOworZnVuY3Rp
b24gdXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgdGVzdFBhc3Nl
ZCgiSW4gdGhlIHVwZ3JhZGVuZWVkZWQgZXZlbnQgaGFuZGVyOiIpOworICAgIGRlYnVnKCJUZXN0
IDQuOC45LjE6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFw
cGx5KGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOworICAgIGRlYnVnKCJUZXN0IDQuOC45
LjM6Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOworICAgIHNob3Vs
ZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjciKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIiwgImRvbmUiKTsKKyAgICBkZWJ1ZygiVGVzdCA0LjEu
NDoiKTsKKyAgICBzaG91bGRCZSgiZGIubmFtZSIsICJkYm5hbWUiKTsKKyAgICBzaG91bGRCZSgi
ZGIudmVyc2lvbiIsICI3Iik7CisgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMubGVu
Z3RoIiwgIjAiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0
LnRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLmFwcGx5KHRyYW5zYWN0aW9uKSIsICJbb2JqZWN0IElEQlRyYW5zYWN0aW9u
XSIpOworICAgIGV2YWxBbmRMb2coJ29zID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInNvbWVPUyIp
Jyk7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwor
ICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihlKSB7CisgICAgICBldmFsQW5k
TG9nKCJzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZSIpOworICAgIH0KKyAgICBzYXdVcGdy
YWRlTmVlZGVkID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToi
KTsKKyAgICBkZWJ1ZygiVGVzdCA0LjEuNywgdGhhdCBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rp
b24gd2FzIHJ1bi4iKTsKKyAgICBzaG91bGRCZSgic2F3VXBncmFkZU5lZWRlZCIsICJ0cnVlIik7
CisgICAgc2hvdWxkQmVUcnVlKCJzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIik7CisgICAgZGIgPSBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkZWJ1ZygiS2luZCBv
ZiB0ZXN0IDQuMS45OiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5hcHBseShkYikiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAgICBz
aG91bGRCZSgnZGIudmVyc2lvbicsICI3Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rl
c3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155088</attachid>
            <date>2012-07-27 16:39:45 -0700</date>
            <delta_ts>2012-07-30 13:03:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92560-20120727163933.patch</filename>
            <type>text/plain</type>
            <size>45394</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUzOGRjNTlmNTEwZmY5MTBjZDM4
ZmVjZmFmOTI2NTY3NzRiZTg3My4uOTc3NzM3NmRjZmQ0MGU4MTVhZWM4ZTQ2OTBmN2I3YWJkNjM4
NjNiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDEyLTA3LTI3ICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IGludGVnZXIgdmVyc2lv
biBsYXlvdXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkyNTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW9zdCBvZiB0aGUgaW50ZWdlciB2ZXJzaW9uIGxheW91dCB0ZXN0cyBhcmUgaGVyZSwg
d2l0aCBmYWlsdXJlcyBpbgorICAgICAgICB0aGUgZXhwZWN0ZWQgZmlsZXMuICBUaGlzIHdpbGwg
YWxsb3cgdXMgdG8gaW5jcmVtZW50YWxseSBpbXBsZW1lbnQKKyAgICAgICAgdXBncmFkZW5lZWRl
ZCBhbmQgaW50ZWdlciB2ZXJzaW9ucy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0
aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1i
bG9ja2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25j
b21wbGV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12
ZXJzaW9uLWZpcnN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRl
ZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgor
ICAgICAgICAodXBncmFkZU5lZWRlZCk6CisgICAgICAgIChvbkFib3J0KToKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAg
ICAob3BlblN1Y2Nlc3MpOgorICAgICAgICAoaW5TZXRWZXJzaW9uKToKKyAgICAgICAgKHNldFZl
cnNpb25Eb25lKToKKyAgICAgICAgKHNlY29uZE9wZW4pOgorICAgICAgICAoZmlyc3RVcGdyYWRl
TmVlZGVkKToKKyAgICAgICAgKHRyYW5zYWN0aW9uQ29tcGxldGVkKToKKyAgICAgICAgKGZpcnN0
T3BlbldpdGhWZXJzaW9uKToKKyAgICAgICAgKHNldFZlcnNpb25Ob3RBbGxvd2VkKToKKyAgICAg
ICAgKGVycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24pOgorICAgICAgICAoc2Vjb25kVXBncmFkZU5l
ZWRlZCk6CisgICAgICAgICh0aGlyZE9wZW5TdWNjZXNzKToKKyAgICAgICAgKGZvdXJ0aE9wZW5T
dWNjZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1ibG9ja2VkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoZGVsZXRlU3Vj
Y2Vzcy5yZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToK
KyAgICAgICAgKGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcik6CisgICAgICAgICh2ZXJzaW9uQ2hh
bmdlSGFuZGxlcik6CisgICAgICAgIChibG9ja2VkRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKHNl
Y29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIpOgorICAgICAgICAoc2Vjb25kU3VjY2Vzc0Nh
bGxiYWNrKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFkZU5lZWRlZC50cmFuc2FjdGlvbi5v
bmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAoY2xvc2VEQik6
CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFkZU5lZWRl
ZC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQpOgorICAg
ICAgICAob3BlblN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MucmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQpOgorICAg
ICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIp
OgorICAgICAgICAodmVyc2lvbkNoYW5nZUhhbmRsZXIpOgorICAgICAgICAoYmxvY2tlZEV2ZW50
SGFuZGxlcjIpOgorICAgICAgICAodXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjIpOgorICAgICAg
ICAoc3VjY2Vzc0NhbGxiYWNrMik6CisgICAgICAgIChibG9ja2VkRXZlbnRIYW5kbGVyNCk6Cisg
ICAgICAgICh1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyNCk6CisgICAgICAgIChzdWNjZXNzQ2Fs
bGJhY2s0KToKKyAgICAgICAgKGVycm9ySGFuZGxlcjMpOgorICAgICAgICAoYmxvY2tlZEV2ZW50
SGFuZGxlcjMpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLW9taXQtcGFyYW1ldGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAo
ZGVsZXRlU3VjY2Vzcy5yZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCk6CisgICAgICAgIChkZWxldGVT
dWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFk
ZU5lZWRlZC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQp
OgorICAgICAgICAob3BlblN1Y2Nlc3MpOgorCiAyMDEyLTA3LTI2ICBOYXlhbiBLdW1hciBLICA8
bmF5YW5ra0Btb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBJbml0aWFsIHNpemUgb2Yg
Y2FudmFzIGNhbiBiZSBsYXJnZXIgdGhhbiBNQVhfVklFV1BPUlRfRElNUy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlh
bC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kM2NmOGZiNWQ2ZTEwNDZmNWI5MjJkMzdjMjZiY2FjYjA5YjdlYTE5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTQgQEAKK1Rlc3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNl
dHMgdmVyc2lvbiBiYWNrIHRvIDAKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2lu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lLCAy
KQorRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVw
Z3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY4YWMw
ZDBlN2M5ODA1NTIzZGU0OGNhMDMyMTc2MWIzZjI1M2Y3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11
cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFs
LXVwZ3JhZGVuZWVkZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1z
ZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YTgxMDhm
NDIxYTFjODc2NjRiYzU2MDI2NTdlMTM0N2ZkOGU3NjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQ5IEBACitUZXN0IHRoYXQgaW50IHZlcnNpb24gdXBncmFkZXMg
YSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcgdmVyc2lvbnMgYXJlIHRoZW4gZGlzYWxs
b3dlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitGQUlMIFN0cmluZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJ
REJPcGVuREJSZXF1ZXN0XS4gV2FzIFtvYmplY3QgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RdLgor
CitDYWxsIG9wZW4gd2l0aCBubyB2ZXJzaW9uIHBhcmFtZXRlcjoKK2luZGV4ZWREQi5vcGVuKGRi
bmFtZSkKKworb3BlblN1Y2Nlc3MoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBk
Yi52ZXJzaW9uIGlzICIiCityZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic29tZSB2ZXJzaW9uIikK
KworaW5TZXRWZXJzaW9uKCk6CitQQVNTIGRiLnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIKKwor
c2V0VmVyc2lvbkRvbmUoKToKK1BBU1MgZGIudmVyc2lvbiBpcyAic29tZSB2ZXJzaW9uIgorZGIu
Y2xvc2UoKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNv
bmRPcGVuCisKK3NlY29uZE9wZW4oKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBT
dHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1BBU1MgZGIudmVyc2lvbiBpcyAi
c29tZSB2ZXJzaW9uIgorZGIuY2xvc2UoKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgMikKKworZmlyc3RPcGVuV2l0aFZlcnNpb24oKToKK0ZBSUwgZGlkVHJhbnNhY3Rpb25Db21w
bGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0
CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgorUEFTUyByZXF1ZXN0
LnRyYW5zYWN0aW9uIGlzIG51bGwKK0ZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgMiAob2YgdHlw
ZSBudW1iZXIpLiBXYXMgc29tZSB2ZXJzaW9uIChvZiB0eXBlIHN0cmluZykuCitGQUlMIFN0cmlu
ZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XS4gV2FzIFtvYmpl
Y3QgSURCUmVxdWVzdF0uCityZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic3RyaW5nIHZlcnNpb24g
MiIpCitQQVNTIFN0cmluZyhyZXF1ZXN0KSBpcyAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdF0iCityZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uTm90QWxsb3dlZAorRkFJTCBTdWNj
ZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUwNmRlZDM5ZTAxM2YzY2M1NTdjYmI2MDgzZjhlNzZmYWMyMjhmOGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1z
ZXR2ZXJzaW9uLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg2NjQ5ZjAzNDQ4MDQzZmZjNTJhYTg3ZDZhYzBiYTRlMTgwOWMxMWIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3QgdGhhdCBibG9j
a2VkIGV2ZW50cyBnZXQgZGVsaXZlcmVkIHByb3Blcmx5IHdpdGggdGhlIG5ldyBvcGVuIGFwaQor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUsIDIpCisKK2ZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgorRkFJTCBnb3RGaXJzdFVw
Z3JhZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorY29ubmVjdGlvbjEg
PSBldmVudC50YXJnZXQucmVzdWx0Citjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB2ZXJz
aW9uQ2hhbmdlSGFuZGxlcgorUEFTUyBTdHJpbmcoY29ubmVjdGlvbjEpIGlzICJbb2JqZWN0IElE
QkRhdGFiYXNlXSIKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpCisKK3NlY29u
ZFN1Y2Nlc3NDYWxsYmFjaygpOgorRkFJTCBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzODdkZWViODA0MDRhNTk3
NzEyYTMzYWRjODZhMThjNjNlZTRmOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDEwIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2
ZXJzaW9uLWJsb2NrZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3Nl
LWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlhMGY0NmY0MmM2ZGIzNjBkNGZiN2VkMmNjMTRhYWJjYmVhZDJlN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJl
dHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACitUcnkgdG8gY2FsbCBk
Yi5jbG9zZSgpIGFmdGVyIHVwZ3JhZGVuZWVkZWQgYnV0IGJlZm9yZSB0aGUgY29ycmVzcG9uZGlu
ZyBzdWNjZXNzIGV2ZW50IGZpcmVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKwor
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK3JlcXVlc3QgPSBpbmRleGVkREIub3Bl
bihkYm5hbWUsIDcpCisKKworb3BlblN1Y2Nlc3MoKToKK1BBU1MgZGlkQ2FsbENsb3NlREIgaXMg
ZmFsc2UKK0ZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJl
IDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0
d2Vlbi1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTBlM2MxYTcyOGM3M2Q1YTI3MDJkMTMxNTUw
NTQ4ZTQ2ZjExNmU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMTAg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2lu
dHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yODk1OWNiZTdmZjg3MzA0NDM0OGQwOTY0MmQzNDQ2OWU1MDA3NGIy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitD
YWxsIGRiLmNsb3NlKCkgaW4gdGhlIGNvbXBsZXRlIGhhbmRsZXIgZm9yIGEgdmVyc2lvbiBjaGFu
Z2UgdHJhbnNhY3Rpb24sIGJlZm9yZSB0aGUgc3VjY2VzcyBldmVudCBhc3NvY2lhdGVkIHdpdGgg
dGhlIG9wZW4gY2FsbCBmaXJlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5k
ZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5t
b3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2lu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCA3KQorCitvcGVuU3VjY2VzcygpOgorRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRl
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK0ZB
SUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBl
IHN0cmluZykuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbignb3MnLCAncmVhZHdyaXRlJykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitG
QUlMIGNvZGUgc2hvdWxkIGJlIDExLiBXYXMgOC4KK0ZBSUwgZW5hbWUgc2hvdWxkIGJlIEludmFs
aWRTdGF0ZUVycm9yLiBXYXMgTm90Rm91bmRFcnJvci4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU1OWM2MDViMDNkNjgxMGEzNjY3MGFjZmE1Mjc1YzIwYTI4Mjk2NWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3Nl
LWluLW9uY29tcGxldGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gt
dmVyc2lvbi1maXJzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDc4MDk5MGIyMzNmODliYjUzMDc4N2U3ZmNiNzFlYjgzNmU0NWZhOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9u
LWZpcnN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitUZXN0IHRoYXQgaWYgdHdvIG9w
ZW4gcmVxdWVzdHMgYXJlIHdhaXRpbmcgYXQgdGhlIHNhbWUgdGltZSwgdGhlIG9uZSB3aXRoIHRo
ZSBoaWdoZXIgdmVyc2lvbiBnZXRzIGNhbGxlZCBmaXJzdAorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCisKK2RlbGV0ZVN1
Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDEpCisKK2ZpcnN0U3Vj
Y2Vzc0V2ZW50SGFuZGxlcigpOgorRkFJTCBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0
Citjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdlSGFuZGxlcgorcmVx
dWVzdDIgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCityZXF1ZXN0MyA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSwgMykKK3JlcXVlc3Q0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA0KQorCitz
dWNjZXNzQ2FsbGJhY2syKCk6CitQQVNTIGdvdEJsb2NrZWRFdmVudDQgaXMgZmFsc2UKK0ZBSUwg
U3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJz
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjczOGNlNGJiZGVjM2VkMzI0YmUzOGM1MzYwYTgyMmY4MWEyMmRi
NjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24taGln
aC12ZXJzaW9uLWZpcnN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0
LXBhcmFtZXRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTgwMDUx
MTAxZTI1OTY3OGI3OTY0YTA0YjQxZTUzODQ4MTZhODU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdCB0aGF0IGluaXRpYWwgdmVyc2lvbiBhZnRl
ciBhIHN1Y2Nlc3NmdWwgb3BlbiBvZiBhIG5vbi1leGlzdGVudCBkYiBpcyAxCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxm
LndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERC
IHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkK
K2luZGV4ZWREQi5vcGVuKGRibmFtZSkKKworb3BlblN1Y2Nlc3MoKToKK2RiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAorVGVzdCBsaW5lIGZyb20gSURCRmFjdG9yeS5vcGVuOiBJZiBubyB2ZXJzaW9u
IGlzIHNwZWNpZmllZCBhbmQgbm8gZGF0YWJhc2UgZXhpc3RzLCBzZXQgZGF0YWJhc2UgdmVyc2lv
biB0byAxLgorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSAxIChvZiB0eXBlIG51bWJlcikuIFdh
cyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJiNTRh
MjBkYmE0ZTVhZWE2ZDcyOTM4MjcwZDE1M2M4NzYwMmRlYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRt
bApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGEwZWNiZWY3MTMxMmYzYmQyNWUxZDMzYWU1YzIxMjJh
ODExNDVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBA
QAorVGVzdCB0aGF0IHNwZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlz
dGVudCBkYiBjYXVzZXMgYW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lv
biBudW1iZXIgaXMgc2V0IGNvcnJlY3RseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8
IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERC
OworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorU2hvdWxkIHRyaWdnZXI6Cis0
LjEuNDogSWYgbm8gZGF0YWJhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBvcmlnaW4g
b3JpZ2luIHdhcyBmb3VuZCwgb3IgaWYgaXQgd2FzIGRlbGV0ZWQgZHVyaW5nIHRoZSBwcmV2aW91
cyBzdGVwLCB0aGVuIGNyZWF0ZSBhIGRhdGFiYXNlIHdpdGggbmFtZSBuYW1lLCB3aXRoIDAgYXMg
dmVyc2lvbiwgYW5kIHdpdGggbm8gb2JqZWN0IHN0b3Jlcy4gTGV0IGRiIGJlIHRoZSBuZXcgZGF0
YWJhc2UuCis0LjEuNjogQ3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gdG8gZGIgYW5kIGxldCBjb25u
ZWN0aW9uIHJlcHJlc2VudCBpdC4KKzQuMS43OiBJZiB0aGUgdmVyc2lvbiBvZiBkYiBpcyBsb3dl
ciB0aGFuIHZlcnNpb24sIHRoZW4gcnVuIHRoZSBzdGVwcyBmb3IgcnVubmluZyBhICJ2ZXJzaW9u
Y2hhbmdlIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9uLCByZXF1ZXN0IGFu
ZCB1cGdyYWRlIGNhbGxiYWNrLgorNC4xLjk6IFJldHVybiBjb25uZWN0aW9uLgorcmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKK0ZBSUwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5hcHBseShyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XS4gV2Fz
IFtvYmplY3QgSURCUmVxdWVzdF0uCisKKworb3BlblN1Y2Nlc3MoKToKK1Rlc3QgNC4xLjcsIHRo
YXQgYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBydW4uCitGQUlMIHNhd1VwZ3JhZGVO
ZWVkZWQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK0ZBSUwgc2F3VHJhbnNhY3Rpb25Db21w
bGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0
CitLaW5kIG9mIHRlc3QgNC4xLjk6CitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBw
bHkoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK0ZBSUwgZGIudmVyc2lvbiBzaG91bGQg
YmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgt
dmVyc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YzczZDQ0ZjgyYjIxN2FjZTdjMTIxNzYwOGIwYWFm
MTc0YWMyOWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lv
bi1vcGVuLXdpdGgtdmVyc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9p
bnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwt
dXBncmFkZW5lZWRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWUxYWU2ZjM3NjVmMjQ0ODNmNGRiNGI1YzM3
YzkxMDMzNWM4NDlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVk
LmpzCkBAIC0wLDAgKzEsNDYgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBv
cnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOwor
ICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0
aGF0IGFuIGFib3J0IGluIHRoZSBpbml0aWFsIHVwZ3JhZGVuZWVkZWQgc2V0cyB2ZXJzaW9uIGJh
Y2sgdG8gMCIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhl
cygpOworICAgIGRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEgKyBz
ZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKCIvIikpOworCisgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkg
eworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAg
IHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZDsKK30KKworZnVuY3Rpb24g
dXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRl
TmVlZGVkKCk6Iik7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjIiKTsKKyAgICB0cmFuc2FjdGlvbiA9
IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
dW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IG9u
QWJvcnQ7CisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24uYWJvcnQoKSIpOworfQorCitmdW5j
dGlvbiBvbkFib3J0KGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9uQWJvcnQo
KToiKTsKKyAgICBldmVudCA9IGV2dDsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LmRiLnZl
cnNpb24iLCAiMCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1h
bmQtc2V0dmVyc2lvbi5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViYjZlYzc3OTE1OGQ3
YmNlMjVkNWE1MWUwMjEwZmRhMTEwYWNhYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5q
cwpAQCAtMCwwICsxLDE4OSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9y
dFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7Cisg
ICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRo
YXQgaW50IHZlcnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcg
dmVyc2lvbnMgYXJlIHRoZW4gZGlzYWxsb3dlZCIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0
aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKCIv
IikpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcocmVxdWVzdCki
LCAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoIkNhbGwgb3BlbiB3aXRoIG5vIHZlcnNpb24gcGFyYW1ldGVyOiIpOworICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVuZXhw
ZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5T
dWNjZXNzKCk6Iik7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAiIik7CisgICAg
ZXZhbEFuZExvZygncmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInNvbWUgdmVyc2lvbiIpJyk7Cisg
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBpblNldFZlcnNpb247CisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4
cGVjdGVkQmxvY2tlZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBpblNldFZlcnNpb24oZXZ0KQor
eworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiaW5TZXRWZXJz
aW9uKCk6Iik7CisgICAgdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIHRyYW5zLm9u
Y29tcGxldGUgPSBzZXRWZXJzaW9uRG9uZTsKKyAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3Rl
ZEFib3J0Q2FsbGJhY2s7CisgICAgZGIgPSB0cmFucy5kYjsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImRiLnZlcnNpb24iLCAic29tZSB2ZXJzaW9uIik7CisgICAgLy8gRklYTUU6IEFkZCBh
IHRlc3QgdGhhdCBjYWxscyBvcGVuIHdpdGggdmVyc2lvbiBmcm9tIGhlcmUuCit9CisKK2Z1bmN0
aW9uIHNldFZlcnNpb25Eb25lKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1Zygi
Iik7CisgICAgZGVidWcoInNldFZlcnNpb25Eb25lKCk6Iik7CisgICAgZGIgPSBldmVudC50YXJn
ZXQuZGI7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInNvbWUgdmVy
c2lvbiIpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVl
c3Qub25zdWNjZXNzID0gc2Vjb25kT3BlbiIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBl
Y3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2Vjb25kT3BlbihldnQp
Cit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzZWNvbmRP
cGVuKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJh
c2VdIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInNvbWUgdmVy
c2lvbiIpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICAvLyBGSVhNRTogQWRk
IHRlc3RzIHRoYXQgY2FsbCBpdCB3aXRoIDAsIC0xLCBhbmQgLTQuCisgICAgZXZhbEFuZExvZygi
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IGZpcnN0VXBncmFkZU5lZWRlZAorICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0T3BlbldpdGhW
ZXJzaW9uOworfQorCitmdW5jdGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2
ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RVcGdyYWRlTmVlZGVk
KCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2Vd
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcocmVxdWVzdC50cmFuc2FjdGlv
bikiLCAiW29iamVjdCBJREJUcmFuc2FjdGlvbl0iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImV2ZW50Lm9sZFZlcnNpb24iLCAic29tZSB2ZXJzaW9uIik7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm5ld1ZlcnNpb24iLCAiMiIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QudHJhbnNhY3Rp
b24ub25jb21wbGV0ZSA9IHRyYW5zYWN0aW9uQ29tcGxldGVkIik7CisgICAgcmVxdWVzdC50cmFu
c2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Cit9CisKK3ZhciBkaWRU
cmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRl
ZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ0
cmFuc2FjdGlvbkNvbXBsZXRlZCgpOiIpOworICAgIGV2YWxBbmRMb2coImRpZFRyYW5zYWN0aW9u
Q29tcGxldGUgPSB0cnVlIik7Cit9CisKK2Z1bmN0aW9uIGZpcnN0T3BlbldpdGhWZXJzaW9uKGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImZpcnN0
T3BlbldpdGhWZXJzaW9uKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJkaWRUcmFuc2FjdGlvbkNv
bXBsZXRlIik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJh
c2VdIik7CisgICAgc2hvdWxkQmVOdWxsKCJyZXF1ZXN0LnRyYW5zYWN0aW9uIik7CisgICAgc2hv
dWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3Ry
aW5nKHJlcXVlc3QpIiwgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICBldmFsQW5k
TG9nKCdyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic3RyaW5nIHZlcnNpb24gMiIpJyk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcocmVxdWVzdCkiLCAiW29iamVjdCBJREJWZXJz
aW9uQ2hhbmdlUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRC
bG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vz
c0NhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25O
b3RBbGxvd2VkIik7Cit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb25Ob3RBbGxvd2VkKGV2dCkKK3sK
KyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNpb25O
b3RBbGxvd2VkKCk6Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50eXBlIiwg
ImVycm9yIik7CisgICAgZGVidWcoInJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gIiArIHJl
cXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7
CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uZXJyb3IgPSBlcnJvcldoZW5UcnlpbmdMb3dWZXJz
aW9uIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNr
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKK30K
KworZnVuY3Rpb24gZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbihldnQpCit7CisgICAgZXZlbnQg
PSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJlcnJvcldoZW5UcnlpbmdMb3dWZXJz
aW9uKCk6Iik7CisgICAgZGVidWcoInJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gIiArIHJl
cXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCA0KSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBl
Y3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNl
Y29uZFVwZ3JhZGVOZWVkZWQiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9
IHRoaXJkT3BlblN1Y2Nlc3MiKTsKK30KKwordmFyIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWQgPSBm
YWxzZTsKK2Z1bmN0aW9uIHNlY29uZFVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0g
ZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic2Vjb25kVXBncmFkZU5lZWRlZCgpOiIp
OworICAgIGV2YWxBbmRMb2coImdvdFNlY29uZFVwZ3JhZGVOZWVkZWQgPSB0cnVlIik7CisgICAg
c2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5u
ZXdWZXJzaW9uIiwgIjQiKTsKK30KKworZnVuY3Rpb24gdGhpcmRPcGVuU3VjY2VzcyhldnQpCit7
CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ0aGlyZE9wZW5T
dWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RTZWNvbmRVcGdyYWRlTmVlZGVkIik7
CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxk
QmUoImRiLnZlcnNpb24iLCAiNCIpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gZm91cnRoT3BlblN1Y2Nlc3MiKTsKKyAgICBy
ZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gZm91cnRoT3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0
OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZm91cnRoT3BlblN1Y2Nlc3MoKToiKTsKKyAg
ICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgi
ZGIudmVyc2lvbiIsICI0Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWJsb2NrZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
aW50dmVyc2lvbi1ibG9ja2VkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNDk0NWFkZjEzMjQyNDgzM2VlNzU0
NTNlYzdiMTEwM2QxMTM0OGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzCkBAIC0wLDAgKzEsOTYg
QEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMo
J3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGJsb2NrZWQgZXZlbnRz
IGdldCBkZWxpdmVyZWQgcHJvcGVybHkgd2l0aCB0aGUgbmV3IG9wZW4gYXBpIik7CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgZGJuYW1lID0g
c2VsZi5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMSArIHNlbGYubG9jYXRpb24ucGF0aG5h
bWUubGFzdEluZGV4T2YoIi8iKSk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxl
dGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZygiZGVsZXRlU3VjY2VzcygpOiIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBp
bmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJz
dFN1Y2Nlc3NFdmVudEhhbmRsZXI7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CisgICAgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKKyAg
ICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2dCkgeworICAgICAgZXZlbnQg
PSBldnQ7CisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1ZygicmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQoKToiKTsKKyAgICAgIGV2YWxBbmRMb2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50
ID0gdHJ1ZSIpOworICAgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOworICAg
ICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMiIpOworICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJTdHJpbmcoZXZlbnQpIiwgIltvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50
XSIpOworICAgIH0KK30KKworZ290QmxvY2tlZEV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiBmaXJz
dFN1Y2Nlc3NFdmVudEhhbmRsZXIoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKCk6IikKKyAgICBzaG91
bGRCZVRydWUoImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygi
Y29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29u
bmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIiKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhjb25uZWN0aW9uMSkiLCAiW29iamVjdCBJREJE
YXRhYmFzZV0iKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCAzKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNr
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJl
cXVlc3Qub25ibG9ja2VkID0gYmxvY2tlZEV2ZW50SGFuZGxlcjsKKyAgICByZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IHNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXI7Cit9CisKK3ZhciBz
YXdWZXJzaW9uQ2hhbmdlRXZlbnQgPSBmYWxzZTsKK2Z1bmN0aW9uIHZlcnNpb25DaGFuZ2VIYW5k
bGVyKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
InZlcnNpb25DaGFuZ2VIYW5kbGVyKCk6Iik7CisgICAgZXZhbEFuZExvZygic2F3VmVyc2lvbkNo
YW5nZUV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlw
ZSIsICJ2ZXJzaW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmco
ZXZlbnQpIiwgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZUV2ZW50XSIpOworICAgIHNob3VsZEJl
KCJldmVudC5vbGRWZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lv
biIsICIzIik7Cit9CisKK2Z1bmN0aW9uIGJsb2NrZWRFdmVudEhhbmRsZXIoZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiYmxvY2tlZEV2ZW50SGFu
ZGxlcigpOiIpOworICAgIHNob3VsZEJlVHJ1ZSgic2F3VmVyc2lvbkNoYW5nZUV2ZW50Iik7Cisg
ICAgZXZhbEFuZExvZygiZ290QmxvY2tlZEV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiU3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVu
dF0iKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxk
QmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZXZlbnQudHlwZSIsICJibG9ja2VkIik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEuY2xv
c2UoKSIpOworfQorCitnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKK2Z1bmN0
aW9uIHNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIoZXZ0KQoreworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1Zygic2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcigpOiIpOworICAg
IHNob3VsZEJlVHJ1ZSgiZ290QmxvY2tlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiZ290U2Vj
b25kVXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOworfQorCitmdW5jdGlvbiBzZWNvbmRTdWNj
ZXNzQ2FsbGJhY2soZXZ0KQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic2Vjb25kU3Vj
Y2Vzc0NhbGxiYWNrKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RTZWNvbmRVcGdyYWRlTmVl
ZGVkRXZlbnQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xv
c2UtYmV0d2Vlbi1ldmVudHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTg5
YTYyYmI3ZTY4MmU4NTI0M2Y4YzQ4YTFhNTc0ODlkMDE0MjA2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2Ut
YmV0d2Vlbi1ldmVudHMuanMKQEAgLTAsMCArMSw2OSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2Ny
aXB0aW9uKCJUcnkgdG8gY2FsbCBkYi5jbG9zZSgpIGFmdGVyIHVwZ3JhZGVuZWVkZWQgYnV0IGJl
Zm9yZSB0aGUgY29ycmVzcG9uZGluZyBzdWNjZXNzIGV2ZW50IGZpcmVzIik7CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgZGJuYW1lID0gc2Vs
Zi5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMSArIHNlbGYubG9jYXRpb24ucGF0aG5hbWUu
bGFzdEluZGV4T2YoIi8iKSk7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0
ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgZXZhbEFuZExvZygicmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5l
ZWRlZDsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
CisgICAgZGVidWcoIiIpOworfQorCit2YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNl
OworZnVuY3Rpb24gdXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkKCk6Iik7CisgICAgZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1Zl
cnNpb24iLCAiNyIpOworCisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBldmVudC50YXJn
ZXQudHJhbnNhY3Rpb24iKTsKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGUpCisg
ICAgeworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJ0cmFuc2FjdGlvbi5vbmNv
bXBsZXRlOiIpOworICAgICAgICBldmFsQW5kTG9nKCJzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0g
dHJ1ZSIpOworICAgICAgICBldmFsQW5kTG9nKCJzZXRUaW1lb3V0KGNsb3NlREIsIDApIik7Cisg
ICAgfQorfQorCit2YXIgZGlkQ2FsbENsb3NlREIgPSBmYWxzZTsKK2Z1bmN0aW9uIGNsb3NlREIo
KQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiY2xvc2VEQigpOiIpOworICAgIGV2YWxB
bmRMb2coImRpZENhbGxDbG9zZURCID0gdHJ1ZSIpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3Nl
KCkiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoZXZ0
KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygib3BlblN1
Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkaWRDYWxsQ2xvc2VEQiIpOworICAgIHNo
b3VsZEJlVHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSIpOworICAgIGRiID0gZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24n
LCAiNyIpOworICAgIGlmIChkYi52ZXJzaW9uICE9PSA3KQorICAgICAgZmluaXNoSlNUZXN0KCk7
Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBs
ZXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMxYzc5ZmNjYmUxZGYxNTRkNGQ3NDUyNWI3NmVhYThmYTBjODNh
ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmpzCkBAIC0wLDAgKzEsNTggQEAK
K2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3No
YXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiQ2FsbCBkYi5jbG9zZSgpIGluIHRoZSBjb21w
bGV0ZSBoYW5kbGVyIGZvciBhIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uLCBiZWZvcmUgdGhl
IHN1Y2Nlc3MgZXZlbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcGVuIGNhbGwgZmlyZXMiKTsKKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBkYm5h
bWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygxICsgc2VsZi5sb2NhdGlvbi5w
YXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KSIpOworICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1
cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRD
YWxsYmFjazsKK30KKwordmFyIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0
aW9uIHVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1ZygidXBncmFkZU5lZWRlZCgpOiIpOworICAgIGV2YWxBbmRMb2coImRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwg
IjciKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZShcIm9zXCIpIik7CisK
KyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIp
OworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAg
ICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAgICAgIGRl
YnVnKCIiKTsKKyAgICAgICAgZGVidWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7CisgICAg
ICAgIGV2YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgICAg
IGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNj
ZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
Im9wZW5TdWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdUcmFuc2FjdGlvbkNvbXBs
ZXRlIik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAg
c2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
InRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJywgJ3JlYWR3cml0ZScpIiwgIkRPTUV4
Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWhp
Z2gtdmVyc2lvbi1maXJzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Yjc1OGFmNGU2MGY2Mjc4OWIxMTA5ZWY5
NGQzZGNhZWZkZDcwOTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LmpzCkBAIC0w
LDAgKzEsMTUwIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0
cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBv
cnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBpZiB0
d28gb3BlbiByZXF1ZXN0cyBhcmUgd2FpdGluZyBhdCB0aGUgc2FtZSB0aW1lLCB0aGUgb25lIHdp
dGggdGhlIGhpZ2hlciB2ZXJzaW9uIGdldHMgY2FsbGVkIGZpcnN0Iik7CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgZGJuYW1lID0gc2VsZi5s
b2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMSArIHNlbGYubG9jYXRpb24ucGF0aG5hbWUubGFz
dEluZGV4T2YoIi8iKSk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNj
ZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQor
CitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygiZGVsZXRlU3VjY2VzcygpOiIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVk
REIub3BlbihkYm5hbWUsIDEpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdFN1Y2Nl
c3NFdmVudEhhbmRsZXI7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CisgICAgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKKyAgICByZXF1
ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2dCkgeworICAgICAgZXZlbnQgPSBldnQ7
CisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1ZygicmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQo
KToiKTsKKyAgICAgIGV2YWxBbmRMb2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1
ZSIpOworICAgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOworICAgICAgc2hv
dWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMSIpOworICAgIH0KK30KKworZnVuY3Rpb24gZmly
c3RTdWNjZXNzRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1
ZygiIik7CisgICAgZGVidWcoImZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOiIpCisgICAgc2hv
dWxkQmVUcnVlKCJnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIGV2YWxBbmRMb2co
ImNvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNv
bm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IHZlcnNpb25DaGFuZ2VIYW5kbGVyIik7CisgICAg
ZXZhbEFuZExvZygicmVxdWVzdDIgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAg
ZXZhbEFuZExvZygicmVxdWVzdDMgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpIik7CisgICAg
ZXZhbEFuZExvZygicmVxdWVzdDQgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDQpIik7CisgICAg
cmVxdWVzdDIub25zdWNjZXNzID0gc3VjY2Vzc0NhbGxiYWNrMjsKKyAgICByZXF1ZXN0Mi5vbmJs
b2NrZWQgPSBibG9ja2VkRXZlbnRIYW5kbGVyMjsKKyAgICByZXF1ZXN0Mi5vbnVwZ3JhZGVuZWVk
ZWQgPSB1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyMjsKKyAgICByZXF1ZXN0Mi5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisKKyAgICByZXF1ZXN0My5vbnN1Y2Nlc3MgPSB1bmV4
cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIHJlcXVlc3QzLm9uYmxvY2tlZCA9IGJsb2NrZWRF
dmVudEhhbmRsZXIzOworICAgIHJlcXVlc3QzLm9udXBncmFkZW5lZWRlZCA9IHVuZXhwZWN0ZWRV
cGdyYWRlTmVlZGVkQ2FsbGJhY2s7CisgICAgcmVxdWVzdDMub25lcnJvciA9IGVycm9ySGFuZGxl
cjM7CisKKyAgICByZXF1ZXN0NC5vbnN1Y2Nlc3MgPSBzdWNjZXNzQ2FsbGJhY2s0OworICAgIHJl
cXVlc3Q0Lm9uYmxvY2tlZCA9IGJsb2NrZWRFdmVudEhhbmRsZXI0OworICAgIHJlcXVlc3Q0Lm9u
dXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXI0OworICAgIHJlcXVlc3Q0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKwordmFyIHZlcnNpb25DaGFu
Z2VFdmVudHNTZWVuID0gMDsKK2Z1bmN0aW9uIHZlcnNpb25DaGFuZ2VIYW5kbGVyKGV2dCkKK3sK
KyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInZlcnNpb25DaGFu
Z2VIYW5kbGVyKCk6Iik7CisgICAgZGVidWcoIisrdmVyc2lvbkNoYW5nZUV2ZW50c1NlZW4gPSAi
ICsgKCsrdmVyc2lvbkNoYW5nZUV2ZW50c1NlZW4pKTsKKyAgICBkZWJ1ZygiZXZlbnQub2xkVmVy
c2lvbiA9ICIgKyBldmVudC5vbGRWZXJzaW9uKTsKKyAgICBkZWJ1ZygiZXZlbnQubmV3VmVyc2lv
biA9ICIgKyBldmVudC5uZXdWZXJzaW9uKTsKK30KKwordmFyIGdvdEJsb2NrZWRFdmVudDIgPSBm
YWxzZTsKK2Z1bmN0aW9uIGJsb2NrZWRFdmVudEhhbmRsZXIyKGV2dCkKK3sKKyAgICBldmVudCA9
IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXIyKCk6
Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMSIpOworICAgIHNob3VsZEJl
KCJldmVudC5uZXdWZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJnb3RCbG9ja2Vk
RXZlbnQ0Iik7CisgICAgZXZhbEFuZExvZygiZ290QmxvY2tlZEV2ZW50MiA9IHRydWUiKTsKKyAg
ICBldmFsQW5kTG9nKCJjb25uZWN0aW9uMS5jbG9zZSgpIik7CisgICAgaWYgKGdvdEJsb2NrZWRF
dmVudDQpCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiB1cGdyYWRlTmVl
ZGVkRXZlbnRIYW5kbGVyMihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyMigpOiIpOworICAgIHNob3Vs
ZEJlRmFsc2UoImdvdEJsb2NrZWRFdmVudDQiKTsKKyAgICBpZiAoZ290QmxvY2tlZEV2ZW50NCkK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjazIo
ZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic3Vj
Y2Vzc0NhbGxiYWNrMigpOiIpOworICAgIHNob3VsZEJlRmFsc2UoImdvdEJsb2NrZWRFdmVudDQi
KTsKKyAgICBpZiAoZ290QmxvY2tlZEV2ZW50NCkKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK3ZhciBnb3RCbG9ja2VkRXZlbnQ0ID0gZmFsc2U7CitmdW5jdGlvbiBibG9ja2VkRXZlbnRI
YW5kbGVyNChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRl
YnVnKCJibG9ja2VkRXZlbnRIYW5kbGVyNCgpOiIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRW
ZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI0Iik7Cisg
ICAgc2hvdWxkQmVUcnVlKCJnb3RCbG9ja2VkRXZlbnQyIik7CisgICAgZXZhbEFuZExvZygiZ290
QmxvY2tlZEV2ZW50NCA9IHRydWUiKTsKK30KKworZnVuY3Rpb24gdXBncmFkZU5lZWRlZEV2ZW50
SGFuZGxlcjQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygidXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjQoKToiKTsKK30KKworZnVuY3Rpb24gc3Vj
Y2Vzc0NhbGxiYWNrNChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJzdWNjZXNzQ2FsbGJhY2s0KCk6Iik7Cit9CisKK2Z1bmN0aW9uIGVycm9ySGFu
ZGxlcjMoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygiZXJyb3JIYW5kbGVyMygpOiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlv
biBibG9ja2VkRXZlbnRIYW5kbGVyMyhldnQpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVn
KCJibG9ja2VkRXZlbnRIYW5kbGVyMygpOiIpOworICAgIGRlYnVnKCJGRiBhbHNvIGZhaWxzIHRo
aXMgdGVzdC4iKTsKKyAgICB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrKGV2dCk7Cit9CisKKwor
dGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZTdkMGYzZTgzZWExMzE1NzQ2MGFhMDE5MzgyNDQ1NjNmN2U5NThkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
b21pdC1wYXJhbWV0ZXIuanMKQEAgLTAsMCArMSwzOCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgaW5pdGlhbCB2ZXJzaW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bCBvcGVu
IG9mIGEgbm9uLWV4aXN0ZW50IGRiIGlzIDEiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAg
cmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lLnN1YnN0cmluZygxICsgc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIp
KTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24g
ZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERC
Lm9wZW4oZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Cisg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKKyAgICAgIHRlc3RQYXNzZWQoIkdvdCB1
cGdyYWRlbmVlZGVkIGV2ZW50Iik7CisgICAgfQorfQorCitmdW5jdGlvbiBvcGVuU3VjY2Vzcyhl
dnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVu
U3VjY2VzcygpOiIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7CisgICAgZGVidWcoIlRlc3QgbGluZSBmcm9tIElEQkZhY3Rvcnkub3BlbjogSWYgbm8g
dmVyc2lvbiBpcyBzcGVjaWZpZWQgYW5kIG5vIGRhdGFiYXNlIGV4aXN0cywgc2V0IGRhdGFiYXNl
IHZlcnNpb24gdG8gMS4iKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICcxJyk7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb3Bl
bi13aXRoLXZlcnNpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg5ZWQzOTI2ZmE5YjUyNDQ0YTczZTZmYTU1
MjcyYzU5NDAwNDg1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmpzCkBAIC0wLDAg
KzEsNzYgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNj
cmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHNwZWNpZnlp
bmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBjYXVzZXMgYW4gdXBn
cmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgc2V0IGNvcnJl
Y3RseS4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKKyAgICBkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygxICsgc2Vs
Zi5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKTsKKworICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsK
KyAgICBkZWJ1ZygiU2hvdWxkIHRyaWdnZXI6Iik7CisgICAgZGVidWcoIjQuMS40OiBJZiBubyBk
YXRhYmFzZSB3aXRoIHRoZSBnaXZlbiBuYW1lIGZyb20gdGhlIG9yaWdpbiBvcmlnaW4gd2FzIGZv
dW5kLCBvciBpZiBpdCB3YXMgZGVsZXRlZCBkdXJpbmcgdGhlIHByZXZpb3VzIHN0ZXAsIHRoZW4g
Y3JlYXRlIGEgZGF0YWJhc2Ugd2l0aCBuYW1lIG5hbWUsIHdpdGggMCBhcyB2ZXJzaW9uLCBhbmQg
d2l0aCBubyBvYmplY3Qgc3RvcmVzLiBMZXQgZGIgYmUgdGhlIG5ldyBkYXRhYmFzZS4iKTsKKyAg
ICBkZWJ1ZygiNC4xLjY6IENyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGRiIGFuZCBsZXQgY29u
bmVjdGlvbiByZXByZXNlbnQgaXQuIik7CisgICAgZGVidWcoIjQuMS43OiBJZiB0aGUgdmVyc2lv
biBvZiBkYiBpcyBsb3dlciB0aGFuIHZlcnNpb24sIHRoZW4gcnVuIHRoZSBzdGVwcyBmb3IgcnVu
bmluZyBhIFwidmVyc2lvbmNoYW5nZVwiIHRyYW5zYWN0aW9uIHVzaW5nIGNvbm5lY3Rpb24sIHZl
cnNpb24sIHJlcXVlc3QgYW5kIHVwZ3JhZGUgY2FsbGJhY2suIik7CisgICAgZGVidWcoIjQuMS45
OiBSZXR1cm4gY29ubmVjdGlvbi4iKTsKKworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRl
eGVkREIub3BlbihkYm5hbWUsIDcpIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHJlcXVlc3QpIiwgIltvYmplY3QgSURCT3BlbkRC
UmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZDsKKyAgICByZXF1ZXN0Lm9uYmxv
Y2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgZGVidWcoIiIpOworfQorCit2
YXIgc2F3VXBncmFkZU5lZWRlZCA9IGZhbHNlOwordmFyIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUg
PSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0
OworICAgIHRlc3RQYXNzZWQoIkluIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IGhhbmRlcjoiKTsK
KyAgICBkZWJ1ZygiVGVzdCA0LjguOS4xOiIpOworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5hcHBseShkYikiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAgICBk
ZWJ1ZygiVGVzdCA0LjguOS4zOiIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwg
IjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI3Iik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQucmVhZHlTdGF0ZSIsICJkb25lIik7CisgICAg
ZGVidWcoIlRlc3QgNC4xLjQ6Iik7CisgICAgc2hvdWxkQmUoImRiLm5hbWUiLCAiZGJuYW1lIik7
CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiNyIpOworICAgIHNob3VsZEJlKCJkYi5vYmpl
Y3RTdG9yZU5hbWVzLmxlbmd0aCIsICIwIik7CisKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlv
biA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh0cmFuc2FjdGlvbikiLCAiW29iamVj
dCBJREJUcmFuc2FjdGlvbl0iKTsKKyAgICBldmFsQW5kTG9nKCdvcyA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzb21lT1MiKScpOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZSkg
eworICAgICAgZXZhbEFuZExvZygic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUiKTsKKyAg
ICB9CisgICAgc2F3VXBncmFkZU5lZWRlZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNj
ZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
Im9wZW5TdWNjZXNzKCk6Iik7CisgICAgZGVidWcoIlRlc3QgNC4xLjcsIHRoYXQgYSB2ZXJzaW9u
Y2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBydW4uIik7CisgICAgc2hvdWxkQmUoInNhd1VwZ3JhZGVO
ZWVkZWQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlVHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21wbGV0
ZSIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Cisg
ICAgZGVidWcoIktpbmQgb2YgdGVzdCA0LjEuOToiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkoZGIpIiwgIltvYmplY3QgSURCRGF0
YWJhc2VdIik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfQorCit0ZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155343</attachid>
            <date>2012-07-30 13:03:25 -0700</date>
            <delta_ts>2012-07-30 14:14:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92560-20120730130309.patch</filename>
            <type>text/plain</type>
            <size>55626</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUzOGRjNTlmNTEwZmY5MTBjZDM4
ZmVjZmFmOTI2NTY3NzRiZTg3My4uZmE3NDExOTQ1YTBlZDk2NDhiYmExODVhMDJiZGYzNmUxNWQ4
NzZiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNyBAQAorMjAxMi0wNy0zMCAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBpbnRlZ2VyIHZlcnNp
b24gbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MjU2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1vc3Qgb2YgdGhlIGludGVnZXIgdmVyc2lvbiBsYXlvdXQgdGVzdHMgYXJlIGhlcmUs
IHdpdGggZmFpbHVyZXMgaW4KKyAgICAgICAgdGhlIGV4cGVjdGVkIGZpbGVzLiAgVGhpcyB3aWxs
IGFsbG93IHVzIHRvIGluY3JlbWVudGFsbHkgaW1wbGVtZW50CisgICAgICAgIHVwZ3JhZGVuZWVk
ZWQgYW5kIGludGVnZXIgdmVyc2lvbnMuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5p
dGlhbC11cGdyYWRlbmVlZGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
YmxvY2tlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9u
Y29tcGxldGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gt
dmVyc2lvbi1maXJzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1w
YXJhbWV0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQt
aW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgICh1cGdyYWRlTmVlZGVkKToKKyAgICAgICAg
KG9uQWJvcnQpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWFuZC1zZXR2ZXJzaW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAo
ZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgIChpblNldFZl
cnNpb24pOgorICAgICAgICAoc2V0VmVyc2lvbkRvbmUpOgorICAgICAgICAoc2Vjb25kT3Blbik6
CisgICAgICAgIChmaXJzdFVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAodHJhbnNhY3Rpb25Db21w
bGV0ZWQpOgorICAgICAgICAoZmlyc3RPcGVuV2l0aFZlcnNpb24pOgorICAgICAgICAoc2V0VmVy
c2lvbk5vdEFsbG93ZWQpOgorICAgICAgICAoZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbik6Cisg
ICAgICAgIChzZWNvbmRVcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKHRoaXJkT3BlblN1Y2Nlc3Mp
OgorICAgICAgICAoZm91cnRoT3BlblN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanM6IEFkZGVkLgorICAgICAgICAodGVz
dCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKGZpcnN0VXBncmFkZU5lZWRl
ZENhbGxiYWNrKToKKyAgICAgICAgKGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcik6CisgICAgICAg
ICh2ZXJzaW9uQ2hhbmdlSGFuZGxlcik6CisgICAgICAgIChibG9ja2VkRXZlbnRIYW5kbGVyKToK
KyAgICAgICAgKHNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIpOgorICAgICAgICAoc2Vj
b25kU3VjY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFkZU5lZWRlZC50
cmFuc2FjdGlvbi5vbmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQpOgorICAgICAg
ICAoY2xvc2VEQik6CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAo
dXBncmFkZU5lZWRlZC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVO
ZWVkZWQpOgorICAgICAgICAob3BlblN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MucmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQpOgorICAgICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChmaXJzdFN1Y2Nlc3NF
dmVudEhhbmRsZXIpOgorICAgICAgICAodmVyc2lvbkNoYW5nZUhhbmRsZXIpOgorICAgICAgICAo
YmxvY2tlZEV2ZW50SGFuZGxlcjIpOgorICAgICAgICAodXBncmFkZU5lZWRlZEV2ZW50SGFuZGxl
cjIpOgorICAgICAgICAoc3VjY2Vzc0NhbGxiYWNrMik6CisgICAgICAgIChibG9ja2VkRXZlbnRI
YW5kbGVyNCk6CisgICAgICAgICh1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyNCk6CisgICAgICAg
IChzdWNjZXNzQ2FsbGJhY2s0KToKKyAgICAgICAgKGVycm9ySGFuZGxlcjMpOgorICAgICAgICAo
YmxvY2tlZEV2ZW50SGFuZGxlcjMpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9pbnR2ZXJzaW9uLWxvbmctcXVldWUuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKGZpcnN0U3VjY2Vzc0NhbGxiYWNrKToK
KyAgICAgICAgKHNlY29uZFN1Y2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChjb25uZWN0aW9uMVZl
cnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNr
KToKKyAgICAgICAgKHNldFZlcnNpb25TdWNjZXNzQ2FsbGJhY2spOgorICAgICAgICAoc2V0VmVy
c2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayk6CisgICAgICAgIChjb25uZWN0aW9uMlZl
cnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxs
YmFjayk6CisgICAgICAgIChkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayk6CisgICAgICAg
ICh1cGdyYWRlTmVlZGVkQ2FsbGJhY2spOgorICAgICAgICAob3BlbldpdGhWZXJzaW9uU3VjY2Vz
c0NhbGxiYWNrKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVy
c2lvbi1vbWl0LXBhcmFtZXRlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KGRlbGV0ZVN1Y2Nlc3MucmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQpOgorICAgICAgICAoZGVsZXRl
U3VjY2Vzcyk6CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKHVwZ3Jh
ZGVOZWVkZWQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSk6CisgICAgICAgICh1cGdyYWRlTmVlZGVk
KToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAoc2V0REJOYW1lRnJvbVBhdGgpOgorICAgICAg
ICAocHJlYW1ibGUpOgorCiAyMDEyLTA3LTI2ICBOYXlhbiBLdW1hciBLICA8bmF5YW5ra0Btb3Rv
cm9sYS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBJbml0aWFsIHNpemUgb2YgY2FudmFzIGNhbiBi
ZSBsYXJnZXIgdGhhbiBNQVhfVklFV1BPUlRfRElNUy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVl
ZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45OTA4M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1YTdkODkyYWE2YTYzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1p
bml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3Qg
dGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBi
YWNrIHRvIDAKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50
dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCIKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCityZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQKK0ZJWE1FOiBUaGlzIHNob3VsZCBnZXQg
YW4gZXJyb3IgZXZlbnQgb2YgdHlwZSBBYm9ydEVycm9yCityZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjaworRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVj
dGVkbHkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1h
Ym9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjY4YWMwZDBlN2M5ODA1NTIzZGU0OGNhMDMyMTc2MWIzZjI1M2Y3ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
YWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lv
bi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYyMjJjYTE1ZDA5Yzc0ZDNhMmY0NDc5OGQyMGJkYzE4ZTUzMjUxNmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFu
ZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUwIEBACitUZXN0IHRoYXQgaW50
IHZlcnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcgdmVyc2lv
bnMgYXJlIHRoZW4gZGlzYWxsb3dlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisK
K2RibmFtZSA9ICJpbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0bWwiCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQorRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmpl
Y3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0
XS4KKworQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0ZXI6CitpbmRleGVkREIub3Bl
bihkYm5hbWUpCisKK29wZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BB
U1MgZGIudmVyc2lvbiBpcyAiIgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInNvbWUgdmVyc2lv
biIpCisKK2luU2V0VmVyc2lvbigpOgorUEFTUyBkYi52ZXJzaW9uIGlzICJzb21lIHZlcnNpb24i
CisKK3NldFZlcnNpb25Eb25lKCk6CitQQVNTIGRiLnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIK
K2RiLmNsb3NlKCkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qub25zdWNjZXNzID0g
c2Vjb25kT3BlbgorCitzZWNvbmRPcGVuKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BB
U1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitQQVNTIGRiLnZlcnNpb24g
aXMgInNvbWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUsIDIpCisKK2ZpcnN0T3BlbldpdGhWZXJzaW9uKCk6CitGQUlMIGRpZFRyYW5zYWN0aW9u
Q29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1BBU1MgcmVx
dWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDIgKG9m
IHR5cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAob2YgdHlwZSBzdHJpbmcpLgorRkFJTCBT
dHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBb
b2JqZWN0IElEQlJlcXVlc3RdLgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInN0cmluZyB2ZXJz
aW9uIDIiKQorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURCVmVyc2lvbkNoYW5n
ZVJlcXVlc3RdIgorcmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbk5vdEFsbG93ZWQKK0ZBSUwg
U3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MDZkZWQzOWUwMTNmM2NjNTU3Y2JiNjA4M2Y4ZTc2ZmFjMjI4ZjhhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1h
bmQtc2V0dmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24u
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYWMzY2NmMmMzNGJmZjA5NDk0M2U2MTNmYTBkYjYzODdkZmJh
Mzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACitUZXN0IHRoYXQg
YmxvY2tlZCBldmVudHMgZ2V0IGRlbGl2ZXJlZCBwcm9wZXJseSB3aXRoIHRoZSBuZXcgb3BlbiBh
cGkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lv
bi1ibG9ja2VkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitkZWxl
dGVTdWNjZXNzKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQorCitmaXJz
dFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAorY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIK
K1BBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCityZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorCitzZWNvbmRTdWNjZXNzQ2FsbGJhY2so
KToKK0ZBSUwgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1i
bG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJs
b2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzg3ZGVlYjgwNDA0YTU5NzcxMmEzM2FkYzg2YTE4YzYz
ZWU0ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDYwOWVlNGMwNWEx
ZTdkYTFhOGU5MWE5ZTlhODg5MzA4ODBkZmYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVHJ5IHRvIGNhbGwgZGIuY2xvc2UoKSBhZnRlciB1
cGdyYWRlbmVlZGVkIGJ1dCBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgc3VjY2VzcyBldmVudCBm
aXJlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJz
aW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKKworCitvcGVuU3Vj
Y2VzcygpOgorUEFTUyBkaWRDYWxsQ2xvc2VEQiBpcyBmYWxzZQorRkFJTCBzYXdUcmFuc2FjdGlv
bkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQKK0ZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMg
IChvZiB0eXBlIHN0cmluZykuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjllMGUzYzFhNzI4YzczZDVhMjcwMmQxMzE1NTA1NDhlNDZmMTE2ZTgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJl
dHdlZW4tZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2
ZW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21w
bGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NWVkYjI0
YmRkNmUyMTk3MzI1MjRjMTE5NThiZTI0MGM5M2Y4Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NhbGwgZGIuY2xvc2UoKSBpbiB0aGUgY29t
cGxldGUgaGFuZGxlciBmb3IgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiwgYmVmb3JlIHRo
ZSBzdWNjZXNzIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgb3BlbiBjYWxsIGZpcmVzCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5k
ZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24tY2xvc2Ut
aW4tb25jb21wbGV0ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK3Jl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCisKK29wZW5TdWNjZXNzKCk6CitGQUlM
IHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBl
IG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJv
bSB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycsICdyZWFkd3JpdGUnKQorUEFTUyBF
eGNlcHRpb24gd2FzIHRocm93bi4KK0ZBSUwgY29kZSBzaG91bGQgYmUgMTEuIFdhcyA4LgorRkFJ
TCBlbmFtZSBzaG91bGQgYmUgSW52YWxpZFN0YXRlRXJyb3IuIFdhcyBOb3RGb3VuZEVycm9yLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4t
b25jb21wbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU5YzYwNWIwM2Q2ODEwYTM2
NjcwYWNmYTUyNzVjMjBhMjgyOTY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sCkBAIC0w
LDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTVmN2JkODBhZmZiNGU0MWUwNzliZmVhZGJkNDAxYzU1
NWZlNGE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjgg
QEAKK1Rlc3QgdGhhdCBpZiB0d28gb3BlbiByZXF1ZXN0cyBhcmUgd2FpdGluZyBhdCB0aGUgc2Ft
ZSB0aW1lLCB0aGUgb25lIHdpdGggdGhlIGhpZ2hlciB2ZXJzaW9uIGdldHMgY2FsbGVkIGZpcnN0
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24t
aGlnaC12ZXJzaW9uLWZpcnN0Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQorCitkZWxldGVTdWNjZXNzKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAx
KQorCitmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RVcGdyYWRlTmVl
ZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24xID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAorY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5n
ZUhhbmRsZXIKK3JlcXVlc3QyID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQorcmVxdWVzdDMg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpCityZXF1ZXN0NCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgNCkKKworc3VjY2Vzc0NhbGxiYWNrMigpOgorUEFTUyBnb3RCbG9ja2VkRXZlbnQ0IGlz
IGZhbHNlCitGQUlMIFN1Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1m
aXJzdC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1oaWdo
LXZlcnNpb24tZmlyc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzhjZTRiYmRlYzNlZDMyNGJlMzhjNTM2
MGE4MjJmODFhMjJkYjYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVk
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9p
bnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjky
NDMwZDUzMjZhNjllNmVmMmQ1ZjIyMTNhNWMxMThlODZlMTg4M2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzQgQEAKK1Rlc3QgdGhhdCBhIGRhdGFiYXNlIGlzIHJlY3Jl
YXRlZCBjb3JyZWN0bHkgd2hlbiBhbiBvcGVuLXdpdGgtdmVyc2lvbiBjYWxsIGlzIHF1ZXVlZCBi
ZWhpbmQgYm90aCBhIGRlbGV0ZURhdGFiYXNlIGFuZCBzZXRWZXJzaW9uIGNhbGwKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNl
bGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVk
REIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lvbi1sb25nLXF1ZXVl
Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitkZWxldGVTdWNjZXNz
KCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmaXJzdFN1Y2Nlc3NDYWxsYmFjaworCitmaXJzdFN1Y2Nlc3NDYWxsYmFjaygpOgorY29ubmVj
dGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Citjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2Ug
PSBjb25uZWN0aW9uMVZlcnNpb25DaGFuZ2VDYWxsYmFjaworcmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSkKK3JlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrCisK
K3NlY29uZFN1Y2Nlc3NDYWxsYmFjaygpOgorY29ubmVjdGlvbjIgPSBldmVudC50YXJnZXQucmVz
dWx0Citjb25uZWN0aW9uMi5vbnZlcnNpb25jaGFuZ2UgPSBjb25uZWN0aW9uMlZlcnNpb25DaGFu
Z2VDYWxsYmFjaworcmVxdWVzdCA9IGNvbm5lY3Rpb24yLnNldFZlcnNpb24oJ3ZlcnNpb24gMicp
CityZXF1ZXN0Lm9uYmxvY2tlZCA9IHNldFZlcnNpb25CbG9ja2VkQ2FsbGJhY2sKK3JlcXVlc3Qu
b25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nlc3NDYWxsYmFjaworCitjb25uZWN0aW9uMVZlcnNp
b25DaGFuZ2VDYWxsYmFjaygpOgorUEFTUyBldmVudC50eXBlIGlzICJ2ZXJzaW9uY2hhbmdlIgor
UEFTUyBldmVudC52ZXJzaW9uIGlzICJ2ZXJzaW9uIDIiCisKK3NldFZlcnNpb25CbG9ja2VkQ2Fs
bGJhY2soKToKK3JlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorcmVx
dWVzdC5vbmJsb2NrZWQgPSBkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjaworcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaworcmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMSkKK3JlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5l
ZWRlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3ND
YWxsYmFjaworY29ubmVjdGlvbjEuY2xvc2UoKQorCitzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNr
KCk6Cit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2RiID0gdHJhbnNhY3Rpb24u
ZGIKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdzb21lIG9iamVjdCBzdG9yZScpCit0cmFuc2FjdGlv
bi5vbmNvbXBsZXRlID0gc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjaworCitj
b25uZWN0aW9uMlZlcnNpb25DaGFuZ2VDYWxsYmFjaygpOgorUEFTUyBldmVudC50eXBlIGlzICJ2
ZXJzaW9uY2hhbmdlIgorRklYTUU6IEZpcmUgYSB2ZXJzaW9uY2hhbmdlIGV2ZW50IHRoYXQgaGFz
IG9sZFZlcnNpb24gYW5kIG5ld1ZlcnNpb24KK0ZBSUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQg
YmUgdmVyc2lvbiAyIChvZiB0eXBlIHN0cmluZykuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5k
ZWZpbmVkKS4KK0ZBSUwgZXZlbnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBv
YmplY3QpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50LnZl
cnNpb24gc2hvdWxkIGJlIHVuZGVmaW5lZC4gV2FzIAorCitkZWxldGVEYXRhYmFzZUJsb2NrZWRD
YWxsYmFjaygpOgorY29ubmVjdGlvbjIuY2xvc2UoKQorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNo
b3VsZCBiZSB2ZXJzaW9uIDIgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlw
ZSB1bmRlZmluZWQpLgorRkFJTCBldmVudC5uZXdWZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0
eXBlIG9iamVjdCkuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZl
bnQudmVyc2lvbiBzaG91bGQgYmUgdW5kZWZpbmVkLiBXYXMgCisKK3NldFZlcnNpb25UcmFuc2Fj
dGlvbkNvbXBsZXRlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24gaXMg
InZlcnNpb24gMiIKKworZGVsZXRlRGF0YWJhc2VTdWNjZXNzQ2FsbGJhY2soKToKK0ZBSUwgZXZl
bnQub2xkVmVyc2lvbiBzaG91bGQgYmUgbm9uLW51bGwuIFdhcyB1bmRlZmluZWQKK0ZBSUwgZXZl
bnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3QpLiBXYXMgdW5kZWZp
bmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQgaXMgbnVs
bAorCitvcGVuV2l0aFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToKK0ZBSUwgZ290VXBncmFkZU5l
ZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGV2ZW50LnRhcmdldC5y
ZXN1bHQub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzhlZTc1MDZjODNiYjU0MmRmODhlMjJhYTVmMGQyOWRjZDhmNjFiZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5o
dG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmZjZjBiN2ZlNTdmNDc3MDQ3OGFhNWViNzRiMzlhYTMxNTM4MDAwMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3QgdGhh
dCBpbml0aWFsIHZlcnNpb24gYWZ0ZXIgYSBzdWNjZXNzZnVsIG9wZW4gb2YgYSBub24tZXhpc3Rl
bnQgZGIgaXMgMQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJp
bnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorCitvcGVuU3VjY2VzcygpOgorZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0CitUZXN0IGxpbmUgZnJvbSBJREJGYWN0b3J5Lm9wZW46IElmIG5v
IHZlcnNpb24gaXMgc3BlY2lmaWVkIGFuZCBubyBkYXRhYmFzZSBleGlzdHMsIHNldCBkYXRhYmFz
ZSB2ZXJzaW9uIHRvIDEuCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDEgKG9mIHR5cGUgbnVt
YmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YmI1NGEyMGRiYTRlNWFlYTZkNzI5MzgyNzBkMTUzYzg3NjAyZGVjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFt
ZXRlci5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZl
cnNpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzNzBjYWQwMDQ3MTZjM2Q0OWM5Yjg1YjE1
Zjg2YTlkOTljZWFkZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMwIEBACitUZXN0IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hlbiBvcGVuaW5nIGEg
bm9uLWV4aXN0ZW50IGRiIGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGFuZCB0aGF0IHRo
ZSB2ZXJzaW9uIG51bWJlciBpcyBzZXQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwi
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorU2hvdWxkIHRyaWdnZXI6Cis0LjEu
NDogSWYgbm8gZGF0YWJhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBvcmlnaW4gb3Jp
Z2luIHdhcyBmb3VuZCwgb3IgaWYgaXQgd2FzIGRlbGV0ZWQgZHVyaW5nIHRoZSBwcmV2aW91cyBz
dGVwLCB0aGVuIGNyZWF0ZSBhIGRhdGFiYXNlIHdpdGggbmFtZSBuYW1lLCB3aXRoIDAgYXMgdmVy
c2lvbiwgYW5kIHdpdGggbm8gb2JqZWN0IHN0b3Jlcy4gTGV0IGRiIGJlIHRoZSBuZXcgZGF0YWJh
c2UuCis0LjEuNjogQ3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gdG8gZGIgYW5kIGxldCBjb25uZWN0
aW9uIHJlcHJlc2VudCBpdC4KKzQuMS43OiBJZiB0aGUgdmVyc2lvbiBvZiBkYiBpcyBsb3dlciB0
aGFuIHZlcnNpb24sIHRoZW4gcnVuIHRoZSBzdGVwcyBmb3IgcnVubmluZyBhICJ2ZXJzaW9uY2hh
bmdlIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9uLCByZXF1ZXN0IGFuZCB1
cGdyYWRlIGNhbGxiYWNrLgorNC4xLjk6IFJldHVybiBjb25uZWN0aW9uLgorcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKK0ZBSUwgU3RyaW5nKHJlcXVlc3QpIHNob3VsZCBiZSBb
b2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdLiBXYXMgW29iamVjdCBJREJSZXF1ZXN0XS4KKworCitv
cGVuU3VjY2VzcygpOgorVGVzdCA0LjEuNywgdGhhdCBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rp
b24gd2FzIHJ1bi4KK0ZBSUwgc2F3VXBncmFkZU5lZWRlZCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK0tpbmQgb2YgdGVzdCA0LjEuOToKK1BBU1Mg
U3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitGQUlMIGRiLnZlcnNpb24gc2hv
dWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNp
b24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13
aXRoLXZlcnNpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGM3M2Q0NGY4MmIyMTdhY2U3YzEyMTc2MDhi
MGFhZjE3NGFjMjlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZl
cnNpb24tb3Blbi13aXRoLXZlcnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0
aWFsLXVwZ3JhZGVuZWVkZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ1Nzg3NjgxOGE4NTA2MTVjZjk0OGQ4
ZDBiMmI2ZmQ5MmRiNzY1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5l
ZWRlZC5qcwpAQCAtMCwwICsxLDQ5IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAg
aW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMn
KTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRl
c3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lv
biBiYWNrIHRvIDAiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKCkgeworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIGV2YWxBbmRM
b2coInJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZCIpOworICAgIGRlYnVn
KCJGSVhNRTogVGhpcyBzaG91bGQgZ2V0IGFuIGVycm9yIGV2ZW50IG9mIHR5cGUgQWJvcnRFcnJv
ciIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxi
YWNrOworfQorCitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIp
OworICAgIHRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgIHRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKKyAgICB0cmFu
c2FjdGlvbi5vbmFib3J0ID0gb25BYm9ydDsKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5h
Ym9ydCgpIik7Cit9CisKK2Z1bmN0aW9uIG9uQWJvcnQoZXZ0KQoreworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1Zygib25BYm9ydCgpOiIpOworICAgIGV2ZW50ID0gZXZ0OworICAgIHNob3VsZEJl
KCJldmVudC50YXJnZXQuZGIudmVyc2lvbiIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzA5Y2E4ODEwMGVkMDFiODFjYTllYjI3YzY1YjFlM2U5NDJmMjdmNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWFuZC1zZXR2ZXJzaW9uLmpzCkBAIC0wLDAgKzEsMTkwIEBACitpZiAodGhpcy5pbXBvcnRT
Y3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKwor
ZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBpbnQgdmVyc2lvbiB1cGdyYWRlcyBhIHN0cmluZyB2ZXJz
aW9uIGFuZCB0aGF0IHN0cmluZyB2ZXJzaW9ucyBhcmUgdGhlbiBkaXNhbGxvd2VkIik7CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJO
YW1lRnJvbVBhdGgoKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5n
KHJlcXVlc3QpIiwgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJDYWxsIG9wZW4gd2l0aCBubyB2ZXJzaW9uIHBhcmFtZXRl
cjoiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIp
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSB1bmV4cGVjdGVkVXBncmFkZU5lZWRlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
b3BlblN1Y2Nlc3MoKToiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICIiKTsK
KyAgICBldmFsQW5kTG9nKCdyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic29tZSB2ZXJzaW9uIikn
KTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGluU2V0VmVyc2lvbjsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGluU2V0VmVyc2lvbihl
dnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJpblNl
dFZlcnNpb24oKToiKTsKKyAgICB0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgdHJh
bnMub25jb21wbGV0ZSA9IHNldFZlcnNpb25Eb25lOworICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4
cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBkYiA9IHRyYW5zLmRiOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJzb21lIHZlcnNpb24iKTsKKyAgICAvLyBGSVhNRTog
QWRkIGEgdGVzdCB0aGF0IGNhbGxzIG9wZW4gd2l0aCB2ZXJzaW9uIGZyb20gaGVyZS4KK30KKwor
ZnVuY3Rpb24gc2V0VmVyc2lvbkRvbmUoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1Zygic2V0VmVyc2lvbkRvbmUoKToiKTsKKyAgICBkYiA9IGV2ZW50
LnRhcmdldC5kYjsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29t
ZSB2ZXJzaW9uIik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRPcGVuIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1
bmV4cGVjdGVkVXBncmFkZU5lZWRlZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBzZWNvbmRPcGVu
KGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNl
Y29uZE9wZW4oKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJE
YXRhYmFzZV0iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29t
ZSB2ZXJzaW9uIik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIC8vIEZJWE1F
OiBBZGQgdGVzdHMgdGhhdCBjYWxsIGl0IHdpdGggMCwgLTEsIGFuZCAtNC4KKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qu
b251cGdyYWRlbmVlZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkCisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4
cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RPcGVu
V2l0aFZlcnNpb247Cit9CisKK2Z1bmN0aW9uIGZpcnN0VXBncmFkZU5lZWRlZChldnQpCit7Cisg
ICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmaXJzdFVwZ3JhZGVO
ZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJEYXRh
YmFzZV0iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0LnRyYW5z
YWN0aW9uKSIsICJbb2JqZWN0IElEQlRyYW5zYWN0aW9uXSIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZXZlbnQub2xkVmVyc2lvbiIsICJzb21lIHZlcnNpb24iKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQubmV3VmVyc2lvbiIsICIyIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC50cmFu
c2FjdGlvbi5vbmNvbXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQiKTsKKyAgICByZXF1ZXN0
LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKK30KKwordmFy
IGRpZFRyYW5zYWN0aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHRyYW5zYWN0aW9uQ29t
cGxldGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVi
dWcoInRyYW5zYWN0aW9uQ29tcGxldGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGlkVHJhbnNh
Y3Rpb25Db21wbGV0ZSA9IHRydWUiKTsKK30KKworZnVuY3Rpb24gZmlyc3RPcGVuV2l0aFZlcnNp
b24oZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
Zmlyc3RPcGVuV2l0aFZlcnNpb24oKToiKTsKKyAgICBzaG91bGRCZVRydWUoImRpZFRyYW5zYWN0
aW9uQ29tcGxldGUiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJE
YXRhYmFzZV0iKTsKKyAgICBzaG91bGRCZU51bGwoInJlcXVlc3QudHJhbnNhY3Rpb24iKTsKKyAg
ICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJTdHJpbmcocmVxdWVzdCkiLCAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIpOworICAgIGV2
YWxBbmRMb2coJ3JlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCJzdHJpbmcgdmVyc2lvbiAyIiknKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0KSIsICJbb2JqZWN0IElE
QlZlcnNpb25DaGFuZ2VSZXF1ZXN0XSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBl
Y3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRT
dWNjZXNzQ2FsbGJhY2s7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbmVycm9yID0gc2V0VmVy
c2lvbk5vdEFsbG93ZWQiKTsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvbk5vdEFsbG93ZWQoZXZ0
KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic2V0VmVy
c2lvbk5vdEFsbG93ZWQoKToiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5
cGUiLCAiZXJyb3IiKTsKKyAgICBkZWJ1ZygicmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UgPSAi
ICsgcmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3Nl
KCkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAx
KSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25lcnJvciA9IGVycm9yV2hlblRyeWluZ0xv
d1ZlcnNpb24iKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNr
OworfQorCitmdW5jdGlvbiBlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImVycm9yV2hlblRyeWluZ0xv
d1ZlcnNpb24oKToiKTsKKyAgICBkZWJ1ZygicmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UgPSAi
ICsgcmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDQpIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1
bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub251cGdyYWRlbmVlZGVk
ID0gc2Vjb25kVXBncmFkZU5lZWRlZCIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNj
ZXNzID0gdGhpcmRPcGVuU3VjY2VzcyIpOworfQorCit2YXIgZ290U2Vjb25kVXBncmFkZU5lZWRl
ZCA9IGZhbHNlOworZnVuY3Rpb24gc2Vjb25kVXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZl
bnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzZWNvbmRVcGdyYWRlTmVlZGVk
KCk6Iik7CisgICAgZXZhbEFuZExvZygiZ290U2Vjb25kVXBncmFkZU5lZWRlZCA9IHRydWUiKTsK
KyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm5ld1ZlcnNpb24iLCAiNCIpOworfQorCitmdW5jdGlvbiB0aGlyZE9wZW5TdWNjZXNzKGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInRoaXJk
T3BlblN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZVRydWUoImdvdFNlY29uZFVwZ3JhZGVOZWVk
ZWQiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBz
aG91bGRCZSgiZGIudmVyc2lvbiIsICI0Iik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIp
OworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7Cisg
ICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBmb3VydGhPcGVuU3VjY2VzcyIpOwor
ICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxs
YmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkVXBncmFkZU5lZWRlZENhbGxi
YWNrOworfQorCitmdW5jdGlvbiBmb3VydGhPcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQg
PSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmb3VydGhPcGVuU3VjY2VzcygpOiIp
OworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3Vs
ZEJlKCJkYi52ZXJzaW9uIiwgIjQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lu
dHZlcnNpb24tYmxvY2tlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QxOGRjYTc3NTFkY2M5NzA0
MDU4MzEzN2Q4MjczOTM3ZTliNTk0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMKQEAgLTAsMCAr
MSw5MCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2Ny
aXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYmxvY2tlZCBl
dmVudHMgZ2V0IGRlbGl2ZXJlZCBwcm9wZXJseSB3aXRoIHRoZSBuZXcgb3BlbiBhcGkiKTsKKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXRE
Qk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3Vj
Y2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30K
KworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBwcmVhbWJsZSgpOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXI7CisgICAgcmVxdWVzdC5v
bmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2
ZW50ID0gZmFsc2U7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmaXJzdFVwZ3JhZGVO
ZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2so
ZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZ290Rmlyc3RVcGdy
YWRlTmVlZGVkRXZlbnQgPSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24i
LCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhldmVudCkiLCAiW29iamVjdCBJREJVcGdyYWRlTmVl
ZGVkRXZlbnRdIik7Cit9CisKK2dvdEJsb2NrZWRFdmVudCA9IGZhbHNlOworZnVuY3Rpb24gZmly
c3RTdWNjZXNzRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNo
b3VsZEJlVHJ1ZSgiZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQiKTsKKyAgICBldmFsQW5kTG9n
KCJjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFsQW5kTG9nKCJj
b25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdlSGFuZGxlciIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGNvbm5lY3Rpb24xKSIsICJbb2JqZWN0IElE
QkRhdGFiYXNlXSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUsIDMpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJh
Y2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAg
cmVxdWVzdC5vbmJsb2NrZWQgPSBibG9ja2VkRXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gc2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjsKK30KKwordmFy
IHNhd1ZlcnNpb25DaGFuZ2VFdmVudCA9IGZhbHNlOworZnVuY3Rpb24gdmVyc2lvbkNoYW5nZUhh
bmRsZXIoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygic2F3VmVy
c2lvbkNoYW5nZUV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZl
bnQudHlwZSIsICJ2ZXJzaW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJT
dHJpbmcoZXZlbnQpIiwgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZUV2ZW50XSIpOworICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQiLCAiY29ubmVjdGlvbjEiKTsKKyAgICBzaG91bGRCZSgiZXZl
bnQub2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAi
MyIpOworfQorCitmdW5jdGlvbiBibG9ja2VkRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVh
bWJsZShldnQpOworICAgIHNob3VsZEJlVHJ1ZSgic2F3VmVyc2lvbkNoYW5nZUV2ZW50Iik7Cisg
ICAgZXZhbEFuZExvZygiZ290QmxvY2tlZEV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiU3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVu
dF0iKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxk
QmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZXZlbnQudHlwZSIsICJibG9ja2VkIik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEuY2xv
c2UoKSIpOworfQorCitnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKK2Z1bmN0
aW9uIHNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIoZXZ0KQoreworICAgIHByZWFtYmxl
KGV2dCk7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RCbG9ja2VkRXZlbnQiKTsKKyAgICBldmFsQW5k
TG9nKCJnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlIik7Cit9CisKK2Z1bmN0aW9u
IHNlY29uZFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBz
aG91bGRCZVRydWUoImdvdFNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWJl
dHdlZW4tZXZlbnRzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NzI5NGY5MzhkYTE0NjBjNmM2MWI2ZmRmMThm
NDY3Zjg1NzQxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcwpAQCAtMCww
ICsxLDczIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygn
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRT
Y3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRyeSB0byBjYWxsIGRiLmNs
b3NlKCkgYWZ0ZXIgdXBncmFkZW5lZWRlZCBidXQgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIHN1
Y2Nlc3MgZXZlbnQgZmlyZXMiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVu
ZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkg
eworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQ7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4
cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIGRlYnVnKCIiKTsKK30KKwordmFyIHNhd1RyYW5z
YWN0aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVkZWQoZXZ0KQorewor
ICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidXBncmFkZU5lZWRl
ZCgpOiIpOworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAg
IHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjciKTsKKyAgICBldmFsQW5kTG9nKCJkYi5j
cmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0c3RvcmUnKSIpOworCisgICAgZXZhbEFuZExvZygidHJh
bnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKKyAgICB0cmFuc2FjdGlvbi5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25jb21w
bGV0ZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJ0
cmFuc2FjdGlvbi5vbmNvbXBsZXRlOiIpOworICAgICAgICBldmFsQW5kTG9nKCJzYXdUcmFuc2Fj
dGlvbkNvbXBsZXRlID0gdHJ1ZSIpOworICAgICAgICBldmFsQW5kTG9nKCJzZXRUaW1lb3V0KGNs
b3NlREIsIDApIik7CisgICAgfQorfQorCit2YXIgZGlkQ2FsbENsb3NlREIgPSBmYWxzZTsKK2Z1
bmN0aW9uIGNsb3NlREIoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiY2xvc2VEQigp
OiIpOworICAgIGV2YWxBbmRMb2coImRpZENhbGxDbG9zZURCID0gdHJ1ZSIpOworICAgIGV2YWxB
bmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24g
b3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkaWRDYWxsQ2xv
c2VEQiIpOworICAgIHNob3VsZEJlVHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSIpOworICAg
IGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxk
QmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGlmIChkYi52ZXJzaW9uICE9PSA3KSB7CisgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNob3VsZEJl
KCJkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIsICIxIik7CisgICAgZXZhbEFuZExvZygiZGIu
dHJhbnNhY3Rpb24nZGIub2JqZWN0U3RvcmVOYW1lcykiKTsKK30KKwordGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
Y2xvc2UtaW4tb25jb21wbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg0
NGE1N2Q0YTNiOTE4YzExOGMxYWM1YWNkMDA5NjgxYTFkY2Y5NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3Nl
LWluLW9uY29tcGxldGUuanMKQEAgLTAsMCArMSw1OCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2Ny
aXB0aW9uKCJDYWxsIGRiLmNsb3NlKCkgaW4gdGhlIGNvbXBsZXRlIGhhbmRsZXIgZm9yIGEgdmVy
c2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24sIGJlZm9yZSB0aGUgc3VjY2VzcyBldmVudCBhc3NvY2lh
dGVkIHdpdGggdGhlIG9wZW4gY2FsbCBmaXJlcyIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisKKyAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSki
KTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1
Y2Nlc3MoZXZ0KSB7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgNykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZDsKKyAgICByZXF1ZXN0Lm9uYmxv
Y2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK3ZhciBzYXdUcmFuc2FjdGlv
bkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToi
KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91
bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI3Iik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ29zJykiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlv
bihlKQorICAgIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygidHJhbnNhY3Rp
b24ub25jb21wbGV0ZToiKTsKKyAgICAgICAgZXZhbEFuZExvZygic2F3VHJhbnNhY3Rpb25Db21w
bGV0ZSA9IHRydWUiKTsKKyAgICAgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIH0K
K30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAg
IGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZVRy
dWUoInNhd1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICI3Iik7CisgICAg
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3Mn
LCAncmVhZHdyaXRlJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZh
bGlkU3RhdGVFcnJvciciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24taGlnaC12ZXJzaW9uLWZpcnN0LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNm
OTE3OTEwN2JlNmMzZDJiNzFlZTE2YWM5MTBhOWU5ZGQ0ODAwMzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1oaWdo
LXZlcnNpb24tZmlyc3QuanMKQEAgLTAsMCArMSwxNTEgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlw
dHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNj
cmlwdGlvbigiVGVzdCB0aGF0IGlmIHR3byBvcGVuIHJlcXVlc3RzIGFyZSB3YWl0aW5nIGF0IHRo
ZSBzYW1lIHRpbWUsIHRoZSBvbmUgd2l0aCB0aGUgaGlnaGVyIHZlcnNpb24gZ2V0cyBjYWxsZWQg
Zmlyc3QiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBkZWJ1Zygi
Iik7CisgICAgZGVidWcoImRlbGV0ZVN1Y2Nlc3MoKToiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKKyAgICBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IGZhbHNlOwor
ICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICBldmVu
dCA9IGV2dDsKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGRlYnVnKCJyZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCgpOiIpOworICAgICAgZXZhbEFuZExvZygiZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZl
bnQgPSB0cnVlIik7CisgICAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cisg
ICAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICIxIik7CisgICAgfQorfQorCitmdW5j
dGlvbiBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0Owor
ICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKCk6IikK
KyAgICBzaG91bGRCZVRydWUoImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAgZXZh
bEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFu
ZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIi
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0MiA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMiki
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0MyA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMyki
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0NCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNCki
KTsKKyAgICByZXF1ZXN0Mi5vbnN1Y2Nlc3MgPSBzdWNjZXNzQ2FsbGJhY2syOworICAgIHJlcXVl
c3QyLm9uYmxvY2tlZCA9IGJsb2NrZWRFdmVudEhhbmRsZXIyOworICAgIHJlcXVlc3QyLm9udXBn
cmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIyOworICAgIHJlcXVlc3QyLm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKworICAgIHJlcXVlc3QzLm9uc3VjY2Vz
cyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdDMub25ibG9ja2VkID0g
YmxvY2tlZEV2ZW50SGFuZGxlcjM7CisgICAgcmVxdWVzdDMub251cGdyYWRlbmVlZGVkID0gdW5l
eHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0My5vbmVycm9yID0gZXJy
b3JIYW5kbGVyMzsKKworICAgIHJlcXVlc3Q0Lm9uc3VjY2VzcyA9IHN1Y2Nlc3NDYWxsYmFjazQ7
CisgICAgcmVxdWVzdDQub25ibG9ja2VkID0gYmxvY2tlZEV2ZW50SGFuZGxlcjQ7CisgICAgcmVx
dWVzdDQub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjQ7CisgICAg
cmVxdWVzdDQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCit2YXIgdmVy
c2lvbkNoYW5nZUV2ZW50c1NlZW4gPSAwOworZnVuY3Rpb24gdmVyc2lvbkNoYW5nZUhhbmRsZXIo
ZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidmVy
c2lvbkNoYW5nZUhhbmRsZXIoKToiKTsKKyAgICBkZWJ1ZygiKyt2ZXJzaW9uQ2hhbmdlRXZlbnRz
U2VlbiA9ICIgKyAoKyt2ZXJzaW9uQ2hhbmdlRXZlbnRzU2VlbikpOworICAgIGRlYnVnKCJldmVu
dC5vbGRWZXJzaW9uID0gIiArIGV2ZW50Lm9sZFZlcnNpb24pOworICAgIGRlYnVnKCJldmVudC5u
ZXdWZXJzaW9uID0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworfQorCit2YXIgZ290QmxvY2tlZEV2
ZW50MiA9IGZhbHNlOworZnVuY3Rpb24gYmxvY2tlZEV2ZW50SGFuZGxlcjIoZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiYmxvY2tlZEV2ZW50SGFu
ZGxlcjIoKToiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIxIik7CisgICAg
c2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlRmFsc2UoImdv
dEJsb2NrZWRFdmVudDQiKTsKKyAgICBldmFsQW5kTG9nKCJnb3RCbG9ja2VkRXZlbnQyID0gdHJ1
ZSIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsKKyAgICBpZiAoZ290
QmxvY2tlZEV2ZW50NCkKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHVw
Z3JhZGVOZWVkZWRFdmVudEhhbmRsZXIyKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIyKCk6Iik7Cisg
ICAgc2hvdWxkQmVGYWxzZSgiZ290QmxvY2tlZEV2ZW50NCIpOworICAgIGlmIChnb3RCbG9ja2Vk
RXZlbnQ0KQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0Nh
bGxiYWNrMihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRl
YnVnKCJzdWNjZXNzQ2FsbGJhY2syKCk6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiZ290QmxvY2tl
ZEV2ZW50NCIpOworICAgIGlmIChnb3RCbG9ja2VkRXZlbnQ0KQorICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKwordmFyIGdvdEJsb2NrZWRFdmVudDQgPSBmYWxzZTsKK2Z1bmN0aW9uIGJsb2Nr
ZWRFdmVudEhhbmRsZXI0KGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXI0KCk6Iik7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwg
IjQiKTsKKyAgICBzaG91bGRCZVRydWUoImdvdEJsb2NrZWRFdmVudDIiKTsKKyAgICBldmFsQW5k
TG9nKCJnb3RCbG9ja2VkRXZlbnQ0ID0gdHJ1ZSIpOworfQorCitmdW5jdGlvbiB1cGdyYWRlTmVl
ZGVkRXZlbnRIYW5kbGVyNChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyNCgpOiIpOworfQorCitmdW5j
dGlvbiBzdWNjZXNzQ2FsbGJhY2s0KGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1
ZygiIik7CisgICAgZGVidWcoInN1Y2Nlc3NDYWxsYmFjazQoKToiKTsKK30KKworZnVuY3Rpb24g
ZXJyb3JIYW5kbGVyMyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJlcnJvckhhbmRsZXIzKCk6Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisK
K2Z1bmN0aW9uIGJsb2NrZWRFdmVudEhhbmRsZXIzKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXIzKCk6Iik7CisgICAgZGVidWcoIkZGIGFsc28g
ZmFpbHMgdGhpcyB0ZXN0LiIpOworICAgIHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2soZXZ0KTsK
K30KKworCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZjEzYWQ5OTIxMDQ5Y2M4OWQ4Zjk0YzhlYzFmMjVhN2NmOTMyZDA1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
bG9uZy1xdWV1ZS5qcwpAQCAtMCwwICsxLDEzMiBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
eworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0
aW9uKCJUZXN0IHRoYXQgYSBkYXRhYmFzZSBpcyByZWNyZWF0ZWQgY29ycmVjdGx5IHdoZW4gYW4g
b3Blbi13aXRoLXZlcnNpb24gY2FsbCBpcyBxdWV1ZWQgYmVoaW5kIGJvdGggYSBkZWxldGVEYXRh
YmFzZSBhbmQgc2V0VmVyc2lvbiBjYWxsIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJl
bW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3Mo
ZXZ0KSB7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNz
ID0gZmlyc3RTdWNjZXNzQ2FsbGJhY2siKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGZpcnN0U3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sK
KyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLm9udmVyc2lvbmNo
YW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrIik7CisgICAgZXZhbEFuZExv
ZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IHNlY29uZFN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2Vk
ID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2Vjb25kU3VjY2Vz
c0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImNv
bm5lY3Rpb24yID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5l
Y3Rpb24yLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24yVmVyc2lvbkNoYW5nZUNhbGxiYWNr
Iik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGNvbm5lY3Rpb24yLnNldFZlcnNpb24oJ3Zl
cnNpb24gMicpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbmJsb2NrZWQgPSBzZXRWZXJz
aW9uQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGNvbm5lY3Rpb24xVmVyc2lvbkNo
YW5nZUNhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJ2ZXJzaW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJldmVudC52ZXJzaW9uIiwgInZlcnNpb24gMiIpOworfQorCitmdW5jdGlv
biBzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNpb25CbG9ja2VkQ2FsbGJhY2soKToiKTsK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uYmxvY2tlZCA9IGRlbGV0ZURhdGFiYXNl
QmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBk
ZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworCisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2coInJlcXVl
c3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVx
dWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIGV2YWxBbmRMb2coImNvbm5l
Y3Rpb24xLmNsb3NlKCkiKTsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3NDYWxsYmFj
ayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlv
biA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IHRyYW5zYWN0
aW9uLmRiIik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWUgb2Jq
ZWN0IHN0b3JlJykiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
c2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayIpOworICAgIHRyYW5zYWN0aW9u
Lm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2V0VmVy
c2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5kYi52ZXJzaW9uIiwg
InZlcnNpb24gMiIpOworfQorCitmdW5jdGlvbiBjb25uZWN0aW9uMlZlcnNpb25DaGFuZ2VDYWxs
YmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5nZSIpOworICAgIGRlYnVnKCJGSVhNRTogRmly
ZSBhIHZlcnNpb25jaGFuZ2UgZXZlbnQgdGhhdCBoYXMgb2xkVmVyc2lvbiBhbmQgbmV3VmVyc2lv
biIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQub2xkVmVyc2lvbiIsICJ2ZXJz
aW9uIDIiKTsKKyAgICBzaG91bGRCZU51bGwoImV2ZW50Lm5ld1ZlcnNpb24iKTsKKyAgICBzaG91
bGRCZVVuZGVmaW5lZCgiZXZlbnQudmVyc2lvbiIpOworfQorCitmdW5jdGlvbiBkZWxldGVEYXRh
YmFzZUJsb2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFs
QW5kTG9nKCJjb25uZWN0aW9uMi5jbG9zZSgpIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJldmVudC5vbGRWZXJzaW9uIiwgInZlcnNpb24gMiIpOworICAgIHNob3VsZEJlTnVsbCgiZXZl
bnQubmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJldmVudC52ZXJzaW9uIik7
Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAg
ICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlTm9uTnVsbCgiZXZlbnQub2xkVmVyc2lvbiIp
OworICAgIHNob3VsZEJlTnVsbCgiZXZlbnQubmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlTnVs
bCgiZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworfQorCit2YXIgZ290VXBncmFkZU5lZWRlZEV2ZW50
ID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkQ2FsbGJhY2soZXZ0KQoreworICAgIHBy
ZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZ290VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1
ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjEiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cit9CisKK2Z1bmN0aW9uIG9wZW5XaXRoVmVyc2lv
blN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRC
ZVRydWUoImdvdFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAiKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yY2ZlY2Q2MGI5YTRhYWIxNzM2Y2FmNTk0ZmNhOGY5ZDgxMGY1MWUwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMKQEAgLTAsMCArMSwzOSBAQAoraWYgKHRoaXMu
aW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7
Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgaW5pdGlhbCB2ZXJzaW9uIGFmdGVyIGEgc3Vj
Y2Vzc2Z1bCBvcGVuIG9mIGEgbm9uLWV4aXN0ZW50IGRiIGlzIDEiKTsKKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0
aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIub3BlbihkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsK
KyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1
ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKKyAgICAgIHRlc3RQYXNzZWQoIkdvdCB1cGdy
YWRlbmVlZGVkIGV2ZW50Iik7CisgICAgfQorfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQp
Cit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3Vj
Y2VzcygpOiIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7CisgICAgZGVidWcoIlRlc3QgbGluZSBmcm9tIElEQkZhY3Rvcnkub3BlbjogSWYgbm8gdmVy
c2lvbiBpcyBzcGVjaWZpZWQgYW5kIG5vIGRhdGFiYXNlIGV4aXN0cywgc2V0IGRhdGFiYXNlIHZl
cnNpb24gdG8gMS4iKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICcxJyk7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13
aXRoLXZlcnNpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhiMzNkNTY4ZDJjYjIzYTI2ZTQyZGI3NTA5MmRm
OWM4OTNmMGFjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmpzCkBAIC0wLDAgKzEs
NzYgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlw
dHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHNwZWNpZnlpbmcg
YSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBjYXVzZXMgYW4gdXBncmFk
ZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgc2V0IGNvcnJlY3Rs
eS4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
KyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgZGVidWcoIlNob3VsZCB0
cmlnZ2VyOiIpOworICAgIGRlYnVnKCI0LjEuNDogSWYgbm8gZGF0YWJhc2Ugd2l0aCB0aGUgZ2l2
ZW4gbmFtZSBmcm9tIHRoZSBvcmlnaW4gb3JpZ2luIHdhcyBmb3VuZCwgb3IgaWYgaXQgd2FzIGRl
bGV0ZWQgZHVyaW5nIHRoZSBwcmV2aW91cyBzdGVwLCB0aGVuIGNyZWF0ZSBhIGRhdGFiYXNlIHdp
dGggbmFtZSBuYW1lLCB3aXRoIDAgYXMgdmVyc2lvbiwgYW5kIHdpdGggbm8gb2JqZWN0IHN0b3Jl
cy4gTGV0IGRiIGJlIHRoZSBuZXcgZGF0YWJhc2UuIik7CisgICAgZGVidWcoIjQuMS42OiBDcmVh
dGUgYSBuZXcgY29ubmVjdGlvbiB0byBkYiBhbmQgbGV0IGNvbm5lY3Rpb24gcmVwcmVzZW50IGl0
LiIpOworICAgIGRlYnVnKCI0LjEuNzogSWYgdGhlIHZlcnNpb24gb2YgZGIgaXMgbG93ZXIgdGhh
biB2ZXJzaW9uLCB0aGVuIHJ1biB0aGUgc3RlcHMgZm9yIHJ1bm5pbmcgYSBcInZlcnNpb25jaGFu
Z2VcIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9uLCByZXF1ZXN0IGFuZCB1
cGdyYWRlIGNhbGxiYWNrLiIpOworICAgIGRlYnVnKCI0LjEuOTogUmV0dXJuIGNvbm5lY3Rpb24u
Iik7CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3
KSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QpIiwgIltvYmpl
Y3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNj
ZXNzOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZDsKKyAgICBy
ZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgZGVidWco
IiIpOworfQorCit2YXIgc2F3VXBncmFkZU5lZWRlZCA9IGZhbHNlOwordmFyIHNhd1RyYW5zYWN0
aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIHRlc3RQYXNzZWQoIkluIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50
IGhhbmRlcjoiKTsKKyAgICBkZWJ1ZygiVGVzdCA0LjguOS4xOiIpOworICAgIGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
U3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOworICAgIGRlYnVnKCJUZXN0IDQu
OC45LjM6Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOworICAgIHNo
b3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjciKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIiwgImRvbmUiKTsKKyAgICBkZWJ1ZygiVGVzdCA0
LjEuNDoiKTsKKyAgICBzaG91bGRCZSgiZGIubmFtZSIsICJkYm5hbWUiKTsKKyAgICBzaG91bGRC
ZSgiZGIudmVyc2lvbiIsICI3Iik7CisgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMu
bGVuZ3RoIiwgIjAiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcodHJh
bnNhY3Rpb24pIiwgIltvYmplY3QgSURCVHJhbnNhY3Rpb25dIik7CisgICAgZXZhbEFuZExvZygn
b3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29tZU9TIiknKTsKKyAgICB0cmFuc2FjdGlvbi5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25jb21w
bGV0ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGV2YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29t
cGxldGUgPSB0cnVlIik7CisgICAgfQorICAgIHNhd1VwZ3JhZGVOZWVkZWQgPSB0cnVlOworfQor
CitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVi
dWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIGRlYnVnKCJUZXN0IDQu
MS43LCB0aGF0IGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB3YXMgcnVuLiIpOworICAgIHNo
b3VsZEJlKCJzYXdVcGdyYWRlTmVlZGVkIiwgInRydWUiKTsKKyAgICBzaG91bGRCZVRydWUoInNh
d1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworICAgIGRlYnVnKCJLaW5kIG9mIHRlc3QgNC4xLjk6Iik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2Vd
Iik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL3NoYXJlZC5qcwppbmRleCBhMDZmNWFmNDAwY2Y4OTMwYTY2MDdkZTc5Y2VlZmMxYTAw
MTc4Yzg3Li5hN2U3NjRiMDc3NGFiZGU5YWQxMTA4YWFhMTcyMGI1NjhlNWZiOWRmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKQEAg
LTEyMyw2ICsxMjMsMTggQEAgZnVuY3Rpb24gZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKQogICAg
IGRlYnVnKCJEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLiIpOwogfQogCitmdW5jdGlvbiBzZXRE
Qk5hbWVGcm9tUGF0aCgpIHsKKyAgICBldmFsQW5kTG9nKCdkYm5hbWUgPSAiJyArIHNlbGYubG9j
YXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJ
bmRleE9mKCIvIikpICsgJyInKTsKK30KKworZnVuY3Rpb24gcHJlYW1ibGUoZXZ0KQoreworICAg
IGlmIChldnQpCisgICAgICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZyhwcmVhbWJsZS5jYWxsZXIubmFtZSArICIoKToiKTsKK30KKwogLy8gRm9yIFdvcmtlcnMKIGlm
ICghc2VsZi5ET01FeGNlcHRpb24pIHsKICAgICBzZWxmLkRPTUV4Y2VwdGlvbiA9IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155360</attachid>
            <date>2012-07-30 14:14:19 -0700</date>
            <delta_ts>2012-07-31 13:26:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92560-20120730141403.patch</filename>
            <type>text/plain</type>
            <size>55626</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUzOGRjNTlmNTEwZmY5MTBjZDM4
ZmVjZmFmOTI2NTY3NzRiZTg3My4uZmE3NDExOTQ1YTBlZDk2NDhiYmExODVhMDJiZGYzNmUxNWQ4
NzZiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNyBAQAorMjAxMi0wNy0zMCAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBpbnRlZ2VyIHZlcnNp
b24gbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MjU2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1vc3Qgb2YgdGhlIGludGVnZXIgdmVyc2lvbiBsYXlvdXQgdGVzdHMgYXJlIGhlcmUs
IHdpdGggZmFpbHVyZXMgaW4KKyAgICAgICAgdGhlIGV4cGVjdGVkIGZpbGVzLiAgVGhpcyB3aWxs
IGFsbG93IHVzIHRvIGluY3JlbWVudGFsbHkgaW1wbGVtZW50CisgICAgICAgIHVwZ3JhZGVuZWVk
ZWQgYW5kIGludGVnZXIgdmVyc2lvbnMuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5p
dGlhbC11cGdyYWRlbmVlZGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
YmxvY2tlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9u
Y29tcGxldGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gt
dmVyc2lvbi1maXJzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1w
YXJhbWV0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQt
aW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgICh1cGdyYWRlTmVlZGVkKToKKyAgICAgICAg
KG9uQWJvcnQpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWFuZC1zZXR2ZXJzaW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAo
ZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgIChpblNldFZl
cnNpb24pOgorICAgICAgICAoc2V0VmVyc2lvbkRvbmUpOgorICAgICAgICAoc2Vjb25kT3Blbik6
CisgICAgICAgIChmaXJzdFVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAodHJhbnNhY3Rpb25Db21w
bGV0ZWQpOgorICAgICAgICAoZmlyc3RPcGVuV2l0aFZlcnNpb24pOgorICAgICAgICAoc2V0VmVy
c2lvbk5vdEFsbG93ZWQpOgorICAgICAgICAoZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbik6Cisg
ICAgICAgIChzZWNvbmRVcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKHRoaXJkT3BlblN1Y2Nlc3Mp
OgorICAgICAgICAoZm91cnRoT3BlblN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanM6IEFkZGVkLgorICAgICAgICAodGVz
dCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKGZpcnN0VXBncmFkZU5lZWRl
ZENhbGxiYWNrKToKKyAgICAgICAgKGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcik6CisgICAgICAg
ICh2ZXJzaW9uQ2hhbmdlSGFuZGxlcik6CisgICAgICAgIChibG9ja2VkRXZlbnRIYW5kbGVyKToK
KyAgICAgICAgKHNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIpOgorICAgICAgICAoc2Vj
b25kU3VjY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFkZU5lZWRlZC50
cmFuc2FjdGlvbi5vbmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQpOgorICAgICAg
ICAoY2xvc2VEQik6CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAo
dXBncmFkZU5lZWRlZC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVO
ZWVkZWQpOgorICAgICAgICAob3BlblN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MucmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQpOgorICAgICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChmaXJzdFN1Y2Nlc3NF
dmVudEhhbmRsZXIpOgorICAgICAgICAodmVyc2lvbkNoYW5nZUhhbmRsZXIpOgorICAgICAgICAo
YmxvY2tlZEV2ZW50SGFuZGxlcjIpOgorICAgICAgICAodXBncmFkZU5lZWRlZEV2ZW50SGFuZGxl
cjIpOgorICAgICAgICAoc3VjY2Vzc0NhbGxiYWNrMik6CisgICAgICAgIChibG9ja2VkRXZlbnRI
YW5kbGVyNCk6CisgICAgICAgICh1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyNCk6CisgICAgICAg
IChzdWNjZXNzQ2FsbGJhY2s0KToKKyAgICAgICAgKGVycm9ySGFuZGxlcjMpOgorICAgICAgICAo
YmxvY2tlZEV2ZW50SGFuZGxlcjMpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9pbnR2ZXJzaW9uLWxvbmctcXVldWUuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKGZpcnN0U3VjY2Vzc0NhbGxiYWNrKToK
KyAgICAgICAgKHNlY29uZFN1Y2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChjb25uZWN0aW9uMVZl
cnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNr
KToKKyAgICAgICAgKHNldFZlcnNpb25TdWNjZXNzQ2FsbGJhY2spOgorICAgICAgICAoc2V0VmVy
c2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayk6CisgICAgICAgIChjb25uZWN0aW9uMlZl
cnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxs
YmFjayk6CisgICAgICAgIChkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayk6CisgICAgICAg
ICh1cGdyYWRlTmVlZGVkQ2FsbGJhY2spOgorICAgICAgICAob3BlbldpdGhWZXJzaW9uU3VjY2Vz
c0NhbGxiYWNrKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVy
c2lvbi1vbWl0LXBhcmFtZXRlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KGRlbGV0ZVN1Y2Nlc3MucmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQpOgorICAgICAgICAoZGVsZXRl
U3VjY2Vzcyk6CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKHVwZ3Jh
ZGVOZWVkZWQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSk6CisgICAgICAgICh1cGdyYWRlTmVlZGVk
KToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAoc2V0REJOYW1lRnJvbVBhdGgpOgorICAgICAg
ICAocHJlYW1ibGUpOgorCiAyMDEyLTA3LTI2ICBOYXlhbiBLdW1hciBLICA8bmF5YW5ra0Btb3Rv
cm9sYS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBJbml0aWFsIHNpemUgb2YgY2FudmFzIGNhbiBi
ZSBsYXJnZXIgdGhhbiBNQVhfVklFV1BPUlRfRElNUy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVl
ZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45OTA4M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1YTdkODkyYWE2YTYzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1p
bml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3Qg
dGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBi
YWNrIHRvIDAKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50
dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCIKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCityZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQKK0ZJWE1FOiBUaGlzIHNob3VsZCBnZXQg
YW4gZXJyb3IgZXZlbnQgb2YgdHlwZSBBYm9ydEVycm9yCityZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjaworRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVj
dGVkbHkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1h
Ym9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjY4YWMwZDBlN2M5ODA1NTIzZGU0OGNhMDMyMTc2MWIzZjI1M2Y3ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
YWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lv
bi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYyMjJjYTE1ZDA5Yzc0ZDNhMmY0NDc5OGQyMGJkYzE4ZTUzMjUxNmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFu
ZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUwIEBACitUZXN0IHRoYXQgaW50
IHZlcnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcgdmVyc2lv
bnMgYXJlIHRoZW4gZGlzYWxsb3dlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisK
K2RibmFtZSA9ICJpbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0bWwiCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQorRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmpl
Y3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0
XS4KKworQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0ZXI6CitpbmRleGVkREIub3Bl
bihkYm5hbWUpCisKK29wZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BB
U1MgZGIudmVyc2lvbiBpcyAiIgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInNvbWUgdmVyc2lv
biIpCisKK2luU2V0VmVyc2lvbigpOgorUEFTUyBkYi52ZXJzaW9uIGlzICJzb21lIHZlcnNpb24i
CisKK3NldFZlcnNpb25Eb25lKCk6CitQQVNTIGRiLnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIK
K2RiLmNsb3NlKCkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qub25zdWNjZXNzID0g
c2Vjb25kT3BlbgorCitzZWNvbmRPcGVuKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BB
U1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitQQVNTIGRiLnZlcnNpb24g
aXMgInNvbWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUsIDIpCisKK2ZpcnN0T3BlbldpdGhWZXJzaW9uKCk6CitGQUlMIGRpZFRyYW5zYWN0aW9u
Q29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1BBU1MgcmVx
dWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDIgKG9m
IHR5cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAob2YgdHlwZSBzdHJpbmcpLgorRkFJTCBT
dHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBb
b2JqZWN0IElEQlJlcXVlc3RdLgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInN0cmluZyB2ZXJz
aW9uIDIiKQorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURCVmVyc2lvbkNoYW5n
ZVJlcXVlc3RdIgorcmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbk5vdEFsbG93ZWQKK0ZBSUwg
U3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MDZkZWQzOWUwMTNmM2NjNTU3Y2JiNjA4M2Y4ZTc2ZmFjMjI4ZjhhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1h
bmQtc2V0dmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24u
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYWMzY2NmMmMzNGJmZjA5NDk0M2U2MTNmYTBkYjYzODdkZmJh
Mzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACitUZXN0IHRoYXQg
YmxvY2tlZCBldmVudHMgZ2V0IGRlbGl2ZXJlZCBwcm9wZXJseSB3aXRoIHRoZSBuZXcgb3BlbiBh
cGkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lv
bi1ibG9ja2VkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitkZWxl
dGVTdWNjZXNzKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQorCitmaXJz
dFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAorY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIK
K1BBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCityZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorCitzZWNvbmRTdWNjZXNzQ2FsbGJhY2so
KToKK0ZBSUwgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1i
bG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJs
b2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzg3ZGVlYjgwNDA0YTU5NzcxMmEzM2FkYzg2YTE4YzYz
ZWU0ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDYwOWVlNGMwNWEx
ZTdkYTFhOGU5MWE5ZTlhODg5MzA4ODBkZmYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVHJ5IHRvIGNhbGwgZGIuY2xvc2UoKSBhZnRlciB1
cGdyYWRlbmVlZGVkIGJ1dCBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgc3VjY2VzcyBldmVudCBm
aXJlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJz
aW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKKworCitvcGVuU3Vj
Y2VzcygpOgorUEFTUyBkaWRDYWxsQ2xvc2VEQiBpcyBmYWxzZQorRkFJTCBzYXdUcmFuc2FjdGlv
bkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQKK0ZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMg
IChvZiB0eXBlIHN0cmluZykuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjllMGUzYzFhNzI4YzczZDVhMjcwMmQxMzE1NTA1NDhlNDZmMTE2ZTgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJl
dHdlZW4tZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2
ZW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21w
bGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NWVkYjI0
YmRkNmUyMTk3MzI1MjRjMTE5NThiZTI0MGM5M2Y4Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NhbGwgZGIuY2xvc2UoKSBpbiB0aGUgY29t
cGxldGUgaGFuZGxlciBmb3IgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiwgYmVmb3JlIHRo
ZSBzdWNjZXNzIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgb3BlbiBjYWxsIGZpcmVzCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5k
ZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24tY2xvc2Ut
aW4tb25jb21wbGV0ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK3Jl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCisKK29wZW5TdWNjZXNzKCk6CitGQUlM
IHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBl
IG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJv
bSB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycsICdyZWFkd3JpdGUnKQorUEFTUyBF
eGNlcHRpb24gd2FzIHRocm93bi4KK0ZBSUwgY29kZSBzaG91bGQgYmUgMTEuIFdhcyA4LgorRkFJ
TCBlbmFtZSBzaG91bGQgYmUgSW52YWxpZFN0YXRlRXJyb3IuIFdhcyBOb3RGb3VuZEVycm9yLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4t
b25jb21wbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU5YzYwNWIwM2Q2ODEwYTM2
NjcwYWNmYTUyNzVjMjBhMjgyOTY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sCkBAIC0w
LDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTVmN2JkODBhZmZiNGU0MWUwNzliZmVhZGJkNDAxYzU1
NWZlNGE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjgg
QEAKK1Rlc3QgdGhhdCBpZiB0d28gb3BlbiByZXF1ZXN0cyBhcmUgd2FpdGluZyBhdCB0aGUgc2Ft
ZSB0aW1lLCB0aGUgb25lIHdpdGggdGhlIGhpZ2hlciB2ZXJzaW9uIGdldHMgY2FsbGVkIGZpcnN0
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24t
aGlnaC12ZXJzaW9uLWZpcnN0Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQorCitkZWxldGVTdWNjZXNzKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAx
KQorCitmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RVcGdyYWRlTmVl
ZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24xID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAorY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5n
ZUhhbmRsZXIKK3JlcXVlc3QyID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQorcmVxdWVzdDMg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpCityZXF1ZXN0NCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgNCkKKworc3VjY2Vzc0NhbGxiYWNrMigpOgorUEFTUyBnb3RCbG9ja2VkRXZlbnQ0IGlz
IGZhbHNlCitGQUlMIFN1Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1m
aXJzdC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1oaWdo
LXZlcnNpb24tZmlyc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzhjZTRiYmRlYzNlZDMyNGJlMzhjNTM2
MGE4MjJmODFhMjJkYjYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVk
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9p
bnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjky
NDMwZDUzMjZhNjllNmVmMmQ1ZjIyMTNhNWMxMThlODZlMTg4M2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzQgQEAKK1Rlc3QgdGhhdCBhIGRhdGFiYXNlIGlzIHJlY3Jl
YXRlZCBjb3JyZWN0bHkgd2hlbiBhbiBvcGVuLXdpdGgtdmVyc2lvbiBjYWxsIGlzIHF1ZXVlZCBi
ZWhpbmQgYm90aCBhIGRlbGV0ZURhdGFiYXNlIGFuZCBzZXRWZXJzaW9uIGNhbGwKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNl
bGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVk
REIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lvbi1sb25nLXF1ZXVl
Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitkZWxldGVTdWNjZXNz
KCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmaXJzdFN1Y2Nlc3NDYWxsYmFjaworCitmaXJzdFN1Y2Nlc3NDYWxsYmFjaygpOgorY29ubmVj
dGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Citjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2Ug
PSBjb25uZWN0aW9uMVZlcnNpb25DaGFuZ2VDYWxsYmFjaworcmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSkKK3JlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrCisK
K3NlY29uZFN1Y2Nlc3NDYWxsYmFjaygpOgorY29ubmVjdGlvbjIgPSBldmVudC50YXJnZXQucmVz
dWx0Citjb25uZWN0aW9uMi5vbnZlcnNpb25jaGFuZ2UgPSBjb25uZWN0aW9uMlZlcnNpb25DaGFu
Z2VDYWxsYmFjaworcmVxdWVzdCA9IGNvbm5lY3Rpb24yLnNldFZlcnNpb24oJ3ZlcnNpb24gMicp
CityZXF1ZXN0Lm9uYmxvY2tlZCA9IHNldFZlcnNpb25CbG9ja2VkQ2FsbGJhY2sKK3JlcXVlc3Qu
b25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nlc3NDYWxsYmFjaworCitjb25uZWN0aW9uMVZlcnNp
b25DaGFuZ2VDYWxsYmFjaygpOgorUEFTUyBldmVudC50eXBlIGlzICJ2ZXJzaW9uY2hhbmdlIgor
UEFTUyBldmVudC52ZXJzaW9uIGlzICJ2ZXJzaW9uIDIiCisKK3NldFZlcnNpb25CbG9ja2VkQ2Fs
bGJhY2soKToKK3JlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorcmVx
dWVzdC5vbmJsb2NrZWQgPSBkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjaworcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaworcmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMSkKK3JlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5l
ZWRlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3ND
YWxsYmFjaworY29ubmVjdGlvbjEuY2xvc2UoKQorCitzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNr
KCk6Cit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2RiID0gdHJhbnNhY3Rpb24u
ZGIKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdzb21lIG9iamVjdCBzdG9yZScpCit0cmFuc2FjdGlv
bi5vbmNvbXBsZXRlID0gc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjaworCitj
b25uZWN0aW9uMlZlcnNpb25DaGFuZ2VDYWxsYmFjaygpOgorUEFTUyBldmVudC50eXBlIGlzICJ2
ZXJzaW9uY2hhbmdlIgorRklYTUU6IEZpcmUgYSB2ZXJzaW9uY2hhbmdlIGV2ZW50IHRoYXQgaGFz
IG9sZFZlcnNpb24gYW5kIG5ld1ZlcnNpb24KK0ZBSUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQg
YmUgdmVyc2lvbiAyIChvZiB0eXBlIHN0cmluZykuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5k
ZWZpbmVkKS4KK0ZBSUwgZXZlbnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBv
YmplY3QpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50LnZl
cnNpb24gc2hvdWxkIGJlIHVuZGVmaW5lZC4gV2FzIAorCitkZWxldGVEYXRhYmFzZUJsb2NrZWRD
YWxsYmFjaygpOgorY29ubmVjdGlvbjIuY2xvc2UoKQorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNo
b3VsZCBiZSB2ZXJzaW9uIDIgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlw
ZSB1bmRlZmluZWQpLgorRkFJTCBldmVudC5uZXdWZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0
eXBlIG9iamVjdCkuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZl
bnQudmVyc2lvbiBzaG91bGQgYmUgdW5kZWZpbmVkLiBXYXMgCisKK3NldFZlcnNpb25UcmFuc2Fj
dGlvbkNvbXBsZXRlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24gaXMg
InZlcnNpb24gMiIKKworZGVsZXRlRGF0YWJhc2VTdWNjZXNzQ2FsbGJhY2soKToKK0ZBSUwgZXZl
bnQub2xkVmVyc2lvbiBzaG91bGQgYmUgbm9uLW51bGwuIFdhcyB1bmRlZmluZWQKK0ZBSUwgZXZl
bnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3QpLiBXYXMgdW5kZWZp
bmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQgaXMgbnVs
bAorCitvcGVuV2l0aFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToKK0ZBSUwgZ290VXBncmFkZU5l
ZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGV2ZW50LnRhcmdldC5y
ZXN1bHQub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzhlZTc1MDZjODNiYjU0MmRmODhlMjJhYTVmMGQyOWRjZDhmNjFiZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5o
dG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmZjZjBiN2ZlNTdmNDc3MDQ3OGFhNWViNzRiMzlhYTMxNTM4MDAwMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3QgdGhh
dCBpbml0aWFsIHZlcnNpb24gYWZ0ZXIgYSBzdWNjZXNzZnVsIG9wZW4gb2YgYSBub24tZXhpc3Rl
bnQgZGIgaXMgMQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJp
bnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorCitvcGVuU3VjY2VzcygpOgorZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0CitUZXN0IGxpbmUgZnJvbSBJREJGYWN0b3J5Lm9wZW46IElmIG5v
IHZlcnNpb24gaXMgc3BlY2lmaWVkIGFuZCBubyBkYXRhYmFzZSBleGlzdHMsIHNldCBkYXRhYmFz
ZSB2ZXJzaW9uIHRvIDEuCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDEgKG9mIHR5cGUgbnVt
YmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YmI1NGEyMGRiYTRlNWFlYTZkNzI5MzgyNzBkMTUzYzg3NjAyZGVjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFt
ZXRlci5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZl
cnNpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzNzBjYWQwMDQ3MTZjM2Q0OWM5Yjg1YjE1
Zjg2YTlkOTljZWFkZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMwIEBACitUZXN0IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hlbiBvcGVuaW5nIGEg
bm9uLWV4aXN0ZW50IGRiIGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGFuZCB0aGF0IHRo
ZSB2ZXJzaW9uIG51bWJlciBpcyBzZXQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwi
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorU2hvdWxkIHRyaWdnZXI6Cis0LjEu
NDogSWYgbm8gZGF0YWJhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBvcmlnaW4gb3Jp
Z2luIHdhcyBmb3VuZCwgb3IgaWYgaXQgd2FzIGRlbGV0ZWQgZHVyaW5nIHRoZSBwcmV2aW91cyBz
dGVwLCB0aGVuIGNyZWF0ZSBhIGRhdGFiYXNlIHdpdGggbmFtZSBuYW1lLCB3aXRoIDAgYXMgdmVy
c2lvbiwgYW5kIHdpdGggbm8gb2JqZWN0IHN0b3Jlcy4gTGV0IGRiIGJlIHRoZSBuZXcgZGF0YWJh
c2UuCis0LjEuNjogQ3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gdG8gZGIgYW5kIGxldCBjb25uZWN0
aW9uIHJlcHJlc2VudCBpdC4KKzQuMS43OiBJZiB0aGUgdmVyc2lvbiBvZiBkYiBpcyBsb3dlciB0
aGFuIHZlcnNpb24sIHRoZW4gcnVuIHRoZSBzdGVwcyBmb3IgcnVubmluZyBhICJ2ZXJzaW9uY2hh
bmdlIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9uLCByZXF1ZXN0IGFuZCB1
cGdyYWRlIGNhbGxiYWNrLgorNC4xLjk6IFJldHVybiBjb25uZWN0aW9uLgorcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKK0ZBSUwgU3RyaW5nKHJlcXVlc3QpIHNob3VsZCBiZSBb
b2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdLiBXYXMgW29iamVjdCBJREJSZXF1ZXN0XS4KKworCitv
cGVuU3VjY2VzcygpOgorVGVzdCA0LjEuNywgdGhhdCBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rp
b24gd2FzIHJ1bi4KK0ZBSUwgc2F3VXBncmFkZU5lZWRlZCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK0tpbmQgb2YgdGVzdCA0LjEuOToKK1BBU1Mg
U3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitGQUlMIGRiLnZlcnNpb24gc2hv
dWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNp
b24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13
aXRoLXZlcnNpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGM3M2Q0NGY4MmIyMTdhY2U3YzEyMTc2MDhi
MGFhZjE3NGFjMjlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZl
cnNpb24tb3Blbi13aXRoLXZlcnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0
aWFsLXVwZ3JhZGVuZWVkZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ1Nzg3NjgxOGE4NTA2MTVjZjk0OGQ4
ZDBiMmI2ZmQ5MmRiNzY1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5l
ZWRlZC5qcwpAQCAtMCwwICsxLDQ5IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAg
aW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMn
KTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRl
c3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lv
biBiYWNrIHRvIDAiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKCkgeworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIGV2YWxBbmRM
b2coInJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZCIpOworICAgIGRlYnVn
KCJGSVhNRTogVGhpcyBzaG91bGQgZ2V0IGFuIGVycm9yIGV2ZW50IG9mIHR5cGUgQWJvcnRFcnJv
ciIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxi
YWNrOworfQorCitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIp
OworICAgIHRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgIHRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKKyAgICB0cmFu
c2FjdGlvbi5vbmFib3J0ID0gb25BYm9ydDsKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5h
Ym9ydCgpIik7Cit9CisKK2Z1bmN0aW9uIG9uQWJvcnQoZXZ0KQoreworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1Zygib25BYm9ydCgpOiIpOworICAgIGV2ZW50ID0gZXZ0OworICAgIHNob3VsZEJl
KCJldmVudC50YXJnZXQuZGIudmVyc2lvbiIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzA5Y2E4ODEwMGVkMDFiODFjYTllYjI3YzY1YjFlM2U5NDJmMjdmNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWFuZC1zZXR2ZXJzaW9uLmpzCkBAIC0wLDAgKzEsMTkwIEBACitpZiAodGhpcy5pbXBvcnRT
Y3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKwor
ZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBpbnQgdmVyc2lvbiB1cGdyYWRlcyBhIHN0cmluZyB2ZXJz
aW9uIGFuZCB0aGF0IHN0cmluZyB2ZXJzaW9ucyBhcmUgdGhlbiBkaXNhbGxvd2VkIik7CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJO
YW1lRnJvbVBhdGgoKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5n
KHJlcXVlc3QpIiwgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJDYWxsIG9wZW4gd2l0aCBubyB2ZXJzaW9uIHBhcmFtZXRl
cjoiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIp
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSB1bmV4cGVjdGVkVXBncmFkZU5lZWRlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
b3BlblN1Y2Nlc3MoKToiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICIiKTsK
KyAgICBldmFsQW5kTG9nKCdyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic29tZSB2ZXJzaW9uIikn
KTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGluU2V0VmVyc2lvbjsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGluU2V0VmVyc2lvbihl
dnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJpblNl
dFZlcnNpb24oKToiKTsKKyAgICB0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgdHJh
bnMub25jb21wbGV0ZSA9IHNldFZlcnNpb25Eb25lOworICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4
cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBkYiA9IHRyYW5zLmRiOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJzb21lIHZlcnNpb24iKTsKKyAgICAvLyBGSVhNRTog
QWRkIGEgdGVzdCB0aGF0IGNhbGxzIG9wZW4gd2l0aCB2ZXJzaW9uIGZyb20gaGVyZS4KK30KKwor
ZnVuY3Rpb24gc2V0VmVyc2lvbkRvbmUoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1Zygic2V0VmVyc2lvbkRvbmUoKToiKTsKKyAgICBkYiA9IGV2ZW50
LnRhcmdldC5kYjsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29t
ZSB2ZXJzaW9uIik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRPcGVuIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1
bmV4cGVjdGVkVXBncmFkZU5lZWRlZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBzZWNvbmRPcGVu
KGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNl
Y29uZE9wZW4oKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJE
YXRhYmFzZV0iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29t
ZSB2ZXJzaW9uIik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIC8vIEZJWE1F
OiBBZGQgdGVzdHMgdGhhdCBjYWxsIGl0IHdpdGggMCwgLTEsIGFuZCAtNC4KKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qu
b251cGdyYWRlbmVlZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkCisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4
cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RPcGVu
V2l0aFZlcnNpb247Cit9CisKK2Z1bmN0aW9uIGZpcnN0VXBncmFkZU5lZWRlZChldnQpCit7Cisg
ICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmaXJzdFVwZ3JhZGVO
ZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJEYXRh
YmFzZV0iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0LnRyYW5z
YWN0aW9uKSIsICJbb2JqZWN0IElEQlRyYW5zYWN0aW9uXSIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZXZlbnQub2xkVmVyc2lvbiIsICJzb21lIHZlcnNpb24iKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQubmV3VmVyc2lvbiIsICIyIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC50cmFu
c2FjdGlvbi5vbmNvbXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQiKTsKKyAgICByZXF1ZXN0
LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKK30KKwordmFy
IGRpZFRyYW5zYWN0aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHRyYW5zYWN0aW9uQ29t
cGxldGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVi
dWcoInRyYW5zYWN0aW9uQ29tcGxldGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGlkVHJhbnNh
Y3Rpb25Db21wbGV0ZSA9IHRydWUiKTsKK30KKworZnVuY3Rpb24gZmlyc3RPcGVuV2l0aFZlcnNp
b24oZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
Zmlyc3RPcGVuV2l0aFZlcnNpb24oKToiKTsKKyAgICBzaG91bGRCZVRydWUoImRpZFRyYW5zYWN0
aW9uQ29tcGxldGUiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJE
YXRhYmFzZV0iKTsKKyAgICBzaG91bGRCZU51bGwoInJlcXVlc3QudHJhbnNhY3Rpb24iKTsKKyAg
ICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJTdHJpbmcocmVxdWVzdCkiLCAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIpOworICAgIGV2
YWxBbmRMb2coJ3JlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCJzdHJpbmcgdmVyc2lvbiAyIiknKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0KSIsICJbb2JqZWN0IElE
QlZlcnNpb25DaGFuZ2VSZXF1ZXN0XSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBl
Y3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRT
dWNjZXNzQ2FsbGJhY2s7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbmVycm9yID0gc2V0VmVy
c2lvbk5vdEFsbG93ZWQiKTsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvbk5vdEFsbG93ZWQoZXZ0
KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic2V0VmVy
c2lvbk5vdEFsbG93ZWQoKToiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5
cGUiLCAiZXJyb3IiKTsKKyAgICBkZWJ1ZygicmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UgPSAi
ICsgcmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3Nl
KCkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAx
KSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25lcnJvciA9IGVycm9yV2hlblRyeWluZ0xv
d1ZlcnNpb24iKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNr
OworfQorCitmdW5jdGlvbiBlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImVycm9yV2hlblRyeWluZ0xv
d1ZlcnNpb24oKToiKTsKKyAgICBkZWJ1ZygicmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UgPSAi
ICsgcmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDQpIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1
bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub251cGdyYWRlbmVlZGVk
ID0gc2Vjb25kVXBncmFkZU5lZWRlZCIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNj
ZXNzID0gdGhpcmRPcGVuU3VjY2VzcyIpOworfQorCit2YXIgZ290U2Vjb25kVXBncmFkZU5lZWRl
ZCA9IGZhbHNlOworZnVuY3Rpb24gc2Vjb25kVXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZl
bnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzZWNvbmRVcGdyYWRlTmVlZGVk
KCk6Iik7CisgICAgZXZhbEFuZExvZygiZ290U2Vjb25kVXBncmFkZU5lZWRlZCA9IHRydWUiKTsK
KyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm5ld1ZlcnNpb24iLCAiNCIpOworfQorCitmdW5jdGlvbiB0aGlyZE9wZW5TdWNjZXNzKGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInRoaXJk
T3BlblN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZVRydWUoImdvdFNlY29uZFVwZ3JhZGVOZWVk
ZWQiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBz
aG91bGRCZSgiZGIudmVyc2lvbiIsICI0Iik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIp
OworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7Cisg
ICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBmb3VydGhPcGVuU3VjY2VzcyIpOwor
ICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxs
YmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkVXBncmFkZU5lZWRlZENhbGxi
YWNrOworfQorCitmdW5jdGlvbiBmb3VydGhPcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQg
PSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmb3VydGhPcGVuU3VjY2VzcygpOiIp
OworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3Vs
ZEJlKCJkYi52ZXJzaW9uIiwgIjQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lu
dHZlcnNpb24tYmxvY2tlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QxOGRjYTc3NTFkY2M5NzA0
MDU4MzEzN2Q4MjczOTM3ZTliNTk0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMKQEAgLTAsMCAr
MSw5MCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2Ny
aXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYmxvY2tlZCBl
dmVudHMgZ2V0IGRlbGl2ZXJlZCBwcm9wZXJseSB3aXRoIHRoZSBuZXcgb3BlbiBhcGkiKTsKKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXRE
Qk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3Vj
Y2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30K
KworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBwcmVhbWJsZSgpOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXI7CisgICAgcmVxdWVzdC5v
bmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2
ZW50ID0gZmFsc2U7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmaXJzdFVwZ3JhZGVO
ZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2so
ZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZ290Rmlyc3RVcGdy
YWRlTmVlZGVkRXZlbnQgPSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24i
LCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhldmVudCkiLCAiW29iamVjdCBJREJVcGdyYWRlTmVl
ZGVkRXZlbnRdIik7Cit9CisKK2dvdEJsb2NrZWRFdmVudCA9IGZhbHNlOworZnVuY3Rpb24gZmly
c3RTdWNjZXNzRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNo
b3VsZEJlVHJ1ZSgiZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQiKTsKKyAgICBldmFsQW5kTG9n
KCJjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFsQW5kTG9nKCJj
b25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdlSGFuZGxlciIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGNvbm5lY3Rpb24xKSIsICJbb2JqZWN0IElE
QkRhdGFiYXNlXSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUsIDMpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJh
Y2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAg
cmVxdWVzdC5vbmJsb2NrZWQgPSBibG9ja2VkRXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gc2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjsKK30KKwordmFy
IHNhd1ZlcnNpb25DaGFuZ2VFdmVudCA9IGZhbHNlOworZnVuY3Rpb24gdmVyc2lvbkNoYW5nZUhh
bmRsZXIoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygic2F3VmVy
c2lvbkNoYW5nZUV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZl
bnQudHlwZSIsICJ2ZXJzaW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJT
dHJpbmcoZXZlbnQpIiwgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZUV2ZW50XSIpOworICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQiLCAiY29ubmVjdGlvbjEiKTsKKyAgICBzaG91bGRCZSgiZXZl
bnQub2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAi
MyIpOworfQorCitmdW5jdGlvbiBibG9ja2VkRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVh
bWJsZShldnQpOworICAgIHNob3VsZEJlVHJ1ZSgic2F3VmVyc2lvbkNoYW5nZUV2ZW50Iik7Cisg
ICAgZXZhbEFuZExvZygiZ290QmxvY2tlZEV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiU3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVu
dF0iKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxk
QmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZXZlbnQudHlwZSIsICJibG9ja2VkIik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEuY2xv
c2UoKSIpOworfQorCitnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKK2Z1bmN0
aW9uIHNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIoZXZ0KQoreworICAgIHByZWFtYmxl
KGV2dCk7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RCbG9ja2VkRXZlbnQiKTsKKyAgICBldmFsQW5k
TG9nKCJnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlIik7Cit9CisKK2Z1bmN0aW9u
IHNlY29uZFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBz
aG91bGRCZVRydWUoImdvdFNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWJl
dHdlZW4tZXZlbnRzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0M2QyMGFhMmNmMGFkOWVlNTlhMDMwYzM3Yjk3
YWUzNTVmZGM5MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcwpAQCAtMCww
ICsxLDczIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygn
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRT
Y3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRyeSB0byBjYWxsIGRiLmNs
b3NlKCkgYWZ0ZXIgdXBncmFkZW5lZWRlZCBidXQgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIHN1
Y2Nlc3MgZXZlbnQgZmlyZXMiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVu
ZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkg
eworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQ7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4
cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIGRlYnVnKCIiKTsKK30KKwordmFyIHNhd1RyYW5z
YWN0aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVkZWQoZXZ0KQorewor
ICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidXBncmFkZU5lZWRl
ZCgpOiIpOworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAg
IHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjciKTsKKyAgICBldmFsQW5kTG9nKCJkYi5j
cmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0c3RvcmUnKSIpOworCisgICAgZXZhbEFuZExvZygidHJh
bnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKKyAgICB0cmFuc2FjdGlvbi5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25jb21w
bGV0ZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJ0
cmFuc2FjdGlvbi5vbmNvbXBsZXRlOiIpOworICAgICAgICBldmFsQW5kTG9nKCJzYXdUcmFuc2Fj
dGlvbkNvbXBsZXRlID0gdHJ1ZSIpOworICAgICAgICBldmFsQW5kTG9nKCJzZXRUaW1lb3V0KGNs
b3NlREIsIDApIik7CisgICAgfQorfQorCit2YXIgZGlkQ2FsbENsb3NlREIgPSBmYWxzZTsKK2Z1
bmN0aW9uIGNsb3NlREIoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiY2xvc2VEQigp
OiIpOworICAgIGV2YWxBbmRMb2coImRpZENhbGxDbG9zZURCID0gdHJ1ZSIpOworICAgIGV2YWxB
bmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24g
b3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkaWRDYWxsQ2xv
c2VEQiIpOworICAgIHNob3VsZEJlVHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSIpOworICAg
IGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxk
QmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGlmIChkYi52ZXJzaW9uICE9PSA3KSB7CisgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNob3VsZEJl
KCJkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIsICIxIik7CisgICAgZXZhbEFuZExvZygiZGIu
dHJhbnNhY3Rpb24oZGIub2JqZWN0U3RvcmVOYW1lcykiKTsKK30KKwordGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
Y2xvc2UtaW4tb25jb21wbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg0
NGE1N2Q0YTNiOTE4YzExOGMxYWM1YWNkMDA5NjgxYTFkY2Y5NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3Nl
LWluLW9uY29tcGxldGUuanMKQEAgLTAsMCArMSw1OCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2Ny
aXB0aW9uKCJDYWxsIGRiLmNsb3NlKCkgaW4gdGhlIGNvbXBsZXRlIGhhbmRsZXIgZm9yIGEgdmVy
c2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24sIGJlZm9yZSB0aGUgc3VjY2VzcyBldmVudCBhc3NvY2lh
dGVkIHdpdGggdGhlIG9wZW4gY2FsbCBmaXJlcyIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisKKyAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSki
KTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1
Y2Nlc3MoZXZ0KSB7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgNykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZDsKKyAgICByZXF1ZXN0Lm9uYmxv
Y2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK3ZhciBzYXdUcmFuc2FjdGlv
bkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToi
KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91
bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI3Iik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ29zJykiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlv
bihlKQorICAgIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygidHJhbnNhY3Rp
b24ub25jb21wbGV0ZToiKTsKKyAgICAgICAgZXZhbEFuZExvZygic2F3VHJhbnNhY3Rpb25Db21w
bGV0ZSA9IHRydWUiKTsKKyAgICAgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIH0K
K30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAg
IGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZVRy
dWUoInNhd1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICI3Iik7CisgICAg
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3Mn
LCAncmVhZHdyaXRlJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZh
bGlkU3RhdGVFcnJvciciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24taGlnaC12ZXJzaW9uLWZpcnN0LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNm
OTE3OTEwN2JlNmMzZDJiNzFlZTE2YWM5MTBhOWU5ZGQ0ODAwMzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1oaWdo
LXZlcnNpb24tZmlyc3QuanMKQEAgLTAsMCArMSwxNTEgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlw
dHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNj
cmlwdGlvbigiVGVzdCB0aGF0IGlmIHR3byBvcGVuIHJlcXVlc3RzIGFyZSB3YWl0aW5nIGF0IHRo
ZSBzYW1lIHRpbWUsIHRoZSBvbmUgd2l0aCB0aGUgaGlnaGVyIHZlcnNpb24gZ2V0cyBjYWxsZWQg
Zmlyc3QiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBkZWJ1Zygi
Iik7CisgICAgZGVidWcoImRlbGV0ZVN1Y2Nlc3MoKToiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKKyAgICBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IGZhbHNlOwor
ICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICBldmVu
dCA9IGV2dDsKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGRlYnVnKCJyZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCgpOiIpOworICAgICAgZXZhbEFuZExvZygiZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZl
bnQgPSB0cnVlIik7CisgICAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cisg
ICAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICIxIik7CisgICAgfQorfQorCitmdW5j
dGlvbiBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0Owor
ICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKCk6IikK
KyAgICBzaG91bGRCZVRydWUoImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAgZXZh
bEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFu
ZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIi
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0MiA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMiki
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0MyA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMyki
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0NCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNCki
KTsKKyAgICByZXF1ZXN0Mi5vbnN1Y2Nlc3MgPSBzdWNjZXNzQ2FsbGJhY2syOworICAgIHJlcXVl
c3QyLm9uYmxvY2tlZCA9IGJsb2NrZWRFdmVudEhhbmRsZXIyOworICAgIHJlcXVlc3QyLm9udXBn
cmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIyOworICAgIHJlcXVlc3QyLm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKworICAgIHJlcXVlc3QzLm9uc3VjY2Vz
cyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdDMub25ibG9ja2VkID0g
YmxvY2tlZEV2ZW50SGFuZGxlcjM7CisgICAgcmVxdWVzdDMub251cGdyYWRlbmVlZGVkID0gdW5l
eHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0My5vbmVycm9yID0gZXJy
b3JIYW5kbGVyMzsKKworICAgIHJlcXVlc3Q0Lm9uc3VjY2VzcyA9IHN1Y2Nlc3NDYWxsYmFjazQ7
CisgICAgcmVxdWVzdDQub25ibG9ja2VkID0gYmxvY2tlZEV2ZW50SGFuZGxlcjQ7CisgICAgcmVx
dWVzdDQub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjQ7CisgICAg
cmVxdWVzdDQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCit2YXIgdmVy
c2lvbkNoYW5nZUV2ZW50c1NlZW4gPSAwOworZnVuY3Rpb24gdmVyc2lvbkNoYW5nZUhhbmRsZXIo
ZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidmVy
c2lvbkNoYW5nZUhhbmRsZXIoKToiKTsKKyAgICBkZWJ1ZygiKyt2ZXJzaW9uQ2hhbmdlRXZlbnRz
U2VlbiA9ICIgKyAoKyt2ZXJzaW9uQ2hhbmdlRXZlbnRzU2VlbikpOworICAgIGRlYnVnKCJldmVu
dC5vbGRWZXJzaW9uID0gIiArIGV2ZW50Lm9sZFZlcnNpb24pOworICAgIGRlYnVnKCJldmVudC5u
ZXdWZXJzaW9uID0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworfQorCit2YXIgZ290QmxvY2tlZEV2
ZW50MiA9IGZhbHNlOworZnVuY3Rpb24gYmxvY2tlZEV2ZW50SGFuZGxlcjIoZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiYmxvY2tlZEV2ZW50SGFu
ZGxlcjIoKToiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIxIik7CisgICAg
c2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlRmFsc2UoImdv
dEJsb2NrZWRFdmVudDQiKTsKKyAgICBldmFsQW5kTG9nKCJnb3RCbG9ja2VkRXZlbnQyID0gdHJ1
ZSIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsKKyAgICBpZiAoZ290
QmxvY2tlZEV2ZW50NCkKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHVw
Z3JhZGVOZWVkZWRFdmVudEhhbmRsZXIyKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIyKCk6Iik7Cisg
ICAgc2hvdWxkQmVGYWxzZSgiZ290QmxvY2tlZEV2ZW50NCIpOworICAgIGlmIChnb3RCbG9ja2Vk
RXZlbnQ0KQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0Nh
bGxiYWNrMihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRl
YnVnKCJzdWNjZXNzQ2FsbGJhY2syKCk6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiZ290QmxvY2tl
ZEV2ZW50NCIpOworICAgIGlmIChnb3RCbG9ja2VkRXZlbnQ0KQorICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKwordmFyIGdvdEJsb2NrZWRFdmVudDQgPSBmYWxzZTsKK2Z1bmN0aW9uIGJsb2Nr
ZWRFdmVudEhhbmRsZXI0KGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXI0KCk6Iik7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwg
IjQiKTsKKyAgICBzaG91bGRCZVRydWUoImdvdEJsb2NrZWRFdmVudDIiKTsKKyAgICBldmFsQW5k
TG9nKCJnb3RCbG9ja2VkRXZlbnQ0ID0gdHJ1ZSIpOworfQorCitmdW5jdGlvbiB1cGdyYWRlTmVl
ZGVkRXZlbnRIYW5kbGVyNChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyNCgpOiIpOworfQorCitmdW5j
dGlvbiBzdWNjZXNzQ2FsbGJhY2s0KGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1
ZygiIik7CisgICAgZGVidWcoInN1Y2Nlc3NDYWxsYmFjazQoKToiKTsKK30KKworZnVuY3Rpb24g
ZXJyb3JIYW5kbGVyMyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJlcnJvckhhbmRsZXIzKCk6Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisK
K2Z1bmN0aW9uIGJsb2NrZWRFdmVudEhhbmRsZXIzKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXIzKCk6Iik7CisgICAgZGVidWcoIkZGIGFsc28g
ZmFpbHMgdGhpcyB0ZXN0LiIpOworICAgIHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2soZXZ0KTsK
K30KKworCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZjEzYWQ5OTIxMDQ5Y2M4OWQ4Zjk0YzhlYzFmMjVhN2NmOTMyZDA1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
bG9uZy1xdWV1ZS5qcwpAQCAtMCwwICsxLDEzMiBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
eworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0
aW9uKCJUZXN0IHRoYXQgYSBkYXRhYmFzZSBpcyByZWNyZWF0ZWQgY29ycmVjdGx5IHdoZW4gYW4g
b3Blbi13aXRoLXZlcnNpb24gY2FsbCBpcyBxdWV1ZWQgYmVoaW5kIGJvdGggYSBkZWxldGVEYXRh
YmFzZSBhbmQgc2V0VmVyc2lvbiBjYWxsIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJl
bW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3Mo
ZXZ0KSB7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNz
ID0gZmlyc3RTdWNjZXNzQ2FsbGJhY2siKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGZpcnN0U3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sK
KyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLm9udmVyc2lvbmNo
YW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrIik7CisgICAgZXZhbEFuZExv
ZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IHNlY29uZFN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2Vk
ID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2Vjb25kU3VjY2Vz
c0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImNv
bm5lY3Rpb24yID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5l
Y3Rpb24yLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24yVmVyc2lvbkNoYW5nZUNhbGxiYWNr
Iik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGNvbm5lY3Rpb24yLnNldFZlcnNpb24oJ3Zl
cnNpb24gMicpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbmJsb2NrZWQgPSBzZXRWZXJz
aW9uQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGNvbm5lY3Rpb24xVmVyc2lvbkNo
YW5nZUNhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJ2ZXJzaW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJldmVudC52ZXJzaW9uIiwgInZlcnNpb24gMiIpOworfQorCitmdW5jdGlv
biBzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNpb25CbG9ja2VkQ2FsbGJhY2soKToiKTsK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uYmxvY2tlZCA9IGRlbGV0ZURhdGFiYXNl
QmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBk
ZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworCisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2coInJlcXVl
c3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVx
dWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIGV2YWxBbmRMb2coImNvbm5l
Y3Rpb24xLmNsb3NlKCkiKTsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3NDYWxsYmFj
ayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlv
biA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IHRyYW5zYWN0
aW9uLmRiIik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWUgb2Jq
ZWN0IHN0b3JlJykiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
c2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayIpOworICAgIHRyYW5zYWN0aW9u
Lm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2V0VmVy
c2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5kYi52ZXJzaW9uIiwg
InZlcnNpb24gMiIpOworfQorCitmdW5jdGlvbiBjb25uZWN0aW9uMlZlcnNpb25DaGFuZ2VDYWxs
YmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5nZSIpOworICAgIGRlYnVnKCJGSVhNRTogRmly
ZSBhIHZlcnNpb25jaGFuZ2UgZXZlbnQgdGhhdCBoYXMgb2xkVmVyc2lvbiBhbmQgbmV3VmVyc2lv
biIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQub2xkVmVyc2lvbiIsICJ2ZXJz
aW9uIDIiKTsKKyAgICBzaG91bGRCZU51bGwoImV2ZW50Lm5ld1ZlcnNpb24iKTsKKyAgICBzaG91
bGRCZVVuZGVmaW5lZCgiZXZlbnQudmVyc2lvbiIpOworfQorCitmdW5jdGlvbiBkZWxldGVEYXRh
YmFzZUJsb2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFs
QW5kTG9nKCJjb25uZWN0aW9uMi5jbG9zZSgpIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJldmVudC5vbGRWZXJzaW9uIiwgInZlcnNpb24gMiIpOworICAgIHNob3VsZEJlTnVsbCgiZXZl
bnQubmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJldmVudC52ZXJzaW9uIik7
Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAg
ICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlTm9uTnVsbCgiZXZlbnQub2xkVmVyc2lvbiIp
OworICAgIHNob3VsZEJlTnVsbCgiZXZlbnQubmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlTnVs
bCgiZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworfQorCit2YXIgZ290VXBncmFkZU5lZWRlZEV2ZW50
ID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkQ2FsbGJhY2soZXZ0KQoreworICAgIHBy
ZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZ290VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1
ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjEiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cit9CisKK2Z1bmN0aW9uIG9wZW5XaXRoVmVyc2lv
blN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRC
ZVRydWUoImdvdFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAiKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yY2ZlY2Q2MGI5YTRhYWIxNzM2Y2FmNTk0ZmNhOGY5ZDgxMGY1MWUwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMKQEAgLTAsMCArMSwzOSBAQAoraWYgKHRoaXMu
aW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7
Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgaW5pdGlhbCB2ZXJzaW9uIGFmdGVyIGEgc3Vj
Y2Vzc2Z1bCBvcGVuIG9mIGEgbm9uLWV4aXN0ZW50IGRiIGlzIDEiKTsKKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0
aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIub3BlbihkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsK
KyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1
ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKKyAgICAgIHRlc3RQYXNzZWQoIkdvdCB1cGdy
YWRlbmVlZGVkIGV2ZW50Iik7CisgICAgfQorfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQp
Cit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3Vj
Y2VzcygpOiIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7CisgICAgZGVidWcoIlRlc3QgbGluZSBmcm9tIElEQkZhY3Rvcnkub3BlbjogSWYgbm8gdmVy
c2lvbiBpcyBzcGVjaWZpZWQgYW5kIG5vIGRhdGFiYXNlIGV4aXN0cywgc2V0IGRhdGFiYXNlIHZl
cnNpb24gdG8gMS4iKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICcxJyk7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13
aXRoLXZlcnNpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhiMzNkNTY4ZDJjYjIzYTI2ZTQyZGI3NTA5MmRm
OWM4OTNmMGFjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmpzCkBAIC0wLDAgKzEs
NzYgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlw
dHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHNwZWNpZnlpbmcg
YSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBjYXVzZXMgYW4gdXBncmFk
ZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgc2V0IGNvcnJlY3Rs
eS4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
KyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgZGVidWcoIlNob3VsZCB0
cmlnZ2VyOiIpOworICAgIGRlYnVnKCI0LjEuNDogSWYgbm8gZGF0YWJhc2Ugd2l0aCB0aGUgZ2l2
ZW4gbmFtZSBmcm9tIHRoZSBvcmlnaW4gb3JpZ2luIHdhcyBmb3VuZCwgb3IgaWYgaXQgd2FzIGRl
bGV0ZWQgZHVyaW5nIHRoZSBwcmV2aW91cyBzdGVwLCB0aGVuIGNyZWF0ZSBhIGRhdGFiYXNlIHdp
dGggbmFtZSBuYW1lLCB3aXRoIDAgYXMgdmVyc2lvbiwgYW5kIHdpdGggbm8gb2JqZWN0IHN0b3Jl
cy4gTGV0IGRiIGJlIHRoZSBuZXcgZGF0YWJhc2UuIik7CisgICAgZGVidWcoIjQuMS42OiBDcmVh
dGUgYSBuZXcgY29ubmVjdGlvbiB0byBkYiBhbmQgbGV0IGNvbm5lY3Rpb24gcmVwcmVzZW50IGl0
LiIpOworICAgIGRlYnVnKCI0LjEuNzogSWYgdGhlIHZlcnNpb24gb2YgZGIgaXMgbG93ZXIgdGhh
biB2ZXJzaW9uLCB0aGVuIHJ1biB0aGUgc3RlcHMgZm9yIHJ1bm5pbmcgYSBcInZlcnNpb25jaGFu
Z2VcIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9uLCByZXF1ZXN0IGFuZCB1
cGdyYWRlIGNhbGxiYWNrLiIpOworICAgIGRlYnVnKCI0LjEuOTogUmV0dXJuIGNvbm5lY3Rpb24u
Iik7CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3
KSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QpIiwgIltvYmpl
Y3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNj
ZXNzOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZDsKKyAgICBy
ZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgZGVidWco
IiIpOworfQorCit2YXIgc2F3VXBncmFkZU5lZWRlZCA9IGZhbHNlOwordmFyIHNhd1RyYW5zYWN0
aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIHRlc3RQYXNzZWQoIkluIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50
IGhhbmRlcjoiKTsKKyAgICBkZWJ1ZygiVGVzdCA0LjguOS4xOiIpOworICAgIGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
U3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOworICAgIGRlYnVnKCJUZXN0IDQu
OC45LjM6Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOworICAgIHNo
b3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjciKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIiwgImRvbmUiKTsKKyAgICBkZWJ1ZygiVGVzdCA0
LjEuNDoiKTsKKyAgICBzaG91bGRCZSgiZGIubmFtZSIsICJkYm5hbWUiKTsKKyAgICBzaG91bGRC
ZSgiZGIudmVyc2lvbiIsICI3Iik7CisgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMu
bGVuZ3RoIiwgIjAiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcodHJh
bnNhY3Rpb24pIiwgIltvYmplY3QgSURCVHJhbnNhY3Rpb25dIik7CisgICAgZXZhbEFuZExvZygn
b3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29tZU9TIiknKTsKKyAgICB0cmFuc2FjdGlvbi5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25jb21w
bGV0ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGV2YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29t
cGxldGUgPSB0cnVlIik7CisgICAgfQorICAgIHNhd1VwZ3JhZGVOZWVkZWQgPSB0cnVlOworfQor
CitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVi
dWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIGRlYnVnKCJUZXN0IDQu
MS43LCB0aGF0IGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB3YXMgcnVuLiIpOworICAgIHNo
b3VsZEJlKCJzYXdVcGdyYWRlTmVlZGVkIiwgInRydWUiKTsKKyAgICBzaG91bGRCZVRydWUoInNh
d1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworICAgIGRlYnVnKCJLaW5kIG9mIHRlc3QgNC4xLjk6Iik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2Vd
Iik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL3NoYXJlZC5qcwppbmRleCBhMDZmNWFmNDAwY2Y4OTMwYTY2MDdkZTc5Y2VlZmMxYTAw
MTc4Yzg3Li5hN2U3NjRiMDc3NGFiZGU5YWQxMTA4YWFhMTcyMGI1NjhlNWZiOWRmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKQEAg
LTEyMyw2ICsxMjMsMTggQEAgZnVuY3Rpb24gZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKQogICAg
IGRlYnVnKCJEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLiIpOwogfQogCitmdW5jdGlvbiBzZXRE
Qk5hbWVGcm9tUGF0aCgpIHsKKyAgICBldmFsQW5kTG9nKCdkYm5hbWUgPSAiJyArIHNlbGYubG9j
YXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJ
bmRleE9mKCIvIikpICsgJyInKTsKK30KKworZnVuY3Rpb24gcHJlYW1ibGUoZXZ0KQoreworICAg
IGlmIChldnQpCisgICAgICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZyhwcmVhbWJsZS5jYWxsZXIubmFtZSArICIoKToiKTsKK30KKwogLy8gRm9yIFdvcmtlcnMKIGlm
ICghc2VsZi5ET01FeGNlcHRpb24pIHsKICAgICBzZWxmLkRPTUV4Y2VwdGlvbiA9IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155622</attachid>
            <date>2012-07-31 13:26:10 -0700</date>
            <delta_ts>2012-07-31 13:31:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92560-20120731132553.patch</filename>
            <type>text/plain</type>
            <size>79405</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUzOGRjNTlmNTEwZmY5MTBjZDM4
ZmVjZmFmOTI2NTY3NzRiZTg3My4uMWFlYWNmN2Q2MTM4NGIxZDk5MTZjZTliZWEzNjc3ZTczYmJl
ZmM5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NiBAQAorMjAxMi0wNy0zMSAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBpbnRlZ2VyIHZlcnNp
b24gbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MjU2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1vc3Qgb2YgdGhlIGludGVnZXIgdmVyc2lvbiBsYXlvdXQgdGVzdHMgYXJlIGhlcmUs
IHdpdGggZmFpbHVyZXMgaW4KKyAgICAgICAgdGhlIGV4cGVjdGVkIGZpbGVzLiAgVGhpcyB3aWxs
IGFsbG93IHVzIHRvIGluY3JlbWVudGFsbHkgaW1wbGVtZW50CisgICAgICAgIHVwZ3JhZGVuZWVk
ZWQgYW5kIGludGVnZXIgdmVyc2lvbnMgYW5kIGp1c3QgbWFrZSB0aGUgYmlnIHBhdGNoIGluIGJ1
ZworICAgICAgICA4OTUwNSBzbWFsbGVyLgorCisgICAgICAgIFRoZXJlIGFyZSB0d28gYWRkZWQg
c2tpcHMgdG8gVGVzdEV4cGVjdGF0aW9ucywgb25lIHRlc3QgZXhwb3NlcyBhIGJ1ZworICAgICAg
ICBpbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiwgY2F1c2luZyBhbiBhc3NlcnQgdG8gZmFp
bC4gIFRoZSBvdGhlcgorICAgICAgICB0aW1lcyBvdXQgaW4gRFJUIHNvIHdlIHdpbGwgcnVuIGl0
IGFzIGEgY29udGVudF9icm93c2VydGVzdCBmb3IgdGhlCisgICAgICAgIHRpbWUgYmVpbmcuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVl
ZGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5k
LXNldHZlcnNpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJl
dHdlZW4tZXZlbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWlu
LXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1kZWxldGUtaW4tdXBncmFkZW5l
ZWRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9u
LWRlbGV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWhpZ2gtdmVyc2lvbi1maXJzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJz
aW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lk
ZS1lZmZlY3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFt
ZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1p
bml0aWFsLXVwZ3JhZGVuZWVkZWQuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAg
IChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAob25B
Ym9ydCk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
YW5kLXNldHZlcnNpb24uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgIChkZWxl
dGVTdWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAgKGluU2V0VmVyc2lv
bik6CisgICAgICAgIChzZXRWZXJzaW9uRG9uZSk6CisgICAgICAgIChzZWNvbmRPcGVuKToKKyAg
ICAgICAgKGZpcnN0VXBncmFkZU5lZWRlZCk6CisgICAgICAgICh0cmFuc2FjdGlvbkNvbXBsZXRl
ZCk6CisgICAgICAgIChmaXJzdE9wZW5XaXRoVmVyc2lvbik6CisgICAgICAgIChzZXRWZXJzaW9u
Tm90QWxsb3dlZCk6CisgICAgICAgIChlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uKToKKyAgICAg
ICAgKHNlY29uZFVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAodGhpcmRPcGVuU3VjY2Vzcyk6Cisg
ICAgICAgIChmb3VydGhPcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24tYmxvY2tlZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAoZmlyc3RVcGdyYWRlTmVlZGVkQ2Fs
bGJhY2spOgorICAgICAgICAoZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKHZl
cnNpb25DaGFuZ2VIYW5kbGVyKToKKyAgICAgICAgKGJsb2NrZWRFdmVudEhhbmRsZXIpOgorICAg
ICAgICAoc2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcik6CisgICAgICAgIChzZWNvbmRT
dWNjZXNzQ2FsbGJhY2spOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9p
bnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgICh1cGdyYWRlTmVlZGVkLnRyYW5z
YWN0aW9uLm9uY29tcGxldGUpOgorICAgICAgICAodXBncmFkZU5lZWRlZCk6CisgICAgICAgIChj
bG9zZURCKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgICh1cGdy
YWRlTmVlZGVkLnRyYW5zYWN0aW9uLm9uY29tcGxldGUpOgorICAgICAgICAodXBncmFkZU5lZWRl
ZCk6CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFk
ZU5lZWRlZC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQp
OgorICAgICAgICAob3BlblN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAoaW5pdGlhbGx5RGVsZXRlZCk6CisgICAgICAgIChmaXJz
dFVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAob3BlblN1Y2Nlc3MpOgorICAgICAgICAodmVyc2lv
bkNoYW5nZUNhbGxiYWNrKToKKyAgICAgICAgKGRlbGV0ZUJsb2NrZWRDYWxsYmFjayk6CisgICAg
ICAgIChkZWxldGVGcm9tVXBncmFkZU5lZWRlZFN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAgICAoZmly
c3RTdWNjZXNzQ2FsbGJhY2spOgorICAgICAgICAoc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKToKKyAg
ICAgICAgKGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrKToKKyAgICAgICAgKGNvbm5l
Y3Rpb24yVmVyc2lvbkNoYW5nZUNhbGxiYWNrKToKKyAgICAgICAgKGRlbGV0ZURhdGFiYXNlQmxv
Y2tlZENhbGxiYWNrKToKKyAgICAgICAgKGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrKToK
KyAgICAgICAgKHVwZ3JhZGVOZWVkZWRDYWxsYmFjayk6CisgICAgICAgIChvcGVuV2l0aFZlcnNp
b25TdWNjZXNzQ2FsbGJhY2spOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MucmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQpOgorICAg
ICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIp
OgorICAgICAgICAodmVyc2lvbkNoYW5nZUhhbmRsZXIpOgorICAgICAgICAoYmxvY2tlZEV2ZW50
SGFuZGxlcjIpOgorICAgICAgICAodXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjIpOgorICAgICAg
ICAoc3VjY2Vzc0NhbGxiYWNrMik6CisgICAgICAgIChibG9ja2VkRXZlbnRIYW5kbGVyNCk6Cisg
ICAgICAgICh1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyNCk6CisgICAgICAgIChzdWNjZXNzQ2Fs
bGJhY2s0KToKKyAgICAgICAgKGVycm9ySGFuZGxlcjMpOgorICAgICAgICAoYmxvY2tlZEV2ZW50
SGFuZGxlcjMpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChmaXJzdFVw
Z3JhZGVOZWVkZWRDYWxsYmFjayk6CisgICAgICAgIChmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIp
OgorICAgICAgICAoc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKHNldFZlcnNpb25F
cnJvcik6CisgICAgICAgIChuZXdEQlN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWxvbmctcXVldWUuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKGZpcnN0U3VjY2Vzc0Nh
bGxiYWNrKToKKyAgICAgICAgKHNlY29uZFN1Y2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChjb25u
ZWN0aW9uMVZlcnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChzZXRWZXJzaW9uQmxvY2tl
ZENhbGxiYWNrKToKKyAgICAgICAgKHNldFZlcnNpb25TdWNjZXNzQ2FsbGJhY2spOgorICAgICAg
ICAoc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayk6CisgICAgICAgIChjb25u
ZWN0aW9uMlZlcnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChkZWxldGVEYXRhYmFzZUJs
b2NrZWRDYWxsYmFjayk6CisgICAgICAgIChkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayk6
CisgICAgICAgICh1cGdyYWRlTmVlZGVkQ2FsbGJhY2spOgorICAgICAgICAob3BlbldpdGhWZXJz
aW9uU3VjY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MucmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQpOgorICAgICAg
ICAoZGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanM6
IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAg
ICAgKHVwZ3JhZGVOZWVkZWQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSk6CisgICAgICAgICh1cGdy
YWRlTmVlZGVkKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAodW5leHBlY3RlZFZlcnNpb25D
aGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChzZXREQk5hbWVGcm9tUGF0aCk6CisgICAgICAgIChw
cmVhbWJsZSk6CisKIDIwMTItMDctMjYgIE5heWFuIEt1bWFyIEsgIDxuYXlhbmtrQG1vdG9yb2xh
LmNvbT4KIAogICAgICAgICBbV2ViR0xdIEluaXRpYWwgc2l6ZSBvZiBjYW52YXMgY2FuIGJlIGxh
cmdlciB0aGFuIE1BWF9WSUVXUE9SVF9ESU1TLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjQxMzkwOTA0ZjY3Mjc4NTZiN2YwZjZiNzkz
MTZiMjIxYmE5YjBjYy4uNGY3M2NiYjZhM2Q0ZmU5MjkwZDU1NjIwZTZmNzZiYmE4OTZiZmYzYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBA
IC0zNjYzLDMgKzM2NjMsOCBAQCBCVUdXSzkyMDI2IERFQlVHIFNOT1dMRU9QQVJEIDogY3NzMy9z
ZWxlY3RvcnMzL3htbC9jc3MzLW1vZHNlbC0xNzlhLnhtbCA9IFBBU1MgSQogQlVHV0s5MjAyNyBE
RUJVRyBTTk9XTEVPUEFSRCA6IGZhc3QvcGVyZm9ybWFuY2UvcGVyZm9ybWFuY2Utbm93LXRpbWVz
dGFtcHMuaHRtbCA9IFBBU1MgVEVYVAogQlVHV0s5MjI4OCBTTk9XTEVPUEFSRCBERUJVRyA6IHBs
dWdpbnMvdXBkYXRlLXdpZGdldHMtY3Jhc2guaHRtbCA9IFBBU1MgVElNRU9VVAogQlVHV0s5MjI5
NyBERUJVRyA6IG1lZGlhL3ZpZGVvLXNldC1yYXRlLWZyb20tcGF1c2UuaHRtbCA9IFBBU1MgQ1JB
U0gKKworLy8gVGltZXMgb3V0IGluIERSVCwgYnV0IHdvcmtzIGluIGNocm9tZQorQlVHV0s5Mjc3
NiBTS0lQIDogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1kZWxldGUtaW4tdXBncmFkZW5l
ZWRlZC5odG1sID0gUEFTUworLy8gRmFpbHMgYW4gQVNTRVJUIHVudGlsIHRoZSBiaWcgcGF0Y2gg
aW4gODk1MDUgbGFuZHMuCitCVUdXSzkyNzgzIFNLSVAgOiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWxvbmctcXVldWUuaHRtbCA9IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
YWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
OTA4M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1YTdkODkyYWE2YTYzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0
aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3QgdGhh
dCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBiYWNr
IHRvIDAKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVy
c2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCityZXF1ZXN0Lm9u
dXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQKK0ZJWE1FOiBUaGlzIHNob3VsZCBnZXQgYW4g
ZXJyb3IgZXZlbnQgb2YgdHlwZSBBYm9ydEVycm9yCityZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjaworRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVk
bHkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9y
dC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjY4YWMwZDBlN2M5ODA1NTIzZGU0OGNhMDMyMTc2MWIzZjI1M2Y3ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJv
cnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1h
Ym9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYyMjJjYTE1ZDA5Yzc0ZDNhMmY0NDc5OGQyMGJkYzE4ZTUzMjUxNmYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1z
ZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUwIEBACitUZXN0IHRoYXQgaW50IHZl
cnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcgdmVyc2lvbnMg
YXJlIHRoZW4gZGlzYWxsb3dlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5k
ZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5t
b3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2Ri
bmFtZSA9ICJpbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0bWwiCitpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKQorRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3Qg
SURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0XS4K
KworQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0ZXI6CitpbmRleGVkREIub3Blbihk
Ym5hbWUpCisKK29wZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1Mg
ZGIudmVyc2lvbiBpcyAiIgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInNvbWUgdmVyc2lvbiIp
CisKK2luU2V0VmVyc2lvbigpOgorUEFTUyBkYi52ZXJzaW9uIGlzICJzb21lIHZlcnNpb24iCisK
K3NldFZlcnNpb25Eb25lKCk6CitQQVNTIGRiLnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIKK2Ri
LmNsb3NlKCkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qub25zdWNjZXNzID0gc2Vj
b25kT3BlbgorCitzZWNvbmRPcGVuKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1Mg
U3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitQQVNTIGRiLnZlcnNpb24gaXMg
InNvbWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5h
bWUsIDIpCisKK2ZpcnN0T3BlbldpdGhWZXJzaW9uKCk6CitGQUlMIGRpZFRyYW5zYWN0aW9uQ29t
cGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1BBU1MgcmVxdWVz
dC50cmFuc2FjdGlvbiBpcyBudWxsCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDIgKG9mIHR5
cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAob2YgdHlwZSBzdHJpbmcpLgorRkFJTCBTdHJp
bmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2Jq
ZWN0IElEQlJlcXVlc3RdLgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInN0cmluZyB2ZXJzaW9u
IDIiKQorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZVJl
cXVlc3RdIgorcmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbk5vdEFsbG93ZWQKK0ZBSUwgU3Vj
Y2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41MDZkZWQzOWUwMTNmM2NjNTU3Y2JiNjA4M2Y4ZTc2ZmFjMjI4ZjhhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQt
c2V0dmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYWMzY2NmMmMzNGJmZjA5NDk0M2U2MTNmYTBkYjYzODdkZmJhMzk0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACitUZXN0IHRoYXQgYmxv
Y2tlZCBldmVudHMgZ2V0IGRlbGl2ZXJlZCBwcm9wZXJseSB3aXRoIHRoZSBuZXcgb3BlbiBhcGkK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhl
ZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYu
bXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lvbi1i
bG9ja2VkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitkZWxldGVT
dWNjZXNzKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQorCitmaXJzdFN1
Y2Nlc3NFdmVudEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAorY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIKK1BB
U1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCityZXF1ZXN0
ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorCitzZWNvbmRTdWNjZXNzQ2FsbGJhY2soKToK
K0ZBSUwgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9j
a2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2Nr
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mMzg3ZGVlYjgwNDA0YTU5NzcxMmEzM2FkYzg2YTE4YzYzZWU0
ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3Nl
LWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDYwOWVlNGMwNWExZTdk
YTFhOGU5MWE5ZTlhODg5MzA4ODBkZmYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVHJ5IHRvIGNhbGwgZGIuY2xvc2UoKSBhZnRlciB1cGdy
YWRlbmVlZGVkIGJ1dCBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgc3VjY2VzcyBldmVudCBmaXJl
cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9u
LWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKKworCitvcGVuU3VjY2Vz
cygpOgorUEFTUyBkaWRDYWxsQ2xvc2VEQiBpcyBmYWxzZQorRkFJTCBzYXdUcmFuc2FjdGlvbkNv
bXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKK0ZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChv
ZiB0eXBlIHN0cmluZykuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjllMGUzYzFhNzI4YzczZDVhMjcwMmQxMzE1NTA1NDhlNDZmMTE2ZTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdl
ZW4tZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NWVkYjI0YmRk
NmUyMTk3MzI1MjRjMTE5NThiZTI0MGM5M2Y4Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NhbGwgZGIuY2xvc2UoKSBpbiB0aGUgY29tcGxl
dGUgaGFuZGxlciBmb3IgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiwgYmVmb3JlIHRoZSBz
dWNjZXNzIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgb3BlbiBjYWxsIGZpcmVzCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBz
ZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhl
ZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24tY2xvc2UtaW4t
b25jb21wbGV0ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK3JlcXVl
c3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCisKK29wZW5TdWNjZXNzKCk6CitGQUlMIHNh
d1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51
bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSB0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycsICdyZWFkd3JpdGUnKQorUEFTUyBFeGNl
cHRpb24gd2FzIHRocm93bi4KK0ZBSUwgY29kZSBzaG91bGQgYmUgMTEuIFdhcyA4LgorRkFJTCBl
bmFtZSBzaG91bGQgYmUgSW52YWxpZFN0YXRlRXJyb3IuIFdhcyBOb3RGb3VuZEVycm9yLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25j
b21wbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1j
bG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU5YzYwNWIwM2Q2ODEwYTM2Njcw
YWNmYTUyNzVjMjBhMjgyOTY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sCkBAIC0wLDAg
KzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
aGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZWQ4NWQ0ODE5ZGQwMGEzZTBlMzRhYzljNDRk
MjljYzRkYTFkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjIgQEAKK1Rlc3QgdGhhdCB3aGVuIGRiLmNsb3NlIGlzIGNhbGxlZCBpbiB1cGdyYWRl
bmVlZGVkLCB0aGUgZGIgaXMgY2xlYW5lZCB1cCBvbiByZWZyZXNoLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVu
ZWVkZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCityZXF1ZXN0ID0g
aW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQorCisKK29wZW5TdWNjZXNzKCk6CitGQUlMIHNhd1Ry
YW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJl
cikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
J29zJykKK0ZBSUwgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBJREJEYXRhYmFzZSBFeGNlcHRpb24gOAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4t
dXBncmFkZW5lZWRlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBiYTU4NGUyYmRi
MGIzYzJlZGMyM2JjNTA5Y2YxYjBlNGRkOTUzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5o
dG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVkZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1kZWxl
dGUtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0ZDI5YzA2NzI1
NWMwNmE3ZjUzMmUxN2FlYzkyYTdiNWJhOWY5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVkZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDEgQEAKK1Rlc3QgdGhhdCBhIGRlbGV0ZURhdGFiYXNl
IGNhbGxlZCB3aGlsZSBoYW5kbGluZyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGlzIHF1ZXVlZCBh
bmQgZmlyZXMgaXRzIGV2ZW50cyBhdCB0aGUgcmlnaHQgdGltZQorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVl
ZGVkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitpbml0aWFsbHlE
ZWxldGVkKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKQorCitmaXJzdFVw
Z3JhZGVOZWVkZWQoKToKK1BBU1Mgc2F3Rmlyc3RVcGdyYWRlTmVlZGVkIGlzIGZhbHNlCitzYXdG
aXJzdFVwZ3JhZGVOZWVkZWQgPSB0cnVlCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMAorUEFT
UyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgYWxyZWFkeURlbGV0ZWQgaXMgZmFsc2UKK2Rl
bGV0ZVJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorcmVxdWVzdDIu
b25zdWNjZXNzID0gZGVsZXRlRnJvbVVwZ3JhZGVOZWVkZWRTdWNjZXNzCisKK3JlcXVlc3Qub25z
dWNjZXNzKCk6CitQQVNTIHNhd0ZpcnN0VXBncmFkZU5lZWRlZCBpcyB0cnVlCitkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAxCisKK3ZlcnNpb25DaGFuZ2VDYWxs
YmFjaygpOgorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSAxIChvZiB0eXBlIG51bWJl
cikuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZlbnQubmV3VmVy
c2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3QpLiBXYXMgdW5kZWZpbmVkIChvZiB0
eXBlIHVuZGVmaW5lZCkuCitzYXdWZXJzaW9uQ2hhbmdlID0gdHJ1ZQorZGIuY2xvc2UoKQorCitk
ZWxldGVCbG9ja2VkQ2FsbGJhY2soKToKK1RoaXMgc2hvdWxkbid0IGhhcHBlbiBidXQgZm9yIHRo
ZSBsb25nc3RhbmRpbmcgaHR0cDovL2NyYnVnLmNvbS8xMDAxMjMKKworZGVsZXRlRnJvbVVwZ3Jh
ZGVOZWVkZWRTdWNjZXNzKCk6CitQQVNTIHNhd1ZlcnNpb25DaGFuZ2UgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRl
bmVlZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRl
bGV0ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0OWZhNTkyNTY0ZDFhMGEx
MmE2Y2MyZmNlMWE5NDdhYjFkNDExMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbApA
QCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMTUzZDBkOTRlMjA4YzFmM2E0ZWE0Y2JiNmVkYTg1
Yzk3YjNiODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NCBA
QAorVGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVkIGNvcnJlY3RseSB3aGVuIGFuIG9w
ZW4td2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVkIGJlaGluZCBhIGRlbGV0ZURhdGFiYXNlIGNh
bGwKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lv
bi1nYXRlZC1vbi1kZWxldGUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
CisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCity
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3VjY2Vzc0NhbGxiYWNrCisKK2ZpcnN0U3VjY2Vzc0Nh
bGxiYWNrKCk6Citjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2Nvbm5lY3Rpb24x
Lm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrCityZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRT
dWNjZXNzQ2FsbGJhY2sKK3JlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQorcmVxdWVzdC5vbmJsb2NrZWQgPSBkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjaworcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaworcmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkKK3JlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBn
cmFkZU5lZWRlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5XaXRoVmVyc2lvblN1
Y2Nlc3NDYWxsYmFjaworCitzZWNvbmRTdWNjZXNzQ2FsbGJhY2soKToKK2RiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAorZGIub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdl
Q2FsbGJhY2sKKworY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKToKK1BBU1MgZXZl
bnQudHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK2V2ZW50LnZlcnNpb24gPSAKKworY29ubmVjdGlv
bjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lvbmNo
YW5nZSIKK2V2ZW50LnRhcmdldC5jbG9zZSgpCisKK2RlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxi
YWNrKCk6CitGSVhNRTogdGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgb25jZSwg
aHR0cDovL2NyYnVnLmNvbS8xMzk2OTUKK2Nvbm5lY3Rpb24xLmNsb3NlKCkKKworZGVsZXRlRGF0
YWJhc2VCbG9ja2VkQ2FsbGJhY2soKToKK0ZJWE1FOiB0aGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5
IGJlIGNhbGxlZCBvbmNlLCBodHRwOi8vY3JidWcuY29tLzEzOTY5NQorY29ubmVjdGlvbjEuY2xv
c2UoKQorCitkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaygpOgorCitvcGVuV2l0aFZlcnNp
b25TdWNjZXNzQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmplY3RTdG9y
ZU5hbWVzLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE5NWI2
ZGY5ZGNhMTk3MDJhMzc1ZDM5OTc5NTQzZmFiZjBmN2YwNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLmh0
bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJz
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE1ZjdiZDgwYWZmYjRlNDFlMDc5YmZlYWRiZDQw
MWM1NTVmZTRhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI4IEBACitUZXN0IHRoYXQgaWYgdHdvIG9wZW4gcmVxdWVzdHMgYXJlIHdhaXRpbmcgYXQgdGhl
IHNhbWUgdGltZSwgdGhlIG9uZSB3aXRoIHRoZSBoaWdoZXIgdmVyc2lvbiBnZXRzIGNhbGxlZCBm
aXJzdAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJz
aW9uLWhpZ2gtdmVyc2lvbi1maXJzdC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKKworZGVsZXRlU3VjY2VzcygpOgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgMSkKKworZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKCk6CitGQUlMIGdvdEZpcnN0VXBncmFk
ZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitjb25uZWN0aW9uMSA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKK2Nvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IHZlcnNpb25D
aGFuZ2VIYW5kbGVyCityZXF1ZXN0MiA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKK3JlcXVl
c3QzID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorcmVxdWVzdDQgPSBpbmRleGVkREIub3Bl
bihkYm5hbWUsIDQpCisKK3N1Y2Nlc3NDYWxsYmFjazIoKToKK1BBU1MgZ290QmxvY2tlZEV2ZW50
NCBpcyBmYWxzZQorRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1oaWdoLXZlcnNp
b24tZmlyc3QuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
aGlnaC12ZXJzaW9uLWZpcnN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzM4Y2U0YmJkZWMzZWQzMjRiZTM4
YzUzNjBhODIyZjgxYTIyZGI2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0Lmh0bWwKQEAgLTAsMCAr
MSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3No
YXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvaW50dmVyc2lvbi1oaWdoLXZlcnNpb24tZmlyc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxp
ZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU3NGU1YWE3ZmJhYzY4ZmE1MWZkZGE1MWE1NGZmZTUzZjZiOWNhNTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0
dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBA
CitUZXN0IHRoYXQgd2hlbiBzZXRWZXJzaW9uIGlzIGNhbGxlZCBvbiBhIGRiIHdpdGggYW4gaW50
ZWdlciB2ZXJzaW9uLCB2ZXJzaW9uY2hhbmdlIGV2ZW50cyBkb24ndCBnZXQgZmlyZWQgb24gb3Ro
ZXIgb3BlbiBkYnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIg
PSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4
ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0g
ImludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMuaHRtbCIK
K2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3Jl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCisKK2ZpcnN0U3VjY2Vzc0V2ZW50SGFu
ZGxlcigpOgorRkFJTCBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgorY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Citjb25uZWN0aW9u
MS5vbnZlcnNpb25jaGFuZ2UgPSB1bmV4cGVjdGVkVmVyc2lvbkNoYW5nZUNhbGxiYWNrCitQQVNT
IFN0cmluZyhjb25uZWN0aW9uMSkgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgorcmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKKworc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKCk6CitkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uJykK
K3JlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25FcnJvcgorcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1
bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrCityZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRC
bG9ja2VkQ2FsbGJhY2sKK0ZBSUwgb252ZXJzaW9uY2hhbmdlIGNhbGxlZCB1bmV4cGVjdGVkbHkK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQt
c2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZl
Y3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI5YTAzYjM3MzRhMzI3NDEyMDE4OTY4YmI1OWYzN2NiYWZi
MTZhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMuaHRtbApAQCAt
MCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3Rz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VmZjA5NWMzZjYzOTA3Njc5MzY5NGQxNTdlNmZh
MTMyMDFiMzY3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OSBAQAor
VGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVkIGNvcnJlY3RseSB3aGVuIGFuIG9wZW4t
d2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVkIGJlaGluZCBib3RoIGEgZGVsZXRlRGF0YWJhc2Ug
YW5kIHNldFZlcnNpb24gY2FsbAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5k
ZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5t
b3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2Ri
bmFtZSA9ICJpbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRh
YmFzZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3Bl
bihkYm5hbWUpCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3VjY2Vzc0NhbGxiYWNrCisKK2Zp
cnN0U3VjY2Vzc0NhbGxiYWNrKCk6Citjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
K2Nvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNh
bGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2sKKworc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKCk6Citj
b25uZWN0aW9uMiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2Nvbm5lY3Rpb24yLm9udmVyc2lvbmNo
YW5nZSA9IGNvbm5lY3Rpb24yVmVyc2lvbkNoYW5nZUNhbGxiYWNrCityZXF1ZXN0ID0gY29ubmVj
dGlvbjIuc2V0VmVyc2lvbigndmVyc2lvbiAyJykKK3JlcXVlc3Qub25ibG9ja2VkID0gc2V0VmVy
c2lvbkJsb2NrZWRDYWxsYmFjaworcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2Vz
c0NhbGxiYWNrCisKK2Nvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrKCk6CitQQVNTIGV2
ZW50LnR5cGUgaXMgInZlcnNpb25jaGFuZ2UiCitQQVNTIGV2ZW50LnZlcnNpb24gaXMgInZlcnNp
b24gMiIKKworc2V0VmVyc2lvbkJsb2NrZWRDYWxsYmFjaygpOgorcmVxdWVzdCA9IGluZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCityZXF1ZXN0Lm9uYmxvY2tlZCA9IGRlbGV0ZURhdGFi
YXNlQmxvY2tlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZURhdGFiYXNlU3Vj
Y2Vzc0NhbGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKQorcmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkQ2FsbGJhY2sKK3JlcXVlc3Qub25zdWNj
ZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrCitjb25uZWN0aW9uMS5jbG9zZSgp
CisKK3NldFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAorZGIgPSB0cmFuc2FjdGlvbi5kYgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Nv
bWUgb2JqZWN0IHN0b3JlJykKK3RyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uVHJh
bnNhY3Rpb25Db21wbGV0ZUNhbGxiYWNrCisKK3NldFZlcnNpb25UcmFuc2FjdGlvbkNvbXBsZXRl
Q2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24gaXMgInZlcnNpb24gMiIK
KworY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudHlwZSBp
cyAidmVyc2lvbmNoYW5nZSIKK0ZJWE1FOiBGaXJlIGEgdmVyc2lvbmNoYW5nZSBldmVudCB0aGF0
IGhhcyBvbGRWZXJzaW9uIGFuZCBuZXdWZXJzaW9uCitGQUlMIGV2ZW50Lm9sZFZlcnNpb24gc2hv
dWxkIGJlIHZlcnNpb24gMiAob2YgdHlwZSBzdHJpbmcpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBl
IHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50Lm5ld1ZlcnNpb24gc2hvdWxkIGJlIG51bGwgKG9mIHR5
cGUgb2JqZWN0KS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLgorRkFJTCBldmVu
dC52ZXJzaW9uIHNob3VsZCBiZSB1bmRlZmluZWQuIFdhcyAKKworZGVsZXRlRGF0YWJhc2VCbG9j
a2VkQ2FsbGJhY2soKToKK2Nvbm5lY3Rpb24yLmNsb3NlKCkKK0ZBSUwgZXZlbnQub2xkVmVyc2lv
biBzaG91bGQgYmUgdmVyc2lvbiAyIChvZiB0eXBlIHN0cmluZykuIFdhcyB1bmRlZmluZWQgKG9m
IHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZlbnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAo
b2YgdHlwZSBvYmplY3QpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlM
IGV2ZW50LnZlcnNpb24gc2hvdWxkIGJlIHVuZGVmaW5lZC4gV2FzIAorCitkZWxldGVEYXRhYmFz
ZVN1Y2Nlc3NDYWxsYmFjaygpOgorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSBub24t
bnVsbC4gV2FzIHVuZGVmaW5lZAorRkFJTCBldmVudC5uZXdWZXJzaW9uIHNob3VsZCBiZSBudWxs
IChvZiB0eXBlIG9iamVjdCkuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK1BB
U1MgZXZlbnQudGFyZ2V0LnJlc3VsdCBpcyBudWxsCisKK3VwZ3JhZGVOZWVkZWRDYWxsYmFjaygp
OgorZ290VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlz
IDEKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCisKK29wZW5XaXRoVmVyc2lvblN1Y2Nlc3ND
YWxsYmFjaygpOgorUEFTUyBnb3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVu
dC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM4ZWU3NTA2YzgzYmI1NDJkZjg4ZTIyYWE1ZjBkMjlkY2Q4ZjYxYmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxv
bmctcXVldWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWxvbmctcXVldWUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmY2YwYjdmZTU3ZjQ3NzA0NzhhYTVlYjc0YjM5YWEz
MTUzODAwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBA
CitUZXN0IHRoYXQgaW5pdGlhbCB2ZXJzaW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIGEg
bm9uLWV4aXN0ZW50IGRiIGlzIDEKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2lu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitk
Ym5hbWUgPSAiaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sIgoraW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKKworb3BlblN1Y2Nlc3Mo
KToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorVGVzdCBsaW5lIGZyb20gSURCRmFjdG9yeS5v
cGVuOiBJZiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZCBhbmQgbm8gZGF0YWJhc2UgZXhpc3RzLCBz
ZXQgZGF0YWJhc2UgdmVyc2lvbiB0byAxLgorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSAxIChv
ZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGJiNTRhMjBkYmE0ZTVhZWE2ZDcyOTM4MjcwZDE1M2M4NzYwMmRlYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
b21pdC1wYXJhbWV0ZXIuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9w
ZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzcwY2FkMDA0NzE2YzNk
NDljOWI4NWIxNWY4NmE5ZDk5Y2VhZGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzMCBAQAorVGVzdCB0aGF0IHNwZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4g
b3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBjYXVzZXMgYW4gdXBncmFkZW5lZWRlZCBldmVudCBh
bmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgc2V0IGNvcnJlY3RseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYu
d2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIg
fHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVy
c2lvbi5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK1Nob3VsZCB0cmln
Z2VyOgorNC4xLjQ6IElmIG5vIGRhdGFiYXNlIHdpdGggdGhlIGdpdmVuIG5hbWUgZnJvbSB0aGUg
b3JpZ2luIG9yaWdpbiB3YXMgZm91bmQsIG9yIGlmIGl0IHdhcyBkZWxldGVkIGR1cmluZyB0aGUg
cHJldmlvdXMgc3RlcCwgdGhlbiBjcmVhdGUgYSBkYXRhYmFzZSB3aXRoIG5hbWUgbmFtZSwgd2l0
aCAwIGFzIHZlcnNpb24sIGFuZCB3aXRoIG5vIG9iamVjdCBzdG9yZXMuIExldCBkYiBiZSB0aGUg
bmV3IGRhdGFiYXNlLgorNC4xLjY6IENyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGRiIGFuZCBs
ZXQgY29ubmVjdGlvbiByZXByZXNlbnQgaXQuCis0LjEuNzogSWYgdGhlIHZlcnNpb24gb2YgZGIg
aXMgbG93ZXIgdGhhbiB2ZXJzaW9uLCB0aGVuIHJ1biB0aGUgc3RlcHMgZm9yIHJ1bm5pbmcgYSAi
dmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24gdXNpbmcgY29ubmVjdGlvbiwgdmVyc2lvbiwgcmVx
dWVzdCBhbmQgdXBncmFkZSBjYWxsYmFjay4KKzQuMS45OiBSZXR1cm4gY29ubmVjdGlvbi4KK3Jl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCitGQUlMIFN0cmluZyhyZXF1ZXN0KSBz
aG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XS4gV2FzIFtvYmplY3QgSURCUmVxdWVz
dF0uCisKKworb3BlblN1Y2Nlc3MoKToKK1Rlc3QgNC4xLjcsIHRoYXQgYSB2ZXJzaW9uY2hhbmdl
IHRyYW5zYWN0aW9uIHdhcyBydW4uCitGQUlMIHNhd1VwZ3JhZGVOZWVkZWQgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KK0ZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitLaW5kIG9mIHRlc3QgNC4x
Ljk6CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgorRkFJTCBkYi52
ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5n
KS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4t
d2l0aC12ZXJzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThjNzNkNDRmODJiMjE3YWNl
N2MxMjE3NjA4YjBhYWYxNzRhYzI5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uaHRtbApAQCAtMCww
ICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJv
cnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0NTc4NzY4MThhODUw
NjE1Y2Y5NDhkOGQwYjJiNmZkOTJkYjc2NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFs
LXVwZ3JhZGVuZWVkZWQuanMKQEAgLTAsMCArMSw0OSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgYW4gYWJvcnQgaW4gdGhlIGluaXRpYWwgdXBncmFkZW5lZWRlZCBz
ZXRzIHZlcnNpb24gYmFjayB0byAwIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92
ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKworICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2Vzcygp
IHsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIp
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQiKTsK
KyAgICBkZWJ1ZygiRklYTUU6IFRoaXMgc2hvdWxkIGdldCBhbiBlcnJvciBldmVudCBvZiB0eXBl
IEFib3J0RXJyb3IiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjayIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gdXBncmFkZU5lZWRlZChldnQpCit7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkKCk6Iik7CisgICAgZXZlbnQgPSBl
dnQ7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIHNob3VsZEJlKCJkYi52ZXJz
aW9uIiwgIjIiKTsKKyAgICB0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsK
KyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7
CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IG9uQWJvcnQ7CisgICAgZXZhbEFuZExvZygidHJh
bnNhY3Rpb24uYWJvcnQoKSIpOworfQorCitmdW5jdGlvbiBvbkFib3J0KGV2dCkKK3sKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoIm9uQWJvcnQoKToiKTsKKyAgICBldmVudCA9IGV2dDsKKyAg
ICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24iLCAiMCIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5qcyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9u
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMwOWNhODgxMDBlZDAxYjgxY2E5ZWIyN2M2NWIxZTNlOTQyZjI3ZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5qcwpAQCAtMCwwICsxLDE5MCBAQAoraWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpz
Jyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgaW50IHZlcnNpb24gdXBncmFkZXMgYSBz
dHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcgdmVyc2lvbnMgYXJlIHRoZW4gZGlzYWxsb3dl
ZCIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwor
ICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIlN0cmluZyhyZXF1ZXN0KSIsICJbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdIik7CisgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2
dCkgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lv
biBwYXJhbWV0ZXI6Iik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKKyAgICByZXF1
ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9u
IG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNp
b24iLCAiIik7CisgICAgZXZhbEFuZExvZygncmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInNvbWUg
dmVyc2lvbiIpJyk7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBpblNldFZlcnNpb247CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBpblNl
dFZlcnNpb24oZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygiaW5TZXRWZXJzaW9uKCk6Iik7CisgICAgdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgIHRyYW5zLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uRG9uZTsKKyAgICB0cmFucy5vbmFi
b3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgZGIgPSB0cmFucy5kYjsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29tZSB2ZXJzaW9uIik7CisgICAg
Ly8gRklYTUU6IEFkZCBhIHRlc3QgdGhhdCBjYWxscyBvcGVuIHdpdGggdmVyc2lvbiBmcm9tIGhl
cmUuCit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb25Eb25lKGV2dCkKK3sKKyAgICBldmVudCA9IGV2
dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNpb25Eb25lKCk6Iik7CisgICAg
ZGIgPSBldmVudC50YXJnZXQuZGI7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJz
aW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kT3BlbiIpOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRl
bmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24g
c2Vjb25kT3BlbihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAg
IGRlYnVnKCJzZWNvbmRPcGVuKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltv
YmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJz
aW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAg
ICAvLyBGSVhNRTogQWRkIHRlc3RzIHRoYXQgY2FsbCBpdCB3aXRoIDAsIC0xLCBhbmQgLTQuCisg
ICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAg
ICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZpcnN0VXBncmFkZU5lZWRlZAorICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZpcnN0T3BlbldpdGhWZXJzaW9uOworfQorCitmdW5jdGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWQo
ZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZmly
c3RVcGdyYWRlTmVlZGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmpl
Y3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcocmVx
dWVzdC50cmFuc2FjdGlvbikiLCAiW29iamVjdCBJREJUcmFuc2FjdGlvbl0iKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm9sZFZlcnNpb24iLCAic29tZSB2ZXJzaW9uIik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMiIpOworICAgIGV2YWxBbmRMb2coInJl
cXVlc3QudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRyYW5zYWN0aW9uQ29tcGxldGVkIik7Cisg
ICAgcmVxdWVzdC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7
Cit9CisKK3ZhciBkaWRUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB0cmFu
c2FjdGlvbkNvbXBsZXRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNvbXBsZXRlZCgpOiIpOworICAgIGV2YWxBbmRMb2co
ImRpZFRyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7Cit9CisKK2Z1bmN0aW9uIGZpcnN0T3Bl
bldpdGhWZXJzaW9uKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZGVidWcoImZpcnN0T3BlbldpdGhWZXJzaW9uKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJk
aWRUcmFuc2FjdGlvbkNvbXBsZXRlIik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltv
YmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmVOdWxsKCJyZXF1ZXN0LnRyYW5zYWN0
aW9uIik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QpIiwgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0i
KTsKKyAgICBldmFsQW5kTG9nKCdyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic3RyaW5nIHZlcnNp
b24gMiIpJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcocmVxdWVzdCkiLCAi
W29iamVjdCBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tl
ZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1
bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25lcnJv
ciA9IHNldFZlcnNpb25Ob3RBbGxvd2VkIik7Cit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb25Ob3RB
bGxvd2VkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVi
dWcoInNldFZlcnNpb25Ob3RBbGxvd2VkKCk6Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJldmVudC50eXBlIiwgImVycm9yIik7CisgICAgZGVidWcoInJlcXVlc3Qud2Via2l0RXJyb3JN
ZXNzYWdlID0gIiArIHJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlKTsKKyAgICBldmFsQW5kTG9n
KCJkYi5jbG9zZSgpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uZXJyb3IgPSBlcnJvcldo
ZW5UcnlpbmdMb3dWZXJzaW9uIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVk
QmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nl
c3NDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbihldnQp
Cit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJlcnJvcldo
ZW5UcnlpbmdMb3dWZXJzaW9uKCk6Iik7CisgICAgZGVidWcoInJlcXVlc3Qud2Via2l0RXJyb3JN
ZXNzYWdlID0gIiArIHJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlKTsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA0KSIpOworICAgIHJlcXVlc3Qub25i
bG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IHNlY29uZFVwZ3JhZGVOZWVkZWQiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0Lm9uc3VjY2VzcyA9IHRoaXJkT3BlblN1Y2Nlc3MiKTsKK30KKwordmFyIGdvdFNlY29uZFVw
Z3JhZGVOZWVkZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIHNlY29uZFVwZ3JhZGVOZWVkZWQoZXZ0KQor
eworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic2Vjb25kVXBn
cmFkZU5lZWRlZCgpOiIpOworICAgIGV2YWxBbmRMb2coImdvdFNlY29uZFVwZ3JhZGVOZWVkZWQg
PSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNo
b3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjQiKTsKK30KKworZnVuY3Rpb24gdGhpcmRPcGVu
U3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRl
YnVnKCJ0aGlyZE9wZW5TdWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RTZWNvbmRV
cGdyYWRlTmVlZGVkIik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiNCIpOworICAgIGV2YWxBbmRMb2coImRi
LmNsb3NlKCkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gZm91cnRoT3BlblN1
Y2Nlc3MiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVuZXhwZWN0ZWRVcGdyYWRl
TmVlZGVkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZFVwZ3JhZGVO
ZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZm91cnRoT3BlblN1Y2Nlc3MoZXZ0KQorewor
ICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZm91cnRoT3BlblN1
Y2Nlc3MoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
KyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICI0Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMThkY2E3
NzUxZGNjOTcwNDA1ODMxMzdkODI3MzkzN2U5YjU5NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpz
CkBAIC0wLDAgKzEsOTAgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRT
Y3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAg
IGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0
IGJsb2NrZWQgZXZlbnRzIGdldCBkZWxpdmVyZWQgcHJvcGVybHkgd2l0aCB0aGUgbmV3IG9wZW4g
YXBpIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgcHJlYW1ibGUo
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIp
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyOworICAg
IHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBnb3RGaXJzdFVwZ3Jh
ZGVOZWVkZWRFdmVudCA9IGZhbHNlOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZmly
c3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGZpcnN0VXBncmFkZU5lZWRl
ZENhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImdv
dEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5v
bGRWZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICIyIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZXZlbnQpIiwgIltvYmplY3QgSURC
VXBncmFkZU5lZWRlZEV2ZW50XSIpOworfQorCitnb3RCbG9ja2VkRXZlbnQgPSBmYWxzZTsKK2Z1
bmN0aW9uIGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcihldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0
KTsKKyAgICBzaG91bGRCZVRydWUoImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAg
ZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZh
bEFuZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRs
ZXIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhjb25uZWN0aW9uMSkiLCAi
W29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oZGJuYW1lLCAzKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3Vj
Y2Vzc0NhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gYmxvY2tlZEV2ZW50SGFuZGxlcjsKKyAgICBy
ZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXI7
Cit9CisKK3ZhciBzYXdWZXJzaW9uQ2hhbmdlRXZlbnQgPSBmYWxzZTsKK2Z1bmN0aW9uIHZlcnNp
b25DaGFuZ2VIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRM
b2coInNhd1ZlcnNpb25DaGFuZ2VFdmVudCA9IHRydWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiU3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0i
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0IiwgImNvbm5lY3Rpb24xIik7CisgICAgc2hv
dWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdW
ZXJzaW9uIiwgIjMiKTsKK30KKworZnVuY3Rpb24gYmxvY2tlZEV2ZW50SGFuZGxlcihldnQpCit7
CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZVRydWUoInNhd1ZlcnNpb25DaGFuZ2VF
dmVudCIpOworICAgIGV2YWxBbmRMb2coImdvdEJsb2NrZWRFdmVudCA9IHRydWUiKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhldmVudCkiLCAiW29iamVjdCBJREJWZXJzaW9u
Q2hhbmdlRXZlbnRdIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOwor
ICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjMiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImV2ZW50LnR5cGUiLCAiYmxvY2tlZCIpOworICAgIGV2YWxBbmRMb2coImNvbm5l
Y3Rpb24xLmNsb3NlKCkiKTsKK30KKworZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50ID0gZmFs
c2U7CitmdW5jdGlvbiBzZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAg
ICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlVHJ1ZSgiZ290QmxvY2tlZEV2ZW50Iik7Cisg
ICAgZXZhbEFuZExvZygiZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOworfQor
CitmdW5jdGlvbiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2
dCk7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQiKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVu
dHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDNkMjBhYTJjZjBhZDllZTU5
YTAzMGMzN2I5N2FlMzU1ZmRjOTEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMu
anMKQEAgLTAsMCArMSw3MyBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9y
dFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7Cisg
ICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUcnkgdG8g
Y2FsbCBkYi5jbG9zZSgpIGFmdGVyIHVwZ3JhZGVuZWVkZWQgYnV0IGJlZm9yZSB0aGUgY29ycmVz
cG9uZGluZyBzdWNjZXNzIGV2ZW50IGZpcmVzIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKworICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIp
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3Vj
Y2VzcyhldnQpIHsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCA3KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVx
dWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3Zh
ciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVk
KGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVw
Z3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI3Iik7CisgICAgZXZhbEFu
ZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29iamVjdHN0b3JlJykiKTsKKworICAgIGV2YWxB
bmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CisgICAgdHJh
bnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICBkZWJ1ZygidHJhbnNhY3Rpb24ub25jb21wbGV0ZToiKTsKKyAgICAgICAgZXZhbEFuZExvZygi
c2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUiKTsKKyAgICAgICAgZXZhbEFuZExvZygic2V0
VGltZW91dChjbG9zZURCLCAwKSIpOworICAgIH0KK30KKwordmFyIGRpZENhbGxDbG9zZURCID0g
ZmFsc2U7CitmdW5jdGlvbiBjbG9zZURCKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
ImNsb3NlREIoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkaWRDYWxsQ2xvc2VEQiA9IHRydWUiKTsK
KyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisK
K2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1
ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgi
ZGlkQ2FsbENsb3NlREIiKTsKKyAgICBzaG91bGRCZVRydWUoInNhd1RyYW5zYWN0aW9uQ29tcGxl
dGUiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwor
ICAgIHNob3VsZEJlKCdkYi52ZXJzaW9uJywgIjciKTsKKyAgICBpZiAoZGIudmVyc2lvbiAhPT0g
NykgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiLCAiMSIpOworICAgIGV2YWxB
bmRMb2coImRiLnRyYW5zYWN0aW9uKGRiLm9iamVjdFN0b3JlTmFtZXMpIik7Cit9CisKK3Rlc3Qo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9p
bnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc4NDRhNTdkNGEzYjkxOGMxMThjMWFjNWFjZDAwOTY4MWExZGNmOTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVy
c2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmpzCkBAIC0wLDAgKzEsNTggQEAKK2lmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOwor
fQorCitkZXNjcmlwdGlvbigiQ2FsbCBkYi5jbG9zZSgpIGluIHRoZSBjb21wbGV0ZSBoYW5kbGVy
IGZvciBhIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uLCBiZWZvcmUgdGhlIHN1Y2Nlc3MgZXZl
bnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcGVuIGNhbGwgZmlyZXMiKTsKKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0
aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVk
REIub3BlbihkYm5hbWUsIDcpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2Vz
czsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQ7CisgICAgcmVx
dWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworfQorCit2YXIgc2F3
VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlOworZnVuY3Rpb24gdXBncmFkZU5lZWRlZChldnQp
Cit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRl
TmVlZGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiNyIpOworICAgIGV2YWxBbmRMb2co
ImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpIik7CisKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2Fj
dGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIpOworICAgIHRyYW5zYWN0aW9uLm9uYWJv
cnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWco
InRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7CisgICAgICAgIGV2YWxBbmRMb2coInNhd1RyYW5z
YWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCki
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9
IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7CisgICAg
c2hvdWxkQmVUcnVlKCJzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIik7CisgICAgZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAi
NyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInRyYW5zYWN0aW9uID0gZGIudHJhbnNh
Y3Rpb24oJ29zJywgJ3JlYWR3cml0ZScpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VS
UiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rl
c3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVk
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIxNWMzZDIyMWY0N2Y3Nzc0ODRjZjRmMTA5ODcwMTk5ODQ5ZjJlODEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmpzCkBAIC0wLDAgKzEsNTggQEAK
K2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3No
YXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdoZW4gZGIuY2xvc2UgaXMg
Y2FsbGVkIGluIHVwZ3JhZGVuZWVkZWQsIHRoZSBkYiBpcyBjbGVhbmVkIHVwIG9uIHJlZnJlc2gu
Iik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Cisg
ICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KSIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdy
YWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxs
YmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0g
ZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmFs
QW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
bmV3VmVyc2lvbiIsICI3Iik7CisKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50
LnRhcmdldC50cmFuc2FjdGlvbiIpOworICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdvcycpIik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIHRyYW5zYWN0
aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICB0cmFuc2FjdGlvbi5v
bmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVi
dWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7CisgICAgICAgIGV2YWxBbmRMb2coInNhd1Ry
YW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgfQorfQorCitmdW5jdGlvbiBvcGVuU3Vj
Y2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVn
KCJvcGVuU3VjY2VzcygpOiIpOworICAgIHNob3VsZEJlVHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21w
bGV0ZSIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGV2YWxBbmRMb2coInRyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJykiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
KwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVkZWQuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1kZWxldGUtaW4tdXBncmFk
ZW5lZWRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjgwZTc0MDZiOGIxYjQ2NzY5NDliNTRlM2M4MmY5NTgy
ZWRhY2ZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVkZWQuanMKQEAgLTAsMCAr
MSw4MyBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2Ny
aXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYSBkZWxldGVE
YXRhYmFzZSBjYWxsZWQgd2hpbGUgaGFuZGxpbmcgYW4gdXBncmFkZW5lZWRlZCBldmVudCBpcyBx
dWV1ZWQgYW5kIGZpcmVzIGl0cyBldmVudHMgYXQgdGhlIHJpZ2h0IHRpbWUiKTsKKworZnVuY3Rp
b24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVG
cm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBpbml0aWFsbHlEZWxl
dGVkOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQor
Cit2YXIgc2F3Rmlyc3RVcGdyYWRlTmVlZGVkID0gZmFsc2U7Cit2YXIgYWxyZWFkeURlbGV0ZWQg
PSBmYWxzZTsKK2Z1bmN0aW9uIGluaXRpYWxseURlbGV0ZWQoZXZ0KSB7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJpbml0aWFsbHlEZWxldGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygicmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVk
OworfQorCitmdW5jdGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0g
ZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RVcGdyYWRlTmVlZGVkKCk6Iik7
CisgICAgc2hvdWxkQmVGYWxzZSgic2F3Rmlyc3RVcGdyYWRlTmVlZGVkIik7CisgICAgZXZhbEFu
ZExvZygic2F3Rmlyc3RVcGdyYWRlTmVlZGVkID0gdHJ1ZSIpOworICAgIHNob3VsZEJlKCJldmVu
dC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICIx
Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiYWxyZWFkeURlbGV0ZWQiKTsKKyAgICBpZiAoYWxyZWFk
eURlbGV0ZWQpCisgICAgICAgIHJldHVybjsKKyAgICBhbHJlYWR5RGVsZXRlZCA9IHRydWU7CisK
KyAgICByZXF1ZXN0MiA9IGV2YWxBbmRMb2coImRlbGV0ZVJlcXVlc3QgPSBpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QyLm9uc3VjY2Vz
cyA9IGRlbGV0ZUZyb21VcGdyYWRlTmVlZGVkU3VjY2VzcyIpOworICAgIHJlcXVlc3QyLm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Mi5vbmJsb2NrZWQgPSBk
ZWxldGVCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK3Nhd1ZlcnNpb25DaGFuZ2UgPSBmYWxzZTsKK2Z1
bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1Zygi
Iik7CisgICAgZGVidWcoInJlcXVlc3Qub25zdWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVl
KCJzYXdGaXJzdFVwZ3JhZGVOZWVkZWQiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQiKTsKKyAgICBkYi5vbnZlcnNpb25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdlQ2Fs
bGJhY2s7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAnMScpOworfQorCitmdW5jdGlvbiB2
ZXJzaW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KSB7CisgICAgcHJlYW1ibGUoKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQub2xkVmVyc2lvbiIsICIxIik7CisgICAgc2hvdWxkQmVOdWxsKCJldmVudC5uZXdW
ZXJzaW9uIik7CisgICAgZXZhbEFuZExvZygic2F3VmVyc2lvbkNoYW5nZSA9IHRydWUiKTsKKyAg
ICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZUJsb2NrZWRD
YWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoKTsKKyAgICBkZWJ1ZygiVGhpcyBzaG91bGRu
J3QgaGFwcGVuIGJ1dCBmb3IgdGhlIGxvbmdzdGFuZGluZyBodHRwOi8vY3JidWcuY29tLzEwMDEy
MyIpOworfQorCitmdW5jdGlvbiBkZWxldGVGcm9tVXBncmFkZU5lZWRlZFN1Y2Nlc3MoZXZ0KQor
eworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZGVsZXRlRnJvbVVwZ3JhZGVOZWVkZWRTdWNj
ZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdWZXJzaW9uQ2hhbmdlIik7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS5qcyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWdhdGVkLW9u
LWRlbGV0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmFlYmE3NzJlZjdkZDI2YWU1Yzc0YWYzZjVhZDQ4ZDJl
YmRhOGUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLmpzCkBAIC0wLDAgKzEsOTUgQEAK
K2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3No
YXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVj
cmVhdGVkIGNvcnJlY3RseSB3aGVuIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVk
IGJlaGluZCBhIGRlbGV0ZURhdGFiYXNlIGNhbGwiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIp
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3Vj
Y2VzcyhldnQpIHsKKyAgICBwcmVhbWJsZShldnQpOworICAgIGRlYnVnZ2VyOworICAgIGV2YWxB
bmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgZXZhbEFuZExv
ZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdFN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBmaXJz
dFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJmaXJzdFN1Y2Nlc3NDYWxsYmFjaygpOiIpCisgICAgZXZhbEFuZExvZygi
Y29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29u
bmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJh
Y2siKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIp
OworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxi
YWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uYmxvY2tlZCA9IGRlbGV0ZURhdGFiYXNl
QmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBk
ZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworCisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2coInJlcXVl
c3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVx
dWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBzZWNvbmRT
dWNjZXNzQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiZGIub252ZXJz
aW9uY2hhbmdlID0gY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2siKTsKK30KKworZnVu
Y3Rpb24gY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFt
YmxlKGV2dCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50eXBlIiwgInZlcnNp
b25jaGFuZ2UiKTsKKyAgICBkZWJ1ZygiZXZlbnQudmVyc2lvbiA9ICIgKyBldmVudC52ZXJzaW9u
KTsKK30KKworZnVuY3Rpb24gY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KQor
eworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
eXBlIiwgInZlcnNpb25jaGFuZ2UiKTsKKyAgICBldmFsQW5kTG9nKCJldmVudC50YXJnZXQuY2xv
c2UoKSIpOworfQorCitmdW5jdGlvbiBkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjayhldnQp
Cit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBkZWJ1ZygiRklYTUU6IHRoaXMgZnVuY3Rpb24g
c2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UsIGh0dHA6Ly9jcmJ1Zy5jb20vMTM5Njk1Iik7Cisg
ICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEuY2xvc2UoKSIpOworfQorCitmdW5jdGlvbiBkZWxl
dGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKK30K
KworZnVuY3Rpb24gdXBncmFkZU5lZWRlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShl
dnQpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjEiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cit9CisKK2Z1bmN0aW9uIG9wZW5XaXRoVmVyc2lv
blN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIsICIwIik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWhpZ2gtdmVyc2lvbi1maXJz
dC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9u
LWhpZ2gtdmVyc2lvbi1maXJzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjkxNzkxMDdiZTZjM2QyYjcxZWUx
NmFjOTEwYTllOWRkNDgwMDM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24taGlnaC12ZXJzaW9uLWZpcnN0LmpzCkBA
IC0wLDAgKzEsMTUxIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2Ny
aXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBp
bXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBp
ZiB0d28gb3BlbiByZXF1ZXN0cyBhcmUgd2FpdGluZyBhdCB0aGUgc2FtZSB0aW1lLCB0aGUgb25l
IHdpdGggdGhlIGhpZ2hlciB2ZXJzaW9uIGdldHMgY2FsbGVkIGZpcnN0Iik7CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJv
bVBhdGgoKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFi
YXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7Cisg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0
aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJkZWxl
dGVTdWNjZXNzKCk6Iik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgMSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3VjY2Vzc0V2ZW50
SGFuZGxlcjsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
KyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAg
Z290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKKyAgICByZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGV2dCkgeworICAgICAgZXZlbnQgPSBldnQ7CisgICAgICBkZWJ1
ZygiIik7CisgICAgICBkZWJ1ZygicmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQoKToiKTsKKyAgICAg
IGV2YWxBbmRMb2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOworICAgICAg
c2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOworICAgICAgc2hvdWxkQmUoImV2ZW50
Lm5ld1ZlcnNpb24iLCAiMSIpOworICAgIH0KK30KKworZnVuY3Rpb24gZmlyc3RTdWNjZXNzRXZl
bnRIYW5kbGVyKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAg
ZGVidWcoImZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOiIpCisgICAgc2hvdWxkQmVUcnVlKCJn
b3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24x
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLm9u
dmVyc2lvbmNoYW5nZSA9IHZlcnNpb25DaGFuZ2VIYW5kbGVyIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdDIgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdDMgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdDQgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDQpIik7CisgICAgcmVxdWVzdDIub25z
dWNjZXNzID0gc3VjY2Vzc0NhbGxiYWNrMjsKKyAgICByZXF1ZXN0Mi5vbmJsb2NrZWQgPSBibG9j
a2VkRXZlbnRIYW5kbGVyMjsKKyAgICByZXF1ZXN0Mi5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRl
TmVlZGVkRXZlbnRIYW5kbGVyMjsKKyAgICByZXF1ZXN0Mi5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CisKKyAgICByZXF1ZXN0My5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vz
c0NhbGxiYWNrOworICAgIHJlcXVlc3QzLm9uYmxvY2tlZCA9IGJsb2NrZWRFdmVudEhhbmRsZXIz
OworICAgIHJlcXVlc3QzLm9udXBncmFkZW5lZWRlZCA9IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVk
Q2FsbGJhY2s7CisgICAgcmVxdWVzdDMub25lcnJvciA9IGVycm9ySGFuZGxlcjM7CisKKyAgICBy
ZXF1ZXN0NC5vbnN1Y2Nlc3MgPSBzdWNjZXNzQ2FsbGJhY2s0OworICAgIHJlcXVlc3Q0Lm9uYmxv
Y2tlZCA9IGJsb2NrZWRFdmVudEhhbmRsZXI0OworICAgIHJlcXVlc3Q0Lm9udXBncmFkZW5lZWRl
ZCA9IHVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXI0OworICAgIHJlcXVlc3Q0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKwordmFyIHZlcnNpb25DaGFuZ2VFdmVudHNTZWVu
ID0gMDsKK2Z1bmN0aW9uIHZlcnNpb25DaGFuZ2VIYW5kbGVyKGV2dCkKK3sKKyAgICBldmVudCA9
IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInZlcnNpb25DaGFuZ2VIYW5kbGVyKCk6
Iik7CisgICAgZGVidWcoIisrdmVyc2lvbkNoYW5nZUV2ZW50c1NlZW4gPSAiICsgKCsrdmVyc2lv
bkNoYW5nZUV2ZW50c1NlZW4pKTsKKyAgICBkZWJ1ZygiZXZlbnQub2xkVmVyc2lvbiA9ICIgKyBl
dmVudC5vbGRWZXJzaW9uKTsKKyAgICBkZWJ1ZygiZXZlbnQubmV3VmVyc2lvbiA9ICIgKyBldmVu
dC5uZXdWZXJzaW9uKTsKK30KKwordmFyIGdvdEJsb2NrZWRFdmVudDIgPSBmYWxzZTsKK2Z1bmN0
aW9uIGJsb2NrZWRFdmVudEhhbmRsZXIyKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoImJsb2NrZWRFdmVudEhhbmRsZXIyKCk6Iik7CisgICAgc2hv
dWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMSIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdW
ZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJnb3RCbG9ja2VkRXZlbnQ0Iik7Cisg
ICAgZXZhbEFuZExvZygiZ290QmxvY2tlZEV2ZW50MiA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9n
KCJjb25uZWN0aW9uMS5jbG9zZSgpIik7CisgICAgaWYgKGdvdEJsb2NrZWRFdmVudDQpCisgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkRXZlbnRIYW5k
bGVyMihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVn
KCJ1cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyMigpOiIpOworICAgIHNob3VsZEJlRmFsc2UoImdv
dEJsb2NrZWRFdmVudDQiKTsKKyAgICBpZiAoZ290QmxvY2tlZEV2ZW50NCkKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjazIoZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic3VjY2Vzc0NhbGxiYWNr
MigpOiIpOworICAgIHNob3VsZEJlRmFsc2UoImdvdEJsb2NrZWRFdmVudDQiKTsKKyAgICBpZiAo
Z290QmxvY2tlZEV2ZW50NCkKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3ZhciBnb3RC
bG9ja2VkRXZlbnQ0ID0gZmFsc2U7CitmdW5jdGlvbiBibG9ja2VkRXZlbnRIYW5kbGVyNChldnQp
Cit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJibG9ja2Vk
RXZlbnRIYW5kbGVyNCgpOiIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjIi
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI0Iik7CisgICAgc2hvdWxkQmVU
cnVlKCJnb3RCbG9ja2VkRXZlbnQyIik7CisgICAgZXZhbEFuZExvZygiZ290QmxvY2tlZEV2ZW50
NCA9IHRydWUiKTsKK30KKworZnVuY3Rpb24gdXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjQoZXZ0
KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidXBncmFk
ZU5lZWRlZEV2ZW50SGFuZGxlcjQoKToiKTsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNr
NChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJz
dWNjZXNzQ2FsbGJhY2s0KCk6Iik7Cit9CisKK2Z1bmN0aW9uIGVycm9ySGFuZGxlcjMoZXZ0KQor
eworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZXJyb3JIYW5k
bGVyMygpOiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBibG9ja2VkRXZl
bnRIYW5kbGVyMyhldnQpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJibG9ja2VkRXZl
bnRIYW5kbGVyMygpOiIpOworICAgIGRlYnVnKCJGRiBhbHNvIGZhaWxzIHRoaXMgdGVzdC4iKTsK
KyAgICB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrKGV2dCk7Cit9CisKKwordGVzdCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1pbnZhbGlkLXNldHZlcnNp
b24taGFzLW5vLXNpZGUtZWZmZWN0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzEyMGQ0MjVhZGNhMWY2NmVj
ZDczNTE5YzI1YTc0NWFiMGFhZjIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhh
cy1uby1zaWRlLWVmZmVjdHMuanMKQEAgLTAsMCArMSw3NSBAQAoraWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUZXN0IHRoYXQgd2hlbiBzZXRWZXJzaW9uIGlzIGNhbGxlZCBvbiBhIGRiIHdp
dGggYW4gaW50ZWdlciB2ZXJzaW9uLCB2ZXJzaW9uY2hhbmdlIGV2ZW50cyBkb24ndCBnZXQgZmly
ZWQgb24gb3RoZXIgb3BlbiBkYnMuIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92
ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0
KSB7CisgICAgcHJlYW1ibGUoKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RTdWNjZXNz
RXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRD
YWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
KyAgICBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IGZhbHNlOworICAgIHJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9u
IGZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOwor
ICAgIGV2YWxBbmRMb2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOworICAg
IHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
bmV3VmVyc2lvbiIsICIyIik7Cit9CisKK2Z1bmN0aW9uIGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxl
cihldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZVRydWUoImdvdEZpcnN0
VXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9u
Y2hhbmdlID0gdW5leHBlY3RlZFZlcnNpb25DaGFuZ2VDYWxsYmFjayIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiU3RyaW5nKGNvbm5lY3Rpb24xKSIsICJbb2JqZWN0IElEQkRhdGFiYXNl
XSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJs
b2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRl
bmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24g
c2Vjb25kU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coInJl
cXVlc3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uJykiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uRXJyb3IiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2siKTsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2siKTsKK30KKwor
ZnVuY3Rpb24gc2V0VmVyc2lvbkVycm9yKGV2dCkKK3sKKyAgICBwcmVhbWJsZSgpOworICAgIGRl
YnVnKCJPcGVuIHVwIGEgbmV3IGRiIHRvIGVuc3VyZSB0aGF0IGlmIGNvbm5lY3Rpb24xIHdlcmUg
dG8gZ2V0IGEgdmVyc2lvbmNoYW5nZSBldmVudCwgaXQgd2lsbCBiZSBkZWxpdmVyZWQgYmVmb3Jl
IHRoZSB0ZXN0IGZpbmlzaGVzIik7CisgICAgZXZhbEFuZExvZygibmV3X2RiID0gaW5kZXhlZERC
Lm9wZW4oZGJuYW1lICsgJzInKSIpOworICAgIGV2YWxBbmRMb2coIm5ld19kYi5vbnN1Y2Nlc3Mg
PSBuZXdEQlN1Y2Nlc3MiKTsKKyAgICBuZXdfZGIub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworICAgIG5ld19kYi5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNr
OworfQorCitmdW5jdGlvbiBuZXdEQlN1Y2Nlc3MoZXZ0KQoreworICAgIHByZWFtYmxlKCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWxvbmctcXVldWUuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1sb25nLXF1
ZXVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZmMTNhZDk5MjEwNDljYzg5ZDhmOTRjOGVjMWYyNWE3Y2Y5MzJk
MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmpzCkBAIC0wLDAgKzEsMTMyIEBACitpZiAodGhp
cy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMn
KTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhIGRhdGFiYXNlIGlzIHJlY3JlYXRlZCBj
b3JyZWN0bHkgd2hlbiBhbiBvcGVuLXdpdGgtdmVyc2lvbiBjYWxsIGlzIHF1ZXVlZCBiZWhpbmQg
Ym90aCBhIGRlbGV0ZURhdGFiYXNlIGFuZCBzZXRWZXJzaW9uIGNhbGwiKTsKKworZnVuY3Rpb24g
dGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9t
UGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rp
b24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRM
b2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdFN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2Vk
ID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZmlyc3RTdWNjZXNz
Q2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiY29u
bmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVj
dGlvbjEub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2si
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwor
ICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNr
Iik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAg
cmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworfQorCitmdW5j
dGlvbiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7Cisg
ICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAg
ZXZhbEFuZExvZygiY29ubmVjdGlvbjIub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjJWZXJz
aW9uQ2hhbmdlQ2FsbGJhY2siKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gY29ubmVjdGlv
bjIuc2V0VmVyc2lvbigndmVyc2lvbiAyJykiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9u
YmxvY2tlZCA9IHNldFZlcnNpb25CbG9ja2VkQ2FsbGJhY2siKTsKKyAgICBldmFsQW5kTG9nKCJy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzQ2FsbGJhY2siKTsKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY29u
bmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50eXBlIiwgInZlcnNpb25jaGFuZ2Ui
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnZlcnNpb24iLCAidmVyc2lvbiAy
Iik7Cit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb25CbG9ja2VkQ2FsbGJhY2soZXZ0KQoreworICAg
IGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic2V0VmVyc2lvbkJsb2Nr
ZWRDYWxsYmFjaygpOiIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25ibG9ja2Vk
ID0gZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2siKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKSIpOworICAgIGV2YWxBbmRMb2co
InJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZENhbGxiYWNrIik7CisgICAg
ZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuV2l0aFZlcnNpb25TdWNjZXNzQ2Fs
bGJhY2siKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJh
Y2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAg
ZXZhbEFuZExvZygiY29ubmVjdGlvbjEuY2xvc2UoKSIpOworfQorCitmdW5jdGlvbiBzZXRWZXJz
aW9uU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxB
bmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRM
b2coImRiID0gdHJhbnNhY3Rpb24uZGIiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnc29tZSBvYmplY3Qgc3RvcmUnKSIpOworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uVHJhbnNhY3Rpb25Db21wbGV0ZUNhbGxiYWNrIik7
CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworfQor
CitmdW5jdGlvbiBzZXRWZXJzaW9uVHJhbnNhY3Rpb25Db21wbGV0ZUNhbGxiYWNrKGV2dCkKK3sK
KyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFy
Z2V0LmRiLnZlcnNpb24iLCAidmVyc2lvbiAyIik7Cit9CisKK2Z1bmN0aW9uIGNvbm5lY3Rpb24y
VmVyc2lvbkNoYW5nZUNhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJ2ZXJzaW9uY2hhbmdlIik7CisgICAg
ZGVidWcoIkZJWE1FOiBGaXJlIGEgdmVyc2lvbmNoYW5nZSBldmVudCB0aGF0IGhhcyBvbGRWZXJz
aW9uIGFuZCBuZXdWZXJzaW9uIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5v
bGRWZXJzaW9uIiwgInZlcnNpb24gMiIpOworICAgIHNob3VsZEJlTnVsbCgiZXZlbnQubmV3VmVy
c2lvbiIpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJldmVudC52ZXJzaW9uIik7Cit9CisKK2Z1
bmN0aW9uIGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJs
ZShldnQpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24yLmNsb3NlKCkiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm9sZFZlcnNpb24iLCAidmVyc2lvbiAyIik7CisgICAg
c2hvdWxkQmVOdWxsKCJldmVudC5uZXdWZXJzaW9uIik7CisgICAgc2hvdWxkQmVVbmRlZmluZWQo
ImV2ZW50LnZlcnNpb24iKTsKK30KKworZnVuY3Rpb24gZGVsZXRlRGF0YWJhc2VTdWNjZXNzQ2Fs
bGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVOb25OdWxsKCJl
dmVudC5vbGRWZXJzaW9uIik7CisgICAgc2hvdWxkQmVOdWxsKCJldmVudC5uZXdWZXJzaW9uIik7
CisgICAgc2hvdWxkQmVOdWxsKCJldmVudC50YXJnZXQucmVzdWx0Iik7Cit9CisKK3ZhciBnb3RV
cGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVkZWRDYWxsYmFj
ayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJnb3RVcGdyYWRl
TmVlZGVkRXZlbnQgPSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAi
MSIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKK30KKworZnVuY3Rp
b24gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShl
dnQpOworICAgIHNob3VsZEJlVHJ1ZSgiZ290VXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAgc2hv
dWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiLCAiMCIp
OworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRl
ci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9u
LW9taXQtcGFyYW1ldGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjZmVjZDYwYjlhNGFhYjE3MzZjYWY1OTRm
Y2E4ZjlkODEwZjUxZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5qcwpAQCAtMCwwICsx
LDM5IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3Jp
cHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBpbml0aWFsIHZl
cnNpb24gYWZ0ZXIgYSBzdWNjZXNzZnVsIG9wZW4gb2YgYSBub24tZXhpc3RlbnQgZGIgaXMgMSIp
OworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAg
IHNldERCTmFtZUZyb21QYXRoKCk7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRl
bGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFj
azsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkgeworICAgICAgdGVz
dFBhc3NlZCgiR290IHVwZ3JhZGVuZWVkZWQgZXZlbnQiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkZWJ1ZygiVGVzdCBsaW5lIGZyb20gSURCRmFjdG9y
eS5vcGVuOiBJZiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZCBhbmQgbm8gZGF0YWJhc2UgZXhpc3Rz
LCBzZXQgZGF0YWJhc2UgdmVyc2lvbiB0byAxLiIpOworICAgIHNob3VsZEJlKCdkYi52ZXJzaW9u
JywgJzEnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13
aXRoLXZlcnNpb24uanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
aW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGIzM2Q1NjhkMmNi
MjNhMjZlNDJkYjc1MDkyZGY5Yzg5M2YwYWMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNp
b24uanMKQEAgLTAsMCArMSw3NiBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGlt
cG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7
CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0
IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hlbiBvcGVuaW5nIGEgbm9uLWV4aXN0ZW50IGRi
IGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGFuZCB0aGF0IHRoZSB2ZXJzaW9uIG51bWJl
ciBpcyBzZXQgY29ycmVjdGx5LiIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAg
ICBkZWJ1ZygiU2hvdWxkIHRyaWdnZXI6Iik7CisgICAgZGVidWcoIjQuMS40OiBJZiBubyBkYXRh
YmFzZSB3aXRoIHRoZSBnaXZlbiBuYW1lIGZyb20gdGhlIG9yaWdpbiBvcmlnaW4gd2FzIGZvdW5k
LCBvciBpZiBpdCB3YXMgZGVsZXRlZCBkdXJpbmcgdGhlIHByZXZpb3VzIHN0ZXAsIHRoZW4gY3Jl
YXRlIGEgZGF0YWJhc2Ugd2l0aCBuYW1lIG5hbWUsIHdpdGggMCBhcyB2ZXJzaW9uLCBhbmQgd2l0
aCBubyBvYmplY3Qgc3RvcmVzLiBMZXQgZGIgYmUgdGhlIG5ldyBkYXRhYmFzZS4iKTsKKyAgICBk
ZWJ1ZygiNC4xLjY6IENyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGRiIGFuZCBsZXQgY29ubmVj
dGlvbiByZXByZXNlbnQgaXQuIik7CisgICAgZGVidWcoIjQuMS43OiBJZiB0aGUgdmVyc2lvbiBv
ZiBkYiBpcyBsb3dlciB0aGFuIHZlcnNpb24sIHRoZW4gcnVuIHRoZSBzdGVwcyBmb3IgcnVubmlu
ZyBhIFwidmVyc2lvbmNoYW5nZVwiIHRyYW5zYWN0aW9uIHVzaW5nIGNvbm5lY3Rpb24sIHZlcnNp
b24sIHJlcXVlc3QgYW5kIHVwZ3JhZGUgY2FsbGJhY2suIik7CisgICAgZGVidWcoIjQuMS45OiBS
ZXR1cm4gY29ubmVjdGlvbi4iKTsKKworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVk
REIub3BlbihkYm5hbWUsIDcpIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmco
cmVxdWVzdCkiLCAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdy
YWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxs
YmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBzYXdVcGdyYWRlTmVlZGVkID0gZmFsc2U7
Cit2YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlOworZnVuY3Rpb24gdXBncmFkZU5l
ZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgdGVzdFBhc3NlZCgiSW4gdGhlIHVw
Z3JhZGVuZWVkZWQgZXZlbnQgaGFuZGVyOiIpOworICAgIGRlYnVnKCJUZXN0IDQuOC45LjE6Iik7
CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7Cisg
ICAgZGVidWcoIlRlc3QgNC44LjkuMzoiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lv
biIsICIwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiNyIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUiLCAiZG9uZSIpOwor
ICAgIGRlYnVnKCJUZXN0IDQuMS40OiIpOworICAgIHNob3VsZEJlKCJkYi5uYW1lIiwgImRibmFt
ZSIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjciKTsKKyAgICBzaG91bGRCZSgiZGIu
b2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiLCAiMCIpOworCisgICAgZXZhbEFuZExvZygidHJhbnNh
Y3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIlN0cmluZyh0cmFuc2FjdGlvbikiLCAiW29iamVjdCBJREJUcmFuc2FjdGlvbl0iKTsK
KyAgICBldmFsQW5kTG9nKCdvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzb21lT1MiKScpOwor
ICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICB0
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZSkgeworICAgICAgZXZhbEFuZExvZygi
c2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUiKTsKKyAgICB9CisgICAgc2F3VXBncmFkZU5l
ZWRlZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVu
dCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Cisg
ICAgZGVidWcoIlRlc3QgNC4xLjcsIHRoYXQgYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHdh
cyBydW4uIik7CisgICAgc2hvdWxkQmUoInNhd1VwZ3JhZGVOZWVkZWQiLCAidHJ1ZSIpOworICAg
IHNob3VsZEJlVHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSIpOworICAgIGRiID0gZXZhbEFu
ZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZGVidWcoIktpbmQgb2YgdGVz
dCA0LjEuOToiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29i
amVjdCBJREJEYXRhYmFzZV0iKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICI3Iik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCmluZGV4IGEwNmY1YWY0MDBjZjg5MzBh
NjYwN2RlNzljZWVmYzFhMDAxNzhjODcuLmUzZGYzMzhlYTc1ZmNjODVjNjE0MzYzZDQ1MmIzMGE2
MjQ4NzQ5NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9zaGFyZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL3NoYXJlZC5qcwpAQCAtNzcsNiArNzcsMTIgQEAgZnVuY3Rpb24gdW5leHBlY3RlZFVwZ3Jh
ZGVOZWVkZWRDYWxsYmFjaygpCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKK2Z1bmN0aW9uIHVu
ZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKQoreworICAgIHRlc3RGYWlsZWQoIm9udmVy
c2lvbmNoYW5nZSBjYWxsZWQgdW5leHBlY3RlZGx5Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKIGZ1bmN0aW9uIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oY21kLCBleGNlcHRpb25Db2RlLCBl
eGNlcHRpb25OYW1lKQogewogICAgIGRlYnVnKCJFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gIiAr
IGNtZCk7CkBAIC0xMjMsNiArMTI5LDE4IEBAIGZ1bmN0aW9uIGRlbGV0ZUFsbE9iamVjdFN0b3Jl
cyhkYikKICAgICBkZWJ1ZygiRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4iKTsKIH0KIAorZnVu
Y3Rpb24gc2V0REJOYW1lRnJvbVBhdGgoKSB7CisgICAgZXZhbEFuZExvZygnZGJuYW1lID0gIicg
KyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygxICsgc2VsZi5sb2NhdGlvbi5wYXRo
bmFtZS5sYXN0SW5kZXhPZigiLyIpKSArICciJyk7Cit9CisKK2Z1bmN0aW9uIHByZWFtYmxlKGV2
dCkKK3sKKyAgICBpZiAoZXZ0KQorICAgICAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcocHJlYW1ibGUuY2FsbGVyLm5hbWUgKyAiKCk6Iik7Cit9CisKIC8vIEZvciBX
b3JrZXJzCiBpZiAoIXNlbGYuRE9NRXhjZXB0aW9uKSB7CiAgICAgc2VsZi5ET01FeGNlcHRpb24g
PSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155623</attachid>
            <date>2012-07-31 13:31:51 -0700</date>
            <delta_ts>2012-07-31 16:12:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92560-20120731133134.patch</filename>
            <type>text/plain</type>
            <size>68585</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUzOGRjNTlmNTEwZmY5MTBjZDM4
ZmVjZmFmOTI2NTY3NzRiZTg3My4uZGFkZWNiNzg0ZTNkODQyZGUxZDQ3MDdlZGIxMGZkZTJiYzVh
NDU0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA3LTMxICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IGludGVnZXIgdmVyc2lv
biBsYXlvdXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkyNTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW9zdCBvZiB0aGUgaW50ZWdlciB2ZXJzaW9uIGxheW91dCB0ZXN0cyBhcmUgaGVyZSwg
d2l0aCBmYWlsdXJlcyBpbgorICAgICAgICB0aGUgZXhwZWN0ZWQgZmlsZXMuICBUaGlzIHdpbGwg
YWxsb3cgdXMgdG8gaW5jcmVtZW50YWxseSBpbXBsZW1lbnQKKyAgICAgICAgdXBncmFkZW5lZWRl
ZCBhbmQgaW50ZWdlciB2ZXJzaW9ucyBhbmQganVzdCBtYWtlIHRoZSBiaWcgcGF0Y2ggaW4gYnVn
CisgICAgICAgIDg5NTA1IHNtYWxsZXIuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBhZGRlZCBz
a2lwcyB0byBUZXN0RXhwZWN0YXRpb25zLCBvbmUgdGVzdCBleHBvc2VzIGEgYnVnCisgICAgICAg
IGluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBjYXVzaW5nIGFuIGFzc2VydCB0byBmYWls
LiAgVGhlIG90aGVyCisgICAgICAgIHRpbWVzIG91dCBpbiBEUlQgc28gd2Ugd2lsbCBydW4gaXQg
YXMgYSBjb250ZW50X2Jyb3dzZXJ0ZXN0IGZvciB0aGUKKyAgICAgICAgdGltZSBiZWluZy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQt
c2V0dmVyc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0
d2Vlbi1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4t
dXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVl
ZGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24t
ZGVsZXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0
dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1l
dGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgYW5kIHRoZWlyIHJlc3BlY3RpdmUganMgZmlsZXMuLi4K
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAg
ICAodW5leHBlY3RlZFZlcnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChzZXREQk5hbWVG
cm9tUGF0aCk6CisgICAgICAgIChwcmVhbWJsZSk6CisKIDIwMTItMDctMjYgIE5heWFuIEt1bWFy
IEsgIDxuYXlhbmtrQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEluaXRpYWwgc2l6
ZSBvZiBjYW52YXMgY2FuIGJlIGxhcmdlciB0aGFuIE1BWF9WSUVXUE9SVF9ESU1TLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjQxMzkw
OTA0ZjY3Mjc4NTZiN2YwZjZiNzkzMTZiMjIxYmE5YjBjYy4uNGY3M2NiYjZhM2Q0ZmU5MjkwZDU1
NjIwZTZmNzZiYmE4OTZiZmYzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNjYzLDMgKzM2NjMsOCBAQCBCVUdXSzkyMDI2IERFQlVH
IFNOT1dMRU9QQVJEIDogY3NzMy9zZWxlY3RvcnMzL3htbC9jc3MzLW1vZHNlbC0xNzlhLnhtbCA9
IFBBU1MgSQogQlVHV0s5MjAyNyBERUJVRyBTTk9XTEVPUEFSRCA6IGZhc3QvcGVyZm9ybWFuY2Uv
cGVyZm9ybWFuY2Utbm93LXRpbWVzdGFtcHMuaHRtbCA9IFBBU1MgVEVYVAogQlVHV0s5MjI4OCBT
Tk9XTEVPUEFSRCBERUJVRyA6IHBsdWdpbnMvdXBkYXRlLXdpZGdldHMtY3Jhc2guaHRtbCA9IFBB
U1MgVElNRU9VVAogQlVHV0s5MjI5NyBERUJVRyA6IG1lZGlhL3ZpZGVvLXNldC1yYXRlLWZyb20t
cGF1c2UuaHRtbCA9IFBBU1MgQ1JBU0gKKworLy8gVGltZXMgb3V0IGluIERSVCwgYnV0IHdvcmtz
IGluIGNocm9tZQorQlVHV0s5Mjc3NiBTS0lQIDogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC5odG1sID0gUEFTUworLy8gRmFpbHMgYW4gQVNTRVJU
IHVudGlsIHRoZSBiaWcgcGF0Y2ggaW4gODk1MDUgbGFuZHMuCitCVUdXSzkyNzgzIFNLSVAgOiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbCA9IFBBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4t
aW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45OTA4M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1YTdkODkyYWE2
YTYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTggQEAKK1Rlc3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVl
ZGVkIHNldHMgdmVyc2lvbiBiYWNrIHRvIDAKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8
IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERC
OworCitkYm5hbWUgPSAiaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQu
aHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Blbihk
Ym5hbWUsIDIpCityZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQKK0ZJWE1F
OiBUaGlzIHNob3VsZCBnZXQgYW4gZXJyb3IgZXZlbnQgb2YgdHlwZSBBYm9ydEVycm9yCityZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjaworRkFJTCBTdWNjZXNzIGZ1bmN0
aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11
cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY4YWMwZDBlN2M5ODA1NTIzZGU0OGNhMDMy
MTc2MWIzZjI1M2Y3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKQEAg
LTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyMjJjYTE1ZDA5Yzc0ZDNhMmY0NDc5OGQyMGJk
YzE4ZTUzMjUxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUw
IEBACitUZXN0IHRoYXQgaW50IHZlcnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQg
dGhhdCBzdHJpbmcgdmVyc2lvbnMgYXJlIHRoZW4gZGlzYWxsb3dlZAorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0
bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorRkFJTCBTdHJpbmcocmVxdWVz
dCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlZl
cnNpb25DaGFuZ2VSZXF1ZXN0XS4KKworQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0
ZXI6CitpbmRleGVkREIub3BlbihkYm5hbWUpCisKK29wZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAiIgorcmVxdWVzdCA9IGRiLnNldFZl
cnNpb24oInNvbWUgdmVyc2lvbiIpCisKK2luU2V0VmVyc2lvbigpOgorUEFTUyBkYi52ZXJzaW9u
IGlzICJzb21lIHZlcnNpb24iCisKK3NldFZlcnNpb25Eb25lKCk6CitQQVNTIGRiLnZlcnNpb24g
aXMgInNvbWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3Jl
cXVlc3Qub25zdWNjZXNzID0gc2Vjb25kT3BlbgorCitzZWNvbmRPcGVuKCk6CitkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKK1BBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0i
CitQQVNTIGRiLnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK3JlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCisKK2ZpcnN0T3BlbldpdGhWZXJzaW9uKCk6CitG
QUlMIGRpZFRyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Ri
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRh
dGFiYXNlXSIKK1BBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCitGQUlMIGRiLnZlcnNp
b24gc2hvdWxkIGJlIDIgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAob2YgdHlw
ZSBzdHJpbmcpLgorRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3Bl
bkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlJlcXVlc3RdLgorcmVxdWVzdCA9IGRiLnNldFZl
cnNpb24oInN0cmluZyB2ZXJzaW9uIDIiKQorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmpl
Y3QgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RdIgorcmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lv
bk5vdEFsbG93ZWQKK0ZBSUwgU3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5Lgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZl
cnNpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5k
LXNldHZlcnNpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDZkZWQzOWUwMTNmM2NjNTU3Y2JiNjA4M2Y4
ZTc2ZmFjMjI4ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNp
b24tYW5kLXNldHZlcnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJs
b2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWMzY2NmMmMzNGJmZjA5NDk0
M2U2MTNmYTBkYjYzODdkZmJhMzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI2IEBACitUZXN0IHRoYXQgYmxvY2tlZCBldmVudHMgZ2V0IGRlbGl2ZXJlZCBwcm9wZXJseSB3
aXRoIHRoZSBuZXcgb3BlbiBhcGkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2lu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitk
Ym5hbWUgPSAiaW50dmVyc2lvbi1ibG9ja2VkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQorCitkZWxldGVTdWNjZXNzKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAyKQorCitmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RV
cGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24x
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVy
c2lvbkNoYW5nZUhhbmRsZXIKK1BBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBpcyAiW29iamVjdCBJ
REJEYXRhYmFzZV0iCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorCitzZWNv
bmRTdWNjZXNzQ2FsbGJhY2soKToKK0ZBSUwgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzg3ZGVlYjgwNDA0YTU5
NzcxMmEzM2FkYzg2YTE4YzYzZWU0ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSwxMCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50
dmVyc2lvbi1ibG9ja2VkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9z
ZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMDYwOWVlNGMwNWExZTdkYTFhOGU5MWE5ZTlhODg5MzA4ODBkZmYwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1i
ZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVHJ5IHRvIGNhbGwg
ZGIuY2xvc2UoKSBhZnRlciB1cGdyYWRlbmVlZGVkIGJ1dCBiZWZvcmUgdGhlIGNvcnJlc3BvbmRp
bmcgc3VjY2VzcyBldmVudCBmaXJlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisK
K2RibmFtZSA9ICJpbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWwiCitpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgNykKKworCitvcGVuU3VjY2VzcygpOgorUEFTUyBkaWRDYWxsQ2xvc2VEQiBpcyBmYWxzZQor
RkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK0ZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2Yg
dHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2
ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllMGUzYzFhNzI4YzczZDVhMjcwMmQxMzE1NTA1NDhlNDZm
MTE2ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lv
bi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU2NWVkYjI0YmRkNmUyMTk3MzI1MjRjMTE5NThiZTI0MGM5M2Y4Y2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NhbGwgZGIu
Y2xvc2UoKSBpbiB0aGUgY29tcGxldGUgaGFuZGxlciBmb3IgYSB2ZXJzaW9uIGNoYW5nZSB0cmFu
c2FjdGlvbiwgYmVmb3JlIHRoZSBzdWNjZXNzIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgb3Bl
biBjYWxsIGZpcmVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIg
PSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4
ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0g
ImludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCisKK29w
ZW5TdWNjZXNzKCk6CitGQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNo
b3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK0V4cGVj
dGluZyBleGNlcHRpb24gZnJvbSB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycsICdy
ZWFkd3JpdGUnKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK0ZBSUwgY29kZSBzaG91bGQg
YmUgMTEuIFdhcyA4LgorRkFJTCBlbmFtZSBzaG91bGQgYmUgSW52YWxpZFN0YXRlRXJyb3IuIFdh
cyBOb3RGb3VuZEVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTU5YzYwNWIwM2Q2ODEwYTM2NjcwYWNmYTUyNzVjMjBhMjgyOTY1YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25j
b21wbGV0ZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZWQ4NWQ0
ODE5ZGQwMGEzZTBlMzRhYzljNDRkMjljYzRkYTFkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Rlc3QgdGhhdCB3aGVuIGRiLmNsb3Nl
IGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVkLCB0aGUgZGIgaXMgY2xlYW5lZCB1cCBvbiByZWZy
ZXNoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJz
aW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQorCisKK29wZW5T
dWNjZXNzKCk6CitGQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3Vs
ZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJykKK0ZBSUwgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2Fj
dGlvbignb3MnKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBJREJE
YXRhYmFzZSBFeGNlcHRpb24gOAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzBiYTU4NGUyYmRiMGIzYzJlZGMyM2JjNTA5Y2YxYjBlNGRkOTUzNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xv
c2UtaW4tdXBncmFkZW5lZWRlZC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4t
dXBncmFkZW5lZWRlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRl
LWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzE0ZDI5YzA2NzI1NWMwNmE3ZjUzMmUxN2FlYzkyYTdiNWJhOWY5MwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVs
ZXRlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDEgQEAKK1Rlc3Qg
dGhhdCBhIGRlbGV0ZURhdGFiYXNlIGNhbGxlZCB3aGlsZSBoYW5kbGluZyBhbiB1cGdyYWRlbmVl
ZGVkIGV2ZW50IGlzIHF1ZXVlZCBhbmQgZmlyZXMgaXRzIGV2ZW50cyBhdCB0aGUgcmlnaHQgdGlt
ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9u
LWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQorCitpbml0aWFsbHlEZWxldGVkKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAxKQorCitmaXJzdFVwZ3JhZGVOZWVkZWQoKToKK1BBU1Mgc2F3Rmlyc3RVcGdyYWRl
TmVlZGVkIGlzIGZhbHNlCitzYXdGaXJzdFVwZ3JhZGVOZWVkZWQgPSB0cnVlCitQQVNTIGV2ZW50
Lm9sZFZlcnNpb24gaXMgMAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgYWxyZWFk
eURlbGV0ZWQgaXMgZmFsc2UKK2RlbGV0ZVJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQorcmVxdWVzdDIub25zdWNjZXNzID0gZGVsZXRlRnJvbVVwZ3JhZGVOZWVkZWRT
dWNjZXNzCisKK3JlcXVlc3Qub25zdWNjZXNzKCk6CitQQVNTIHNhd0ZpcnN0VXBncmFkZU5lZWRl
ZCBpcyB0cnVlCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAx
CisKK3ZlcnNpb25DaGFuZ2VDYWxsYmFjaygpOgorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3Vs
ZCBiZSAxIChvZiB0eXBlIG51bWJlcikuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVk
KS4KK0ZBSUwgZXZlbnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3Qp
LiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitzYXdWZXJzaW9uQ2hhbmdlID0g
dHJ1ZQorZGIuY2xvc2UoKQorCitkZWxldGVCbG9ja2VkQ2FsbGJhY2soKToKK1RoaXMgc2hvdWxk
bid0IGhhcHBlbiBidXQgZm9yIHRoZSBsb25nc3RhbmRpbmcgaHR0cDovL2NyYnVnLmNvbS8xMDAx
MjMKKworZGVsZXRlRnJvbVVwZ3JhZGVOZWVkZWRTdWNjZXNzKCk6CitQQVNTIHNhd1ZlcnNpb25D
aGFuZ2UgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzE0OWZhNTkyNTY0ZDFhMGExMmE2Y2MyZmNlMWE5NDdhYjFkNDExMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWlu
LXVwZ3JhZGVuZWVkZWQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdy
YWRlbmVlZGVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1k
ZWxldGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMTUzZDBkOTRl
MjA4YzFmM2E0ZWE0Y2JiNmVkYTg1Yzk3YjNiODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1NCBAQAorVGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVk
IGNvcnJlY3RseSB3aGVuIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVkIGJlaGlu
ZCBhIGRlbGV0ZURhdGFiYXNlIGNhbGwKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNl
bGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwor
CitkYm5hbWUgPSAiaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuaHRtbCIKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRl
eGVkREIub3BlbihkYm5hbWUpCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3VjY2Vzc0NhbGxi
YWNrCisKK2ZpcnN0U3VjY2Vzc0NhbGxiYWNrKCk6Citjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKK2Nvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lv
bkNoYW5nZUNhbGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2sKK3JlcXVlc3QgPSBpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorcmVxdWVzdC5vbmJsb2NrZWQgPSBkZWxldGVEYXRhYmFz
ZUJsb2NrZWRDYWxsYmFjaworcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nl
c3NDYWxsYmFjaworcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkKK3JlcXVlc3Qu
b251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3VjY2Vz
cyA9IG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaworCitzZWNvbmRTdWNjZXNzQ2FsbGJh
Y2soKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGIub252ZXJzaW9uY2hhbmdlID0gY29u
bmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2sKKworY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdl
Q2FsbGJhY2soKToKK1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK2V2ZW50LnZl
cnNpb24gPSAKKworY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKToKK1BBU1MgZXZl
bnQudHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK2V2ZW50LnRhcmdldC5jbG9zZSgpCisKK2RlbGV0
ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrKCk6CitGSVhNRTogdGhpcyBmdW5jdGlvbiBzaG91bGQg
b25seSBiZSBjYWxsZWQgb25jZSwgaHR0cDovL2NyYnVnLmNvbS8xMzk2OTUKK2Nvbm5lY3Rpb24x
LmNsb3NlKCkKKworZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2soKToKK0ZJWE1FOiB0aGlz
IGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlLCBodHRwOi8vY3JidWcuY29tLzEz
OTY5NQorY29ubmVjdGlvbjEuY2xvc2UoKQorCitkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFj
aygpOgorCitvcGVuV2l0aFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFy
Z2V0LnJlc3VsdC5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTE5NWI2ZGY5ZGNhMTk3MDJhMzc1ZDM5OTc5NTQzZmFiZjBmN2YwNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tZ2F0ZWQtb24tZGVsZXRlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1nYXRlZC1vbi1k
ZWxldGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVy
c2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVm
ZmVjdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NGU1YWE3ZmJhYzY4ZmE1MWZkZGE1MWE1
NGZmZTUzZjZiOWNhNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3Rz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBACitUZXN0IHRoYXQgd2hlbiBzZXRWZXJzaW9u
IGlzIGNhbGxlZCBvbiBhIGRiIHdpdGggYW4gaW50ZWdlciB2ZXJzaW9uLCB2ZXJzaW9uY2hhbmdl
IGV2ZW50cyBkb24ndCBnZXQgZmlyZWQgb24gb3RoZXIgb3BlbiBkYnMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndl
YmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8
IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24taW52YWxpZC1zZXR2ZXJz
aW9uLWhhcy1uby1zaWRlLWVmZmVjdHMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5h
bWUsIDIpCisKK2ZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgorRkFJTCBnb3RGaXJzdFVwZ3Jh
ZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorY29ubmVjdGlvbjEgPSBl
dmVudC50YXJnZXQucmVzdWx0Citjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB1bmV4cGVj
dGVkVmVyc2lvbkNoYW5nZUNhbGxiYWNrCitQQVNTIFN0cmluZyhjb25uZWN0aW9uMSkgaXMgIltv
YmplY3QgSURCRGF0YWJhc2VdIgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKKwor
c2Vjb25kU3VjY2Vzc0NhbGxiYWNrKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uJykKK3JlcXVlc3Qub25lcnJvciA9IHNldFZlcnNp
b25FcnJvcgorcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrCity
ZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2sKK0ZBSUwgb252ZXJz
aW9uY2hhbmdlIGNhbGxlZCB1bmV4cGVjdGVkbHkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZl
Y3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFs
aWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI5YTAz
YjM3MzRhMzI3NDEyMDE4OTY4YmI1OWYzN2NiYWZiMTZhOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9u
LWhhcy1uby1zaWRlLWVmZmVjdHMuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWludmFsaWQt
c2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2VmZjA5NWMzZjYzOTA3Njc5MzY5NGQxNTdlNmZhMTMyMDFiMzY3YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OSBAQAorVGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVj
cmVhdGVkIGNvcnJlY3RseSB3aGVuIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVk
IGJlaGluZCBib3RoIGEgZGVsZXRlRGF0YWJhc2UgYW5kIHNldFZlcnNpb24gY2FsbAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwg
c2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4
ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWxvbmctcXVl
dWUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nl
c3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCityZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGZpcnN0U3VjY2Vzc0NhbGxiYWNrCisKK2ZpcnN0U3VjY2Vzc0NhbGxiYWNrKCk6Citjb25u
ZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2Nvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5n
ZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2sK
Kworc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKCk6Citjb25uZWN0aW9uMiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQKK2Nvbm5lY3Rpb24yLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24yVmVyc2lvbkNo
YW5nZUNhbGxiYWNrCityZXF1ZXN0ID0gY29ubmVjdGlvbjIuc2V0VmVyc2lvbigndmVyc2lvbiAy
JykKK3JlcXVlc3Qub25ibG9ja2VkID0gc2V0VmVyc2lvbkJsb2NrZWRDYWxsYmFjaworcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrCisKK2Nvbm5lY3Rpb24xVmVy
c2lvbkNoYW5nZUNhbGxiYWNrKCk6CitQQVNTIGV2ZW50LnR5cGUgaXMgInZlcnNpb25jaGFuZ2Ui
CitQQVNTIGV2ZW50LnZlcnNpb24gaXMgInZlcnNpb24gMiIKKworc2V0VmVyc2lvbkJsb2NrZWRD
YWxsYmFjaygpOgorcmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCity
ZXF1ZXN0Lm9uYmxvY2tlZCA9IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrCityZXF1ZXN0
Lm9uc3VjY2VzcyA9IGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrCityZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCAxKQorcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRl
TmVlZGVkQ2FsbGJhY2sKK3JlcXVlc3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vz
c0NhbGxiYWNrCitjb25uZWN0aW9uMS5jbG9zZSgpCisKK3NldFZlcnNpb25TdWNjZXNzQ2FsbGJh
Y2soKToKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGIgPSB0cmFuc2FjdGlv
bi5kYgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWUgb2JqZWN0IHN0b3JlJykKK3RyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uVHJhbnNhY3Rpb25Db21wbGV0ZUNhbGxiYWNrCisK
K3NldFZlcnNpb25UcmFuc2FjdGlvbkNvbXBsZXRlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFy
Z2V0LmRiLnZlcnNpb24gaXMgInZlcnNpb24gMiIKKworY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdl
Q2FsbGJhY2soKToKK1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK0ZJWE1FOiBG
aXJlIGEgdmVyc2lvbmNoYW5nZSBldmVudCB0aGF0IGhhcyBvbGRWZXJzaW9uIGFuZCBuZXdWZXJz
aW9uCitGQUlMIGV2ZW50Lm9sZFZlcnNpb24gc2hvdWxkIGJlIHZlcnNpb24gMiAob2YgdHlwZSBz
dHJpbmcpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50Lm5l
d1ZlcnNpb24gc2hvdWxkIGJlIG51bGwgKG9mIHR5cGUgb2JqZWN0KS4gV2FzIHVuZGVmaW5lZCAo
b2YgdHlwZSB1bmRlZmluZWQpLgorRkFJTCBldmVudC52ZXJzaW9uIHNob3VsZCBiZSB1bmRlZmlu
ZWQuIFdhcyAKKworZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2soKToKK2Nvbm5lY3Rpb24y
LmNsb3NlKCkKK0ZBSUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQgYmUgdmVyc2lvbiAyIChvZiB0
eXBlIHN0cmluZykuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZl
bnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3QpLiBXYXMgdW5kZWZp
bmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50LnZlcnNpb24gc2hvdWxkIGJlIHVu
ZGVmaW5lZC4gV2FzIAorCitkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaygpOgorRkFJTCBl
dmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSBub24tbnVsbC4gV2FzIHVuZGVmaW5lZAorRkFJTCBl
dmVudC5uZXdWZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0eXBlIG9iamVjdCkuIFdhcyB1bmRl
ZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdCBpcyBu
dWxsCisKK3VwZ3JhZGVOZWVkZWRDYWxsYmFjaygpOgorZ290VXBncmFkZU5lZWRlZEV2ZW50ID0g
dHJ1ZQorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBp
cyAwCisKK29wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaygpOgorUEFTUyBnb3RVcGdyYWRl
TmVlZGVkRXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3Jl
TmFtZXMubGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4ZWU3NTA2YzgzYmI1NDJk
Zjg4ZTIyYWE1ZjBkMjlkY2Q4ZjYxYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVk
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9p
bnR2ZXJzaW9uLWxvbmctcXVldWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LW9taXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJm
Y2YwYjdmZTU3ZjQ3NzA0NzhhYTVlYjc0YjM5YWEzMTUzODAwMDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0IHRoYXQgaW5pdGlhbCB2ZXJzaW9u
IGFmdGVyIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIGEgbm9uLWV4aXN0ZW50IGRiIGlzIDEKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8
IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRl
eGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lvbi1vbWl0LXBh
cmFtZXRlci5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWRE
Qi5vcGVuKGRibmFtZSkKKworb3BlblN1Y2Nlc3MoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAorVGVzdCBsaW5lIGZyb20gSURCRmFjdG9yeS5vcGVuOiBJZiBubyB2ZXJzaW9uIGlzIHNwZWNp
ZmllZCBhbmQgbm8gZGF0YWJhc2UgZXhpc3RzLCBzZXQgZGF0YWJhc2UgdmVyc2lvbiB0byAxLgor
RkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSAxIChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5
cGUgc3RyaW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLW9taXQtcGFyYW1ldGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJiNTRhMjBkYmE0ZTVh
ZWE2ZDcyOTM4MjcwZDE1M2M4NzYwMmRlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbApAQCAtMCww
ICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMzcwY2FkMDA0NzE2YzNkNDljOWI4NWIxNWY4NmE5ZDk5Y2VhZGRiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGVzdCB0
aGF0IHNwZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBj
YXVzZXMgYW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIg
aXMgc2V0IGNvcnJlY3RseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4
ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96
SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5h
bWUgPSAiaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sIgoraW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkKK1Nob3VsZCB0cmlnZ2VyOgorNC4xLjQ6IElmIG5vIGRhdGFiYXNl
IHdpdGggdGhlIGdpdmVuIG5hbWUgZnJvbSB0aGUgb3JpZ2luIG9yaWdpbiB3YXMgZm91bmQsIG9y
IGlmIGl0IHdhcyBkZWxldGVkIGR1cmluZyB0aGUgcHJldmlvdXMgc3RlcCwgdGhlbiBjcmVhdGUg
YSBkYXRhYmFzZSB3aXRoIG5hbWUgbmFtZSwgd2l0aCAwIGFzIHZlcnNpb24sIGFuZCB3aXRoIG5v
IG9iamVjdCBzdG9yZXMuIExldCBkYiBiZSB0aGUgbmV3IGRhdGFiYXNlLgorNC4xLjY6IENyZWF0
ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGRiIGFuZCBsZXQgY29ubmVjdGlvbiByZXByZXNlbnQgaXQu
Cis0LjEuNzogSWYgdGhlIHZlcnNpb24gb2YgZGIgaXMgbG93ZXIgdGhhbiB2ZXJzaW9uLCB0aGVu
IHJ1biB0aGUgc3RlcHMgZm9yIHJ1bm5pbmcgYSAidmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24g
dXNpbmcgY29ubmVjdGlvbiwgdmVyc2lvbiwgcmVxdWVzdCBhbmQgdXBncmFkZSBjYWxsYmFjay4K
KzQuMS45OiBSZXR1cm4gY29ubmVjdGlvbi4KK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5h
bWUsIDcpCitGQUlMIFN0cmluZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJS
ZXF1ZXN0XS4gV2FzIFtvYmplY3QgSURCUmVxdWVzdF0uCisKKworb3BlblN1Y2Nlc3MoKToKK1Rl
c3QgNC4xLjcsIHRoYXQgYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBydW4uCitGQUlM
IHNhd1VwZ3JhZGVOZWVkZWQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK0ZBSUwgc2F3VHJh
bnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50
YXJnZXQucmVzdWx0CitLaW5kIG9mIHRlc3QgNC4xLjk6CitQQVNTIFN0cmluZyhkYikgaXMgIltv
YmplY3QgSURCRGF0YWJhc2VdIgorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBl
IG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZThjNzNkNDRmODJiMjE3YWNlN2MxMjE3NjA4YjBhYWYxNzRhYzI5YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
b3Blbi13aXRoLXZlcnNpb24uaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12
ZXJzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJv
cnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVk
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk0NTc4NzY4MThhODUwNjE1Y2Y5NDhkOGQwYjJiNmZkOTJkYjc2NTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMKQEAgLTAsMCAr
MSw0OSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2Ny
aXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYW4gYWJvcnQg
aW4gdGhlIGluaXRpYWwgdXBncmFkZW5lZWRlZCBzZXRzIHZlcnNpb24gYmFjayB0byAwIik7CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0
REJOYW1lRnJvbVBhdGgoKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRl
U3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcygpIHsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
dW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQiKTsKKyAgICBkZWJ1ZygiRklYTUU6IFRoaXMgc2hv
dWxkIGdldCBhbiBlcnJvciBldmVudCBvZiB0eXBlIEFib3J0RXJyb3IiKTsKKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOworICAgIHJl
cXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rp
b24gdXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdy
YWRlTmVlZGVkKCk6Iik7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjIiKTsKKyAgICB0cmFuc2FjdGlv
biA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9
IG9uQWJvcnQ7CisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24uYWJvcnQoKSIpOworfQorCitm
dW5jdGlvbiBvbkFib3J0KGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9uQWJv
cnQoKToiKTsKKyAgICBldmVudCA9IGV2dDsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LmRi
LnZlcnNpb24iLCAiMCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1hbmQtc2V0dmVyc2lvbi5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwOWNhODgxMDBl
ZDAxYjgxY2E5ZWIyN2M2NWIxZTNlOTQyZjI3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lv
bi5qcwpAQCAtMCwwICsxLDE5MCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGlt
cG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7
CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0
IHRoYXQgaW50IHZlcnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJp
bmcgdmVyc2lvbnMgYXJlIHRoZW4gZGlzYWxsb3dlZCIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisK
KyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0KSIsICJbb2Jq
ZWN0IElEQk9wZW5EQlJlcXVlc3RdIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVT
dWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
fQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygiQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0ZXI6Iik7CisgICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVw
Z3JhZGVOZWVkZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRC
bG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7
CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAiIik7CisgICAgZXZhbEFuZExvZygn
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInNvbWUgdmVyc2lvbiIpJyk7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBpblNldFZlcnNpb247CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tl
ZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBpblNldFZlcnNpb24oZXZ0KQoreworICAgIGV2ZW50
ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiaW5TZXRWZXJzaW9uKCk6Iik7Cisg
ICAgdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIHRyYW5zLm9uY29tcGxldGUgPSBz
ZXRWZXJzaW9uRG9uZTsKKyAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJh
Y2s7CisgICAgZGIgPSB0cmFucy5kYjsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZl
cnNpb24iLCAic29tZSB2ZXJzaW9uIik7CisgICAgLy8gRklYTUU6IEFkZCBhIHRlc3QgdGhhdCBj
YWxscyBvcGVuIHdpdGggdmVyc2lvbiBmcm9tIGhlcmUuCit9CisKK2Z1bmN0aW9uIHNldFZlcnNp
b25Eb25lKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVi
dWcoInNldFZlcnNpb25Eb25lKCk6Iik7CisgICAgZGIgPSBldmVudC50YXJnZXQuZGI7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAg
IGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNz
ID0gc2Vjb25kT3BlbiIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVO
ZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2Vjb25kT3BlbihldnQpCit7CisgICAgZXZl
bnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzZWNvbmRPcGVuKCk6Iik7Cisg
ICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAg
IGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICAvLyBGSVhNRTogQWRkIHRlc3RzIHRoYXQg
Y2FsbCBpdCB3aXRoIDAsIC0xLCBhbmQgLTQuCisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IGZpcnN0VXBncmFkZU5lZWRlZAorICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxs
YmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0T3BlbldpdGhWZXJzaW9uOworfQor
CitmdW5jdGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0Owor
ICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RVcGdyYWRlTmVlZGVkKCk6Iik7CisgICAg
ZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcocmVxdWVzdC50cmFuc2FjdGlvbikiLCAiW29iamVj
dCBJREJUcmFuc2FjdGlvbl0iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm9s
ZFZlcnNpb24iLCAic29tZSB2ZXJzaW9uIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNp
b24iLCAiMiIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QudHJhbnNhY3Rpb24ub25jb21wbGV0
ZSA9IHRyYW5zYWN0aW9uQ29tcGxldGVkIik7CisgICAgcmVxdWVzdC50cmFuc2FjdGlvbi5vbmFi
b3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Cit9CisKK3ZhciBkaWRUcmFuc2FjdGlvbkNv
bXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRlZChldnQpCit7Cisg
ICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNv
bXBsZXRlZCgpOiIpOworICAgIGV2YWxBbmRMb2coImRpZFRyYW5zYWN0aW9uQ29tcGxldGUgPSB0
cnVlIik7Cit9CisKK2Z1bmN0aW9uIGZpcnN0T3BlbldpdGhWZXJzaW9uKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImZpcnN0T3BlbldpdGhWZXJz
aW9uKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJkaWRUcmFuc2FjdGlvbkNvbXBsZXRlIik7Cisg
ICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAg
c2hvdWxkQmVOdWxsKCJyZXF1ZXN0LnRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxkQmUoImRiLnZl
cnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3Qp
IiwgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICBldmFsQW5kTG9nKCdyZXF1ZXN0
ID0gZGIuc2V0VmVyc2lvbigic3RyaW5nIHZlcnNpb24gMiIpJyk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJTdHJpbmcocmVxdWVzdCkiLCAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJh
Y2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOwor
ICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25Ob3RBbGxvd2VkIik7
Cit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb25Ob3RBbGxvd2VkKGV2dCkKK3sKKyAgICBldmVudCA9
IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNpb25Ob3RBbGxvd2VkKCk6
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50eXBlIiwgImVycm9yIik7Cisg
ICAgZGVidWcoInJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gIiArIHJlcXVlc3Qud2Via2l0
RXJyb3JNZXNzYWdlKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgZXZhbEFu
ZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0Lm9uZXJyb3IgPSBlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uIik7CisgICAg
cmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKK30KKworZnVuY3Rpb24g
ZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uKCk6Iik7Cisg
ICAgZGVidWcoInJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gIiArIHJlcXVlc3Qud2Via2l0
RXJyb3JNZXNzYWdlKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCA0KSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRD
YWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNlY29uZFVwZ3JhZGVO
ZWVkZWQiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IHRoaXJkT3BlblN1
Y2Nlc3MiKTsKK30KKwordmFyIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWQgPSBmYWxzZTsKK2Z1bmN0
aW9uIHNlY29uZFVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1Zygic2Vjb25kVXBncmFkZU5lZWRlZCgpOiIpOworICAgIGV2YWxB
bmRMb2coImdvdFNlY29uZFVwZ3JhZGVOZWVkZWQgPSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwg
IjQiKTsKK30KKworZnVuY3Rpb24gdGhpcmRPcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQg
PSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ0aGlyZE9wZW5TdWNjZXNzKCk6Iik7
CisgICAgc2hvdWxkQmVUcnVlKCJnb3RTZWNvbmRVcGdyYWRlTmVlZGVkIik7CisgICAgZXZhbEFu
ZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNp
b24iLCAiNCIpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJl
cXVlc3Qub25zdWNjZXNzID0gZm91cnRoT3BlblN1Y2Nlc3MiKTsKKyAgICByZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7CisgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rp
b24gZm91cnRoT3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiZm91cnRoT3BlblN1Y2Nlc3MoKToiKTsKKyAgICBldmFsQW5kTG9n
KCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIs
ICI0Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1i
bG9ja2VkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMThkY2E3NzUxZGNjOTcwNDA1ODMxMzdkODI3MzkzN2U5
YjU5NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzCkBAIC0wLDAgKzEsOTAgQEAKK2lmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycp
OworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGJsb2NrZWQgZXZlbnRzIGdldCBkZWxpdmVy
ZWQgcHJvcGVybHkgd2l0aCB0aGUgbmV3IG9wZW4gYXBpIik7CisKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsK
KyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0
ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgcHJlYW1ibGUoKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
Zmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBl
Y3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKKyAgICBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IGZhbHNlOworICAg
IHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9
CisKK2Z1bmN0aW9uIGZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVh
bWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0g
dHJ1ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91
bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJTdHJpbmcoZXZlbnQpIiwgIltvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XSIpOworfQor
Citnb3RCbG9ja2VkRXZlbnQgPSBmYWxzZTsKK2Z1bmN0aW9uIGZpcnN0U3VjY2Vzc0V2ZW50SGFu
ZGxlcihldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZVRydWUoImdvdEZp
cnN0VXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEub252ZXJz
aW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIlN0cmluZyhjb25uZWN0aW9uMSkiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKSIpOworICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2Vk
ID0gYmxvY2tlZEV2ZW50SGFuZGxlcjsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNl
Y29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXI7Cit9CisKK3ZhciBzYXdWZXJzaW9uQ2hhbmdl
RXZlbnQgPSBmYWxzZTsKK2Z1bmN0aW9uIHZlcnNpb25DaGFuZ2VIYW5kbGVyKGV2dCkKK3sKKyAg
ICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coInNhd1ZlcnNpb25DaGFuZ2VFdmVudCA9
IHRydWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lv
bmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGV2ZW50KSIsICJb
b2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0iKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFy
Z2V0IiwgImNvbm5lY3Rpb24xIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAi
MiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjMiKTsKK30KKworZnVuY3Rp
b24gYmxvY2tlZEV2ZW50SGFuZGxlcihldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBz
aG91bGRCZVRydWUoInNhd1ZlcnNpb25DaGFuZ2VFdmVudCIpOworICAgIGV2YWxBbmRMb2coImdv
dEJsb2NrZWRFdmVudCA9IHRydWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmlu
ZyhldmVudCkiLCAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdIik7CisgICAgc2hvdWxk
QmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJz
aW9uIiwgIjMiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAiYmxv
Y2tlZCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsKK30KKworZ290
U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiBzZWNvbmRVcGdyYWRl
TmVlZGVkRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3Vs
ZEJlVHJ1ZSgiZ290QmxvY2tlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiZ290U2Vjb25kVXBn
cmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOworfQorCitmdW5jdGlvbiBzZWNvbmRTdWNjZXNzQ2Fs
bGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RT
ZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVz
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NDNkMjBhYTJjZjBhZDllZTU5YTAzMGMzN2I5N2FlMzU1ZmRjOTEwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lu
dHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMuanMKQEAgLTAsMCArMSw3MyBAQAoraWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpz
Jyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUcnkgdG8gY2FsbCBkYi5jbG9zZSgpIGFmdGVyIHVwZ3Jh
ZGVuZWVkZWQgYnV0IGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBzdWNjZXNzIGV2ZW50IGZpcmVz
Iik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Cisg
ICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KSIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdy
YWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxs
YmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0g
ZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmFs
QW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
bmV3VmVyc2lvbiIsICI3Iik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J29iamVjdHN0b3JlJykiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQu
dGFyZ2V0LnRyYW5zYWN0aW9uIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigp
IHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygidHJhbnNhY3Rpb24ub25jb21w
bGV0ZToiKTsKKyAgICAgICAgZXZhbEFuZExvZygic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRy
dWUiKTsKKyAgICAgICAgZXZhbEFuZExvZygic2V0VGltZW91dChjbG9zZURCLCAwKSIpOworICAg
IH0KK30KKwordmFyIGRpZENhbGxDbG9zZURCID0gZmFsc2U7CitmdW5jdGlvbiBjbG9zZURCKCkK
K3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImNsb3NlREIoKToiKTsKKyAgICBldmFsQW5k
TG9nKCJkaWRDYWxsQ2xvc2VEQiA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgp
Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkK
K3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNj
ZXNzKCk6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGlkQ2FsbENsb3NlREIiKTsKKyAgICBzaG91
bGRCZVRydWUoInNhd1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCdkYi52ZXJzaW9uJywg
IjciKTsKKyAgICBpZiAoZGIudmVyc2lvbiAhPT0gNykgeworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVO
YW1lcy5sZW5ndGgiLCAiMSIpOworICAgIGV2YWxBbmRMb2coImRiLnRyYW5zYWN0aW9uKGRiLm9i
amVjdFN0b3JlTmFtZXMpIik7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxl
dGUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1jbG9zZS1pbi1vbmNvbXBsZXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NDRhNTdkNGEzYjkxOGMxMThj
MWFjNWFjZDAwOTY4MWExZGNmOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmpz
CkBAIC0wLDAgKzEsNTggQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRT
Y3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAg
IGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiQ2FsbCBkYi5j
bG9zZSgpIGluIHRoZSBjb21wbGV0ZSBoYW5kbGVyIGZvciBhIHZlcnNpb24gY2hhbmdlIHRyYW5z
YWN0aW9uLCBiZWZvcmUgdGhlIHN1Y2Nlc3MgZXZlbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcGVu
IGNhbGwgZmlyZXMiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAg
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpIik7CisgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5l
ZWRlZCA9IHVwZ3JhZGVOZWVkZWQ7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVk
QmxvY2tlZENhbGxiYWNrOworfQorCit2YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNl
OworZnVuY3Rpb24gdXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkKCk6Iik7CisgICAgZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1Zl
cnNpb24iLCAiNyIpOworICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycp
Iik7CisKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2Fj
dGlvbiIpOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFj
azsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7
CisgICAgICAgIGV2YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7Cisg
ICAgICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9w
ZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAg
ZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdUcmFuc2FjdGlv
bkNvbXBsZXRlIik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJywgJ3JlYWR3cml0ZScpIiwg
IkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3Jh
ZGVuZWVkZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50
dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxNWMzZDIyMWY0
N2Y3Nzc0ODRjZjRmMTA5ODcwMTk5ODQ5ZjJlODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdy
YWRlbmVlZGVkLmpzCkBAIC0wLDAgKzEsNTggQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsK
KyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlv
bigiVGVzdCB0aGF0IHdoZW4gZGIuY2xvc2UgaXMgY2FsbGVkIGluIHVwZ3JhZGVuZWVkZWQsIHRo
ZSBkYiBpcyBjbGVhbmVkIHVwIG9uIHJlZnJlc2guIik7CisKK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKwor
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRl
U3VjY2VzcyhldnQpIHsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCA3KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAg
cmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25i
bG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisK
K3ZhciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVl
ZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
InVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI3Iik7CisKKyAgICBl
dmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIpOworICAg
IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpIik7CisgICAgZXZhbEFuZExv
ZygiZGIuY2xvc2UoKSIpOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJv
cnRDYWxsYmFjazsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6
Iik7CisgICAgICAgIGV2YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7
CisgICAgfQorfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBl
dnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIHNo
b3VsZEJlVHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSIpOworICAgIGRiID0gZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24n
LCAiNyIpOworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29z
JykiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZGVsZXRlLWlu
LXVwZ3JhZGVuZWVkZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Zjgw
ZTc0MDZiOGIxYjQ2NzY5NDliNTRlM2M4MmY5NTgyZWRhY2ZiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZGVsZXRl
LWluLXVwZ3JhZGVuZWVkZWQuanMKQEAgLTAsMCArMSw4MyBAQAoraWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUZXN0IHRoYXQgYSBkZWxldGVEYXRhYmFzZSBjYWxsZWQgd2hpbGUgaGFuZGxp
bmcgYW4gdXBncmFkZW5lZWRlZCBldmVudCBpcyBxdWV1ZWQgYW5kIGZpcmVzIGl0cyBldmVudHMg
YXQgdGhlIHJpZ2h0IHRpbWUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVu
ZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBpbml0aWFsbHlEZWxldGVkOworICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCit2YXIgc2F3Rmlyc3RVcGdyYWRlTmVlZGVk
ID0gZmFsc2U7Cit2YXIgYWxyZWFkeURlbGV0ZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIGluaXRpYWxs
eURlbGV0ZWQoZXZ0KSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJpbml0aWFsbHlEZWxl
dGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgMSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkOworfQorCitmdW5jdGlvbiBmaXJzdFVwZ3Jh
ZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygiZmlyc3RVcGdyYWRlTmVlZGVkKCk6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgic2F3Rmly
c3RVcGdyYWRlTmVlZGVkIik7CisgICAgZXZhbEFuZExvZygic2F3Rmlyc3RVcGdyYWRlTmVlZGVk
ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICIxIik7CisgICAgc2hvdWxkQmVGYWxzZSgiYWxy
ZWFkeURlbGV0ZWQiKTsKKyAgICBpZiAoYWxyZWFkeURlbGV0ZWQpCisgICAgICAgIHJldHVybjsK
KyAgICBhbHJlYWR5RGVsZXRlZCA9IHRydWU7CisKKyAgICByZXF1ZXN0MiA9IGV2YWxBbmRMb2co
ImRlbGV0ZVJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAg
IGV2YWxBbmRMb2coInJlcXVlc3QyLm9uc3VjY2VzcyA9IGRlbGV0ZUZyb21VcGdyYWRlTmVlZGVk
U3VjY2VzcyIpOworICAgIHJlcXVlc3QyLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKKyAgICByZXF1ZXN0Mi5vbmJsb2NrZWQgPSBkZWxldGVCbG9ja2VkQ2FsbGJhY2s7Cit9CisK
K3Nhd1ZlcnNpb25DaGFuZ2UgPSBmYWxzZTsKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sK
KyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInJlcXVlc3Qub25z
dWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdGaXJzdFVwZ3JhZGVOZWVkZWQiKTsK
KyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkYi5vbnZl
cnNpb25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdlQ2FsbGJhY2s7CisgICAgc2hvdWxkQmUoJ2RiLnZl
cnNpb24nLCAnMScpOworfQorCitmdW5jdGlvbiB2ZXJzaW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KSB7
CisgICAgcHJlYW1ibGUoKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIxIik7
CisgICAgc2hvdWxkQmVOdWxsKCJldmVudC5uZXdWZXJzaW9uIik7CisgICAgZXZhbEFuZExvZygi
c2F3VmVyc2lvbkNoYW5nZSA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7
Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZUJsb2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1i
bGUoKTsKKyAgICBkZWJ1ZygiVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBmb3IgdGhlIGxvbmdz
dGFuZGluZyBodHRwOi8vY3JidWcuY29tLzEwMDEyMyIpOworfQorCitmdW5jdGlvbiBkZWxldGVG
cm9tVXBncmFkZU5lZWRlZFN1Y2Nlc3MoZXZ0KQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygiZGVsZXRlRnJvbVVwZ3JhZGVOZWVkZWRTdWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVl
KCJzYXdWZXJzaW9uQ2hhbmdlIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2
ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmFl
YmE3NzJlZjdkZDI2YWU1Yzc0YWYzZjVhZDQ4ZDJlYmRhOGUzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZ2F0ZWQt
b24tZGVsZXRlLmpzCkBAIC0wLDAgKzEsOTUgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsK
KyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlv
bigiVGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVkIGNvcnJlY3RseSB3aGVuIGFuIG9w
ZW4td2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVkIGJlaGluZCBhIGRlbGV0ZURhdGFiYXNlIGNh
bGwiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
KyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBwcmVhbWJsZShl
dnQpOworICAgIGRlYnVnZ2VyOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJz
dFN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBmaXJzdFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7Cisg
ICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmaXJzdFN1Y2Nlc3ND
YWxsYmFjaygpOiIpCisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0g
Y29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2siKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qu
b25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0g
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0Lm9uYmxvY2tlZCA9IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZh
bEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFj
ayIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworCisg
ICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRDYWxs
YmFjayIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJz
aW9uU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVk
QmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworfQorCitmdW5jdGlvbiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2soZXZ0KQoreworICAg
IHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7CisgICAgZXZhbEFuZExvZygiZGIub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjJWZXJz
aW9uQ2hhbmdlQ2FsbGJhY2siKTsKK30KKworZnVuY3Rpb24gY29ubmVjdGlvbjFWZXJzaW9uQ2hh
bmdlQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJldmVudC50eXBlIiwgInZlcnNpb25jaGFuZ2UiKTsKKyAgICBkZWJ1ZygiZXZl
bnQudmVyc2lvbiA9ICIgKyBldmVudC52ZXJzaW9uKTsKK30KKworZnVuY3Rpb24gY29ubmVjdGlv
bjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50eXBlIiwgInZlcnNpb25jaGFuZ2UiKTsKKyAg
ICBldmFsQW5kTG9nKCJldmVudC50YXJnZXQuY2xvc2UoKSIpOworfQorCitmdW5jdGlvbiBkZWxl
dGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAg
ICBkZWJ1ZygiRklYTUU6IHRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2Us
IGh0dHA6Ly9jcmJ1Zy5jb20vMTM5Njk1Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEu
Y2xvc2UoKSIpOworfQorCitmdW5jdGlvbiBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayhl
dnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKK30KKworZnVuY3Rpb24gdXBncmFkZU5lZWRlZENh
bGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlKCJldmVudC5u
ZXdWZXJzaW9uIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7
Cit9CisKK2Z1bmN0aW9uIG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjayhldnQpCit7Cisg
ICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmpl
Y3RTdG9yZU5hbWVzLmxlbmd0aCIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rl
c3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24taW52YWxp
ZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMxMjBkNDI1
YWRjYTFmNjZlY2Q3MzUxOWMyNWE3NDVhYjBhYWYyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWludmFsaWQtc2V0
dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmpzCkBAIC0wLDAgKzEsNzUgQEAKK2lmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycp
OworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdoZW4gc2V0VmVyc2lvbiBpcyBjYWxsZWQg
b24gYSBkYiB3aXRoIGFuIGludGVnZXIgdmVyc2lvbiwgdmVyc2lvbmNoYW5nZSBldmVudHMgZG9u
J3QgZ2V0IGZpcmVkIG9uIG90aGVyIG9wZW4gZGJzLiIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7Cisg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVT
dWNjZXNzKGV2dCkgeworICAgIHByZWFtYmxlKCk7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZp
cnN0U3VjY2Vzc0V2ZW50SGFuZGxlcjsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0
ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKKyAgICBy
ZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrOworfQor
CitmdW5jdGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1i
bGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRy
dWUiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7CisgICAgc2hvdWxk
QmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMiIpOworfQorCitmdW5jdGlvbiBmaXJzdFN1Y2Nlc3NF
dmVudEhhbmRsZXIoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVUcnVl
KCJnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rp
b24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24x
Lm9udmVyc2lvbmNoYW5nZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2siKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhjb25uZWN0aW9uMSkiLCAiW29iamVjdCBJ
REJEYXRhYmFzZV0iKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNr
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJl
cXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisK
K2Z1bmN0aW9uIHNlY29uZFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0
KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFs
QW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbicpIik7CisgICAgZXZhbEFu
ZExvZygicmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbkVycm9yIik7CisgICAgZXZhbEFuZExv
ZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrIik7CisgICAg
ZXZhbEFuZExvZygicmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNr
Iik7Cit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb25FcnJvcihldnQpCit7CisgICAgcHJlYW1ibGUo
KTsKKyAgICBkZWJ1ZygiT3BlbiB1cCBhIG5ldyBkYiB0byBlbnN1cmUgdGhhdCBpZiBjb25uZWN0
aW9uMSB3ZXJlIHRvIGdldCBhIHZlcnNpb25jaGFuZ2UgZXZlbnQsIGl0IHdpbGwgYmUgZGVsaXZl
cmVkIGJlZm9yZSB0aGUgdGVzdCBmaW5pc2hlcyIpOworICAgIGV2YWxBbmRMb2coIm5ld19kYiA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSArICcyJykiKTsKKyAgICBldmFsQW5kTG9nKCJuZXdfZGIu
b25zdWNjZXNzID0gbmV3REJTdWNjZXNzIik7CisgICAgbmV3X2RiLm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICBuZXdfZGIub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2Nr
ZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gbmV3REJTdWNjZXNzKGV2dCkKK3sKKyAgICBwcmVh
bWJsZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1sb25nLXF1
ZXVlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24tbG9uZy1xdWV1ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjEzYWQ5OTIxMDQ5Y2M4OWQ4Zjk0YzhlYzFm
MjVhN2NmOTMyZDA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5qcwpAQCAtMCwwICsxLDEzMiBA
QAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygn
c2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYSBkYXRhYmFzZSBpcyBy
ZWNyZWF0ZWQgY29ycmVjdGx5IHdoZW4gYW4gb3Blbi13aXRoLXZlcnNpb24gY2FsbCBpcyBxdWV1
ZWQgYmVoaW5kIGJvdGggYSBkZWxldGVEYXRhYmFzZSBhbmQgc2V0VmVyc2lvbiBjYWxsIik7CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0
REJOYW1lRnJvbVBhdGgoKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRl
bGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1
Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9
CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RTdWNjZXNzQ2FsbGJhY2siKTsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0
Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGZp
cnN0U3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxB
bmRMb2coImNvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRM
b2coImNvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5n
ZUNhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IHNlY29uZFN1Y2Nl
c3NDYWxsYmFjayIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJs
ZShldnQpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24yID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24yLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5l
Y3Rpb24yVmVyc2lvbkNoYW5nZUNhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9
IGNvbm5lY3Rpb24yLnNldFZlcnNpb24oJ3ZlcnNpb24gMicpIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdC5vbmJsb2NrZWQgPSBzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZh
bEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrIik7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1
bmN0aW9uIGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVh
bWJsZShldnQpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJ2ZXJz
aW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC52ZXJzaW9uIiwg
InZlcnNpb24gMiIpOworfQorCitmdW5jdGlvbiBzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNrKGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZl
cnNpb25CbG9ja2VkQ2FsbGJhY2soKToiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
Lm9uYmxvY2tlZCA9IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFu
ZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayIp
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworCisgICAg
ZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBl
dmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRDYWxsYmFj
ayIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9u
U3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxv
Y2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsKK30KKworZnVuY3Rp
b24gc2V0VmVyc2lvblN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsK
KyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAg
ICBldmFsQW5kTG9nKCJkYiA9IHRyYW5zYWN0aW9uLmRiIik7CisgICAgZXZhbEFuZExvZygiZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWUgb2JqZWN0IHN0b3JlJykiKTsKKyAgICBldmFsQW5kTG9n
KCJ0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVD
YWxsYmFjayIpOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFj
ayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImV2ZW50LnRhcmdldC5kYi52ZXJzaW9uIiwgInZlcnNpb24gMiIpOworfQorCitmdW5jdGlvbiBj
b25uZWN0aW9uMlZlcnNpb25DaGFuZ2VDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5n
ZSIpOworICAgIGRlYnVnKCJGSVhNRTogRmlyZSBhIHZlcnNpb25jaGFuZ2UgZXZlbnQgdGhhdCBo
YXMgb2xkVmVyc2lvbiBhbmQgbmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZXZlbnQub2xkVmVyc2lvbiIsICJ2ZXJzaW9uIDIiKTsKKyAgICBzaG91bGRCZU51bGwoImV2
ZW50Lm5ld1ZlcnNpb24iKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgiZXZlbnQudmVyc2lvbiIp
OworfQorCitmdW5jdGlvbiBkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjayhldnQpCit7Cisg
ICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uMi5jbG9zZSgpIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5vbGRWZXJzaW9uIiwgInZlcnNpb24g
MiIpOworICAgIHNob3VsZEJlTnVsbCgiZXZlbnQubmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJl
VW5kZWZpbmVkKCJldmVudC52ZXJzaW9uIik7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURhdGFiYXNl
U3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJl
Tm9uTnVsbCgiZXZlbnQub2xkVmVyc2lvbiIpOworICAgIHNob3VsZEJlTnVsbCgiZXZlbnQubmV3
VmVyc2lvbiIpOworICAgIHNob3VsZEJlTnVsbCgiZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworfQor
Cit2YXIgZ290VXBncmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVl
ZGVkQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygi
Z290VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdW
ZXJzaW9uIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cit9
CisKK2Z1bmN0aW9uIG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAg
cHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZVRydWUoImdvdFVwZ3JhZGVOZWVkZWRFdmVudCIp
OworICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVu
Z3RoIiwgIjAiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb21p
dC1wYXJhbWV0ZXIuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
aW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2ZlY2Q2MGI5YTRhYWIx
NzM2Y2FmNTk0ZmNhOGY5ZDgxMGY1MWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMK
QEAgLTAsMCArMSwzOSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNj
cmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAg
aW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQg
aW5pdGlhbCB2ZXJzaW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIGEgbm9uLWV4aXN0ZW50
IGRiIGlzIDEiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4
ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsK
KyAgICAgIHRlc3RQYXNzZWQoIkdvdCB1cGdyYWRlbmVlZGVkIGV2ZW50Iik7CisgICAgfQorfQor
CitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVi
dWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIGRiID0gZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZGVidWcoIlRlc3QgbGluZSBmcm9t
IElEQkZhY3Rvcnkub3BlbjogSWYgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWQgYW5kIG5vIGRhdGFi
YXNlIGV4aXN0cywgc2V0IGRhdGFiYXNlIHZlcnNpb24gdG8gMS4iKTsKKyAgICBzaG91bGRCZSgn
ZGIudmVyc2lvbicsICcxJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLW9wZW4td2l0aC12ZXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhi
MzNkNTY4ZDJjYjIzYTI2ZTQyZGI3NTA5MmRmOWM4OTNmMGFjMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4t
d2l0aC12ZXJzaW9uLmpzCkBAIC0wLDAgKzEsNzYgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMp
IHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlw
dGlvbigiVGVzdCB0aGF0IHNwZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1l
eGlzdGVudCBkYiBjYXVzZXMgYW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVy
c2lvbiBudW1iZXIgaXMgc2V0IGNvcnJlY3RseS4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIp
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3Mo
ZXZ0KSB7CisgICAgZGVidWcoIlNob3VsZCB0cmlnZ2VyOiIpOworICAgIGRlYnVnKCI0LjEuNDog
SWYgbm8gZGF0YWJhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBvcmlnaW4gb3JpZ2lu
IHdhcyBmb3VuZCwgb3IgaWYgaXQgd2FzIGRlbGV0ZWQgZHVyaW5nIHRoZSBwcmV2aW91cyBzdGVw
LCB0aGVuIGNyZWF0ZSBhIGRhdGFiYXNlIHdpdGggbmFtZSBuYW1lLCB3aXRoIDAgYXMgdmVyc2lv
biwgYW5kIHdpdGggbm8gb2JqZWN0IHN0b3Jlcy4gTGV0IGRiIGJlIHRoZSBuZXcgZGF0YWJhc2Uu
Iik7CisgICAgZGVidWcoIjQuMS42OiBDcmVhdGUgYSBuZXcgY29ubmVjdGlvbiB0byBkYiBhbmQg
bGV0IGNvbm5lY3Rpb24gcmVwcmVzZW50IGl0LiIpOworICAgIGRlYnVnKCI0LjEuNzogSWYgdGhl
IHZlcnNpb24gb2YgZGIgaXMgbG93ZXIgdGhhbiB2ZXJzaW9uLCB0aGVuIHJ1biB0aGUgc3RlcHMg
Zm9yIHJ1bm5pbmcgYSBcInZlcnNpb25jaGFuZ2VcIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0
aW9uLCB2ZXJzaW9uLCByZXF1ZXN0IGFuZCB1cGdyYWRlIGNhbGxiYWNrLiIpOworICAgIGRlYnVn
KCI0LjEuOTogUmV0dXJuIGNvbm5lY3Rpb24uIik7CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiU3RyaW5nKHJlcXVlc3QpIiwgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVl
ZGVkID0gdXBncmFkZU5lZWRlZDsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRC
bG9ja2VkQ2FsbGJhY2s7CisgICAgZGVidWcoIiIpOworfQorCit2YXIgc2F3VXBncmFkZU5lZWRl
ZCA9IGZhbHNlOwordmFyIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9u
IHVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIHRlc3RQYXNzZWQo
IkluIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IGhhbmRlcjoiKTsKKyAgICBkZWJ1ZygiVGVzdCA0
LjguOS4xOiIpOworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFi
YXNlXSIpOworICAgIGRlYnVnKCJUZXN0IDQuOC45LjM6Iik7CisgICAgc2hvdWxkQmUoImV2ZW50
Lm9sZFZlcnNpb24iLCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjci
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIiwg
ImRvbmUiKTsKKyAgICBkZWJ1ZygiVGVzdCA0LjEuNDoiKTsKKyAgICBzaG91bGRCZSgiZGIubmFt
ZSIsICJkYm5hbWUiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICI3Iik7CisgICAgc2hv
dWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAiKTsKKworICAgIGV2YWxBbmRM
b2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcodHJhbnNhY3Rpb24pIiwgIltvYmplY3QgSURCVHJhbnNh
Y3Rpb25dIik7CisgICAgZXZhbEFuZExvZygnb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29t
ZU9TIiknKTsKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJh
Y2s7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGV2
YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgfQorICAgIHNh
d1VwZ3JhZGVOZWVkZWQgPSB0cnVlOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7
CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2Vz
cygpOiIpOworICAgIGRlYnVnKCJUZXN0IDQuMS43LCB0aGF0IGEgdmVyc2lvbmNoYW5nZSB0cmFu
c2FjdGlvbiB3YXMgcnVuLiIpOworICAgIHNob3VsZEJlKCJzYXdVcGdyYWRlTmVlZGVkIiwgInRy
dWUiKTsKKyAgICBzaG91bGRCZVRydWUoInNhd1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBk
YiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGRlYnVnKCJL
aW5kIG9mIHRlc3QgNC4xLjk6Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmco
ZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24n
LCAiNyIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwppbmRleCBhMDZmNWFm
NDAwY2Y4OTMwYTY2MDdkZTc5Y2VlZmMxYTAwMTc4Yzg3Li5lM2RmMzM4ZWE3NWZjYzg1YzYxNDM2
M2Q0NTJiMzBhNjI0ODc0OTQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKQEAgLTc3LDYgKzc3LDEyIEBAIGZ1bmN0aW9uIHVuZXhw
ZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2soKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCitm
dW5jdGlvbiB1bmV4cGVjdGVkVmVyc2lvbkNoYW5nZUNhbGxiYWNrKCkKK3sKKyAgICB0ZXN0RmFp
bGVkKCJvbnZlcnNpb25jaGFuZ2UgY2FsbGVkIHVuZXhwZWN0ZWRseSIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfQorCiBmdW5jdGlvbiBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKGNtZCwgZXhjZXB0
aW9uQ29kZSwgZXhjZXB0aW9uTmFtZSkKIHsKICAgICBkZWJ1ZygiRXhwZWN0aW5nIGV4Y2VwdGlv
biBmcm9tICIgKyBjbWQpOwpAQCAtMTIzLDYgKzEyOSwxOCBAQCBmdW5jdGlvbiBkZWxldGVBbGxP
YmplY3RTdG9yZXMoZGIpCiAgICAgZGVidWcoIkRlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuIik7
CiB9CiAKK2Z1bmN0aW9uIHNldERCTmFtZUZyb21QYXRoKCkgeworICAgIGV2YWxBbmRMb2coJ2Ri
bmFtZSA9ICInICsgc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMSArIHNlbGYubG9j
YXRpb24ucGF0aG5hbWUubGFzdEluZGV4T2YoIi8iKSkgKyAnIicpOworfQorCitmdW5jdGlvbiBw
cmVhbWJsZShldnQpCit7CisgICAgaWYgKGV2dCkKKyAgICAgICAgZXZlbnQgPSBldnQ7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKHByZWFtYmxlLmNhbGxlci5uYW1lICsgIigpOiIpOworfQor
CiAvLyBGb3IgV29ya2VycwogaWYgKCFzZWxmLkRPTUV4Y2VwdGlvbikgewogICAgIHNlbGYuRE9N
RXhjZXB0aW9uID0gewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155662</attachid>
            <date>2012-07-31 16:12:45 -0700</date>
            <delta_ts>2012-07-31 16:35:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92560-20120731161228.patch</filename>
            <type>text/plain</type>
            <size>68630</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTg4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzEyMDBiOWRkY2Q2N2QyYzE5YTJi
ZGNjZWJlYzJkMjNmOTg5YmY1MC4uZjc2YzUwMTMxZDJjMDEzNDBiYTc3ZjE5OGFiMWIxOWVlNWVl
NWM4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA3LTMxICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IGludGVnZXIgdmVyc2lv
biBsYXlvdXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkyNTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW9zdCBvZiB0aGUgaW50ZWdlciB2ZXJzaW9uIGxheW91dCB0ZXN0cyBhcmUgaGVyZSwg
d2l0aCBmYWlsdXJlcyBpbgorICAgICAgICB0aGUgZXhwZWN0ZWQgZmlsZXMuICBUaGlzIHdpbGwg
YWxsb3cgdXMgdG8gaW5jcmVtZW50YWxseSBpbXBsZW1lbnQKKyAgICAgICAgdXBncmFkZW5lZWRl
ZCBhbmQgaW50ZWdlciB2ZXJzaW9ucyBhbmQganVzdCBtYWtlIHRoZSBiaWcgcGF0Y2ggaW4gYnVn
CisgICAgICAgIDg5NTA1IHNtYWxsZXIuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBhZGRlZCBz
a2lwcyB0byBUZXN0RXhwZWN0YXRpb25zLCBvbmUgdGVzdCBleHBvc2VzIGEgYnVnCisgICAgICAg
IGluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBjYXVzaW5nIGFuIGFzc2VydCB0byBmYWls
LiAgVGhlIG90aGVyCisgICAgICAgIHRpbWVzIG91dCBpbiBEUlQgc28gd2Ugd2lsbCBydW4gaXQg
YXMgYSBjb250ZW50X2Jyb3dzZXJ0ZXN0IGZvciB0aGUKKyAgICAgICAgdGltZSBiZWluZy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQt
c2V0dmVyc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0
d2Vlbi1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4t
dXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVl
ZGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24t
ZGVsZXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0
dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1l
dGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgYW5kIHRoZWlyIHJlc3BlY3RpdmUganMgZmlsZXMuLi4K
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAg
ICAodW5leHBlY3RlZFZlcnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChzZXREQk5hbWVG
cm9tUGF0aCk6CisgICAgICAgIChwcmVhbWJsZSk6CisKIDIwMTItMDctMzEgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2
aWV3ZWQsIGhhbmRsZSBtb3JlIHRlc3RzIGZhaWxpbmcgYWZ0ZXIgcjEyNDA1Mi4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGExYWIyMjRh
MzMxYjJmMzRkZTFhZmQwZmE1ZGJhYmNmNWE1NmVkNjUuLjc4MWZkODU2MWFjNDA1Njg3MDY2ZDlm
M2YwZTg2NWIzY2IzM2RiYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMzYyNiwzICszNjI2LDkgQEAgQlVHV0s5MjcwNyBXSU4gOiB0
cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy1vcmlnaW5zLmh0bWwg
PSBJTUEKIEJVR1dLOTI3MDcgV0lOIDogdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBv
aW50LW1hcHBpbmctcHJlc2VydmUtM2QuaHRtbCA9IElNQUdFCiBCVUdXSzkyNzA3IFdJTiA6IGNv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi5odG1sID0gSU1BR0UgUEFTUwogQlVHV0s5MjcwNyBXSU4gOiBwbGF0Zm9ybS9j
aHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy9jYW52YXMtdGV4dC1hbGlnbm1lbnQuaHRt
bCA9IElNQUdFCisKKy8vIFRpbWVzIG91dCBpbiBEUlQsIGJ1dCB3b3JrcyBpbiBjaHJvbWUKK0JV
R1dLOTI3NzYgU0tJUCA6IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVw
Z3JhZGVuZWVkZWQuaHRtbCA9IFBBU1MKKy8vIEZhaWxzIGFuIEFTU0VSVCB1bnRpbCB0aGUgYmln
IHBhdGNoIGluIDg5NTA1IGxhbmRzLgorQlVHV0s5Mjc4MyBTS0lQIDogc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmh0bWwgPSBQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdy
YWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45OTA4M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1YTdkODkyYWE2YTYzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9y
dC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAK
K1Rlc3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVy
c2lvbiBiYWNrIHRvIDAKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUg
PSAiaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCIKK2luZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCity
ZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQKK0ZJWE1FOiBUaGlzIHNob3Vs
ZCBnZXQgYW4gZXJyb3IgZXZlbnQgb2YgdHlwZSBBYm9ydEVycm9yCityZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjaworRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1
bmV4cGVjdGVkbHkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjY4YWMwZDBlN2M5ODA1NTIzZGU0OGNhMDMyMTc2MWIzZjI1M2Y3
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwxMCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50
dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYyMjJjYTE1ZDA5Yzc0ZDNhMmY0NDc5OGQyMGJkYzE4ZTUzMjUxNmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUwIEBACitUZXN0IHRo
YXQgaW50IHZlcnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcg
dmVyc2lvbnMgYXJlIHRoZW4gZGlzYWxsb3dlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIg
fHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVk
REI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0bWwiCitpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJl
IFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VS
ZXF1ZXN0XS4KKworQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0ZXI6CitpbmRleGVk
REIub3BlbihkYm5hbWUpCisKK29wZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAiIgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInNvbWUg
dmVyc2lvbiIpCisKK2luU2V0VmVyc2lvbigpOgorUEFTUyBkYi52ZXJzaW9uIGlzICJzb21lIHZl
cnNpb24iCisKK3NldFZlcnNpb25Eb25lKCk6CitQQVNTIGRiLnZlcnNpb24gaXMgInNvbWUgdmVy
c2lvbiIKK2RiLmNsb3NlKCkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qub25zdWNj
ZXNzID0gc2Vjb25kT3BlbgorCitzZWNvbmRPcGVuKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKK1BBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitQQVNTIGRiLnZl
cnNpb24gaXMgInNvbWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDIpCisKK2ZpcnN0T3BlbldpdGhWZXJzaW9uKCk6CitGQUlMIGRpZFRyYW5z
YWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1BB
U1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJl
IDIgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAob2YgdHlwZSBzdHJpbmcpLgor
RkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0u
IFdhcyBbb2JqZWN0IElEQlJlcXVlc3RdLgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInN0cmlu
ZyB2ZXJzaW9uIDIiKQorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURCVmVyc2lv
bkNoYW5nZVJlcXVlc3RdIgorcmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbk5vdEFsbG93ZWQK
K0ZBSUwgU3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MDZkZWQzOWUwMTNmM2NjNTU3Y2JiNjA4M2Y4ZTc2ZmFjMjI4Zjhh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1hbmQtc2V0dmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZl
cnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2Vk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWMzY2NmMmMzNGJmZjA5NDk0M2U2MTNmYTBkYjYz
ODdkZmJhMzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACitUZXN0
IHRoYXQgYmxvY2tlZCBldmVudHMgZ2V0IGRlbGl2ZXJlZCBwcm9wZXJseSB3aXRoIHRoZSBuZXcg
b3BlbiBhcGkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50
dmVyc2lvbi1ibG9ja2VkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQor
CitkZWxldGVTdWNjZXNzKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQor
CitmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVk
RXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24xID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAorY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNoYW5nZUhh
bmRsZXIKK1BBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0i
CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorCitzZWNvbmRTdWNjZXNzQ2Fs
bGJhY2soKToKK0ZBSUwgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1ibG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWJsb2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzg3ZGVlYjgwNDA0YTU5NzcxMmEzM2FkYzg2
YTE4YzYzZWU0ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9j
a2VkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2
ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDYwOWVl
NGMwNWExZTdkYTFhOGU5MWE5ZTlhODg5MzA4ODBkZmYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVHJ5IHRvIGNhbGwgZGIuY2xvc2UoKSBh
ZnRlciB1cGdyYWRlbmVlZGVkIGJ1dCBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgc3VjY2VzcyBl
dmVudCBmaXJlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJp
bnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKKworCitv
cGVuU3VjY2VzcygpOgorUEFTUyBkaWRDYWxsQ2xvc2VEQiBpcyBmYWxzZQorRkFJTCBzYXdUcmFu
c2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKK0ZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIp
LiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjllMGUzYzFhNzI4YzczZDVhMjcwMmQxMzE1NTA1NDhlNDZmMTE2ZTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWJldHdlZW4tZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3
ZWVuLWV2ZW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4t
b25jb21wbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2
NWVkYjI0YmRkNmUyMTk3MzI1MjRjMTE5NThiZTI0MGM5M2Y4Y2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29t
cGxldGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NhbGwgZGIuY2xvc2UoKSBpbiB0
aGUgY29tcGxldGUgaGFuZGxlciBmb3IgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiwgYmVm
b3JlIHRoZSBzdWNjZXNzIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgb3BlbiBjYWxsIGZpcmVz
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24t
Y2xvc2UtaW4tb25jb21wbGV0ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCisKK29wZW5TdWNjZXNzKCk6
CitGQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
K2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChv
ZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK0V4cGVjdGluZyBleGNlcHRp
b24gZnJvbSB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycsICdyZWFkd3JpdGUnKQor
UEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK0ZBSUwgY29kZSBzaG91bGQgYmUgMTEuIFdhcyA4
LgorRkFJTCBlbmFtZSBzaG91bGQgYmUgSW52YWxpZFN0YXRlRXJyb3IuIFdhcyBOb3RGb3VuZEVy
cm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xv
c2UtaW4tb25jb21wbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU5YzYwNWIwM2Q2
ODEwYTM2NjcwYWNmYTUyNzVjMjBhMjgyOTY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1s
CkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVw
Z3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZWQ4NWQ0ODE5ZGQwMGEzZTBl
MzRhYzljNDRkMjljYzRkYTFkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Rlc3QgdGhhdCB3aGVuIGRiLmNsb3NlIGlzIGNhbGxlZCBp
biB1cGdyYWRlbmVlZGVkLCB0aGUgZGIgaXMgY2xlYW5lZCB1cCBvbiByZWZyZXNoLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwg
c2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4
ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWNsb3NlLWlu
LXVwZ3JhZGVuZWVkZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCity
ZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQorCisKK29wZW5TdWNjZXNzKCk6CitG
QUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Ri
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0
eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK3RyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oJ29zJykKK0ZBSUwgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBJREJEYXRhYmFzZSBFeGNl
cHRpb24gOAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
Y2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBi
YTU4NGUyYmRiMGIzYzJlZGMyM2JjNTA5Y2YxYjBlNGRkOTUzNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFk
ZW5lZWRlZC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRl
ZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVu
ZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0
ZDI5YzA2NzI1NWMwNmE3ZjUzMmUxN2FlYzkyYTdiNWJhOWY5MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3Jh
ZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDEgQEAKK1Rlc3QgdGhhdCBhIGRlbGV0
ZURhdGFiYXNlIGNhbGxlZCB3aGlsZSBoYW5kbGluZyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGlz
IHF1ZXVlZCBhbmQgZmlyZXMgaXRzIGV2ZW50cyBhdCB0aGUgcmlnaHQgdGltZQorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2Vs
Zi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWRE
QiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWRlbGV0ZS1pbi11
cGdyYWRlbmVlZGVkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitp
bml0aWFsbHlEZWxldGVkKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKQor
CitmaXJzdFVwZ3JhZGVOZWVkZWQoKToKK1BBU1Mgc2F3Rmlyc3RVcGdyYWRlTmVlZGVkIGlzIGZh
bHNlCitzYXdGaXJzdFVwZ3JhZGVOZWVkZWQgPSB0cnVlCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24g
aXMgMAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgYWxyZWFkeURlbGV0ZWQgaXMg
ZmFsc2UKK2RlbGV0ZVJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQor
cmVxdWVzdDIub25zdWNjZXNzID0gZGVsZXRlRnJvbVVwZ3JhZGVOZWVkZWRTdWNjZXNzCisKK3Jl
cXVlc3Qub25zdWNjZXNzKCk6CitQQVNTIHNhd0ZpcnN0VXBncmFkZU5lZWRlZCBpcyB0cnVlCitk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAxCisKK3ZlcnNpb25D
aGFuZ2VDYWxsYmFjaygpOgorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSAxIChvZiB0
eXBlIG51bWJlcikuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZl
bnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3QpLiBXYXMgdW5kZWZp
bmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitzYXdWZXJzaW9uQ2hhbmdlID0gdHJ1ZQorZGIuY2xv
c2UoKQorCitkZWxldGVCbG9ja2VkQ2FsbGJhY2soKToKK1RoaXMgc2hvdWxkbid0IGhhcHBlbiBi
dXQgZm9yIHRoZSBsb25nc3RhbmRpbmcgaHR0cDovL2NyYnVnLmNvbS8xMDAxMjMKKworZGVsZXRl
RnJvbVVwZ3JhZGVOZWVkZWRTdWNjZXNzKCk6CitQQVNTIHNhd1ZlcnNpb25DaGFuZ2UgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRlbGV0ZS1p
bi11cGdyYWRlbmVlZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0OWZhNTky
NTY0ZDFhMGExMmE2Y2MyZmNlMWE5NDdhYjFkNDExMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVk
ZWQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1v
bi1kZWxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMTUzZDBkOTRlMjA4YzFmM2E0ZWE0
Y2JiNmVkYTg1Yzk3YjNiODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1NCBAQAorVGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVkIGNvcnJlY3RseSB3
aGVuIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVkIGJlaGluZCBhIGRlbGV0ZURh
dGFiYXNlIGNhbGwKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAi
aW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUpCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3VjY2Vzc0NhbGxiYWNrCisKK2ZpcnN0
U3VjY2Vzc0NhbGxiYWNrKCk6Citjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2Nv
bm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxi
YWNrCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2sKK3JlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQorcmVxdWVzdC5vbmJsb2NrZWQgPSBkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxs
YmFjaworcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjawor
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkKK3JlcXVlc3Qub251cGdyYWRlbmVl
ZGVkID0gdXBncmFkZU5lZWRlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5XaXRo
VmVyc2lvblN1Y2Nlc3NDYWxsYmFjaworCitzZWNvbmRTdWNjZXNzQ2FsbGJhY2soKToKK2RiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAorZGIub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjJWZXJz
aW9uQ2hhbmdlQ2FsbGJhY2sKKworY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKToK
K1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK2V2ZW50LnZlcnNpb24gPSAKKwor
Y29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudHlwZSBpcyAi
dmVyc2lvbmNoYW5nZSIKK2V2ZW50LnRhcmdldC5jbG9zZSgpCisKK2RlbGV0ZURhdGFiYXNlQmxv
Y2tlZENhbGxiYWNrKCk6CitGSVhNRTogdGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxs
ZWQgb25jZSwgaHR0cDovL2NyYnVnLmNvbS8xMzk2OTUKK2Nvbm5lY3Rpb24xLmNsb3NlKCkKKwor
ZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2soKToKK0ZJWE1FOiB0aGlzIGZ1bmN0aW9uIHNo
b3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlLCBodHRwOi8vY3JidWcuY29tLzEzOTY5NQorY29ubmVj
dGlvbjEuY2xvc2UoKQorCitkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaygpOgorCitvcGVu
V2l0aFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5v
YmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTE5NWI2ZGY5ZGNhMTk3MDJhMzc1ZDM5OTc5NTQzZmFiZjBmN2YwNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24t
ZGVsZXRlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8t
c2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU3NGU1YWE3ZmJhYzY4ZmE1MWZkZGE1MWE1NGZmZTUzZjZiOWNh
NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMxIEBACitUZXN0IHRoYXQgd2hlbiBzZXRWZXJzaW9uIGlzIGNhbGxlZCBv
biBhIGRiIHdpdGggYW4gaW50ZWdlciB2ZXJzaW9uLCB2ZXJzaW9uY2hhbmdlIGV2ZW50cyBkb24n
dCBnZXQgZmlyZWQgb24gb3RoZXIgb3BlbiBkYnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWRE
QiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4
ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1z
aWRlLWVmZmVjdHMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCisKK2Rl
bGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCisKK2Zp
cnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgorRkFJTCBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVu
dCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQu
cmVzdWx0Citjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB1bmV4cGVjdGVkVmVyc2lvbkNo
YW5nZUNhbGxiYWNrCitQQVNTIFN0cmluZyhjb25uZWN0aW9uMSkgaXMgIltvYmplY3QgSURCRGF0
YWJhc2VdIgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKKworc2Vjb25kU3VjY2Vz
c0NhbGxiYWNrKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVlc3QgPSBkYi5zZXRW
ZXJzaW9uKCd2ZXJzaW9uJykKK3JlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25FcnJvcgorcmVx
dWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrCityZXF1ZXN0Lm9uYmxv
Y2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2sKK0ZBSUwgb252ZXJzaW9uY2hhbmdlIGNh
bGxlZCB1bmV4cGVjdGVkbHkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lv
bi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI5YTAzYjM3MzRhMzI3NDEy
MDE4OTY4YmI1OWYzN2NiYWZiMTZhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRl
LWVmZmVjdHMuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1o
YXMtbm8tc2lkZS1lZmZlY3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1s
b25nLXF1ZXVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VmZjA5NWMzZjYz
OTA3Njc5MzY5NGQxNTdlNmZhMTMyMDFiMzY3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw3OSBAQAorVGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVkIGNvcnJl
Y3RseSB3aGVuIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVkIGJlaGluZCBib3Ro
IGEgZGVsZXRlRGF0YWJhc2UgYW5kIHNldFZlcnNpb24gY2FsbAorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbCIKK2lu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVl
c3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3Vj
Y2Vzc0NhbGxiYWNrCisKK2ZpcnN0U3VjY2Vzc0NhbGxiYWNrKCk6Citjb25uZWN0aW9uMSA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKK2Nvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rp
b24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
KQorcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2sKKworc2Vjb25kU3Vj
Y2Vzc0NhbGxiYWNrKCk6Citjb25uZWN0aW9uMiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2Nvbm5l
Y3Rpb24yLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24yVmVyc2lvbkNoYW5nZUNhbGxiYWNr
CityZXF1ZXN0ID0gY29ubmVjdGlvbjIuc2V0VmVyc2lvbigndmVyc2lvbiAyJykKK3JlcXVlc3Qu
b25ibG9ja2VkID0gc2V0VmVyc2lvbkJsb2NrZWRDYWxsYmFjaworcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrCisKK2Nvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNh
bGxiYWNrKCk6CitQQVNTIGV2ZW50LnR5cGUgaXMgInZlcnNpb25jaGFuZ2UiCitQQVNTIGV2ZW50
LnZlcnNpb24gaXMgInZlcnNpb24gMiIKKworc2V0VmVyc2lvbkJsb2NrZWRDYWxsYmFjaygpOgor
cmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCityZXF1ZXN0Lm9uYmxv
Y2tlZCA9IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3VjY2VzcyA9
IGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAxKQorcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkQ2FsbGJh
Y2sKK3JlcXVlc3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrCitj
b25uZWN0aW9uMS5jbG9zZSgpCisKK3NldFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToKK3RyYW5z
YWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGIgPSB0cmFuc2FjdGlvbi5kYgorZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3NvbWUgb2JqZWN0IHN0b3JlJykKK3RyYW5zYWN0aW9uLm9uY29tcGxl
dGUgPSBzZXRWZXJzaW9uVHJhbnNhY3Rpb25Db21wbGV0ZUNhbGxiYWNrCisKK3NldFZlcnNpb25U
cmFuc2FjdGlvbkNvbXBsZXRlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFyZ2V0LmRiLnZlcnNp
b24gaXMgInZlcnNpb24gMiIKKworY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKToK
K1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK0ZJWE1FOiBGaXJlIGEgdmVyc2lv
bmNoYW5nZSBldmVudCB0aGF0IGhhcyBvbGRWZXJzaW9uIGFuZCBuZXdWZXJzaW9uCitGQUlMIGV2
ZW50Lm9sZFZlcnNpb24gc2hvdWxkIGJlIHZlcnNpb24gMiAob2YgdHlwZSBzdHJpbmcpLiBXYXMg
dW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50Lm5ld1ZlcnNpb24gc2hv
dWxkIGJlIG51bGwgKG9mIHR5cGUgb2JqZWN0KS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRl
ZmluZWQpLgorRkFJTCBldmVudC52ZXJzaW9uIHNob3VsZCBiZSB1bmRlZmluZWQuIFdhcyAKKwor
ZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2soKToKK2Nvbm5lY3Rpb24yLmNsb3NlKCkKK0ZB
SUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQgYmUgdmVyc2lvbiAyIChvZiB0eXBlIHN0cmluZyku
IFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZlbnQubmV3VmVyc2lv
biBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3QpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBl
IHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50LnZlcnNpb24gc2hvdWxkIGJlIHVuZGVmaW5lZC4gV2Fz
IAorCitkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaygpOgorRkFJTCBldmVudC5vbGRWZXJz
aW9uIHNob3VsZCBiZSBub24tbnVsbC4gV2FzIHVuZGVmaW5lZAorRkFJTCBldmVudC5uZXdWZXJz
aW9uIHNob3VsZCBiZSBudWxsIChvZiB0eXBlIG9iamVjdCkuIFdhcyB1bmRlZmluZWQgKG9mIHR5
cGUgdW5kZWZpbmVkKS4KK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdCBpcyBudWxsCisKK3VwZ3Jh
ZGVOZWVkZWRDYWxsYmFjaygpOgorZ290VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFTUyBl
dmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCisKK29wZW5X
aXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaygpOgorUEFTUyBnb3RVcGdyYWRlTmVlZGVkRXZlbnQg
aXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3Ro
IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxv
bmctcXVldWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
bG9uZy1xdWV1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4ZWU3NTA2YzgzYmI1NDJkZjg4ZTIyYWE1ZjBk
MjlkY2Q4ZjYxYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWxv
bmctcXVldWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1l
dGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmY2YwYjdmZTU3ZjQ3
NzA0NzhhYTVlYjc0YjM5YWEzMTUzODAwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE5IEBACitUZXN0IHRoYXQgaW5pdGlhbCB2ZXJzaW9uIGFmdGVyIGEgc3Vj
Y2Vzc2Z1bCBvcGVuIG9mIGEgbm9uLWV4aXN0ZW50IGRiIGlzIDEKKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0
SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2Vs
Zi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1s
IgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFt
ZSkKKworb3BlblN1Y2Nlc3MoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorVGVzdCBsaW5l
IGZyb20gSURCRmFjdG9yeS5vcGVuOiBJZiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZCBhbmQgbm8g
ZGF0YWJhc2UgZXhpc3RzLCBzZXQgZGF0YWJhc2UgdmVyc2lvbiB0byAxLgorRkFJTCBkYi52ZXJz
aW9uIHNob3VsZCBiZSAxIChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFy
YW1ldGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9t
aXQtcGFyYW1ldGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJiNTRhMjBkYmE0ZTVhZWE2ZDcyOTM4Mjcw
ZDE1M2M4NzYwMmRlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbApAQCAtMCwwICsxLDEwIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJz
aW9uLW9taXQtcGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1v
cGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMzcwY2FkMDA0NzE2YzNkNDljOWI4NWIxNWY4NmE5ZDk5Y2VhZGRiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgt
dmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGVzdCB0aGF0IHNwZWNpZnlp
bmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBjYXVzZXMgYW4gdXBn
cmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgc2V0IGNvcnJl
Y3RseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVy
c2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK1Nob3VsZCB0cmlnZ2VyOgorNC4xLjQ6IElmIG5vIGRhdGFiYXNlIHdpdGggdGhlIGdp
dmVuIG5hbWUgZnJvbSB0aGUgb3JpZ2luIG9yaWdpbiB3YXMgZm91bmQsIG9yIGlmIGl0IHdhcyBk
ZWxldGVkIGR1cmluZyB0aGUgcHJldmlvdXMgc3RlcCwgdGhlbiBjcmVhdGUgYSBkYXRhYmFzZSB3
aXRoIG5hbWUgbmFtZSwgd2l0aCAwIGFzIHZlcnNpb24sIGFuZCB3aXRoIG5vIG9iamVjdCBzdG9y
ZXMuIExldCBkYiBiZSB0aGUgbmV3IGRhdGFiYXNlLgorNC4xLjY6IENyZWF0ZSBhIG5ldyBjb25u
ZWN0aW9uIHRvIGRiIGFuZCBsZXQgY29ubmVjdGlvbiByZXByZXNlbnQgaXQuCis0LjEuNzogSWYg
dGhlIHZlcnNpb24gb2YgZGIgaXMgbG93ZXIgdGhhbiB2ZXJzaW9uLCB0aGVuIHJ1biB0aGUgc3Rl
cHMgZm9yIHJ1bm5pbmcgYSAidmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24gdXNpbmcgY29ubmVj
dGlvbiwgdmVyc2lvbiwgcmVxdWVzdCBhbmQgdXBncmFkZSBjYWxsYmFjay4KKzQuMS45OiBSZXR1
cm4gY29ubmVjdGlvbi4KK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCitGQUlM
IFN0cmluZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XS4gV2Fz
IFtvYmplY3QgSURCUmVxdWVzdF0uCisKKworb3BlblN1Y2Nlc3MoKToKK1Rlc3QgNC4xLjcsIHRo
YXQgYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBydW4uCitGQUlMIHNhd1VwZ3JhZGVO
ZWVkZWQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK0ZBSUwgc2F3VHJhbnNhY3Rpb25Db21w
bGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0
CitLaW5kIG9mIHRlc3QgNC4xLjk6CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0
YWJhc2VdIgorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdh
cyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZThjNzNkNDRmODJiMjE3YWNlN2MxMjE3NjA4YjBhYWYxNzRhYzI5YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZl
cnNpb24uaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlh
bC11cGdyYWRlbmVlZGVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk0NTc4NzY4MThhODUwNjE1Y2Y5NDhkOGQwYjJiNmZkOTJkYjc2NTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMKQEAgLTAsMCArMSw0OSBAQAoraWYg
KHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVk
LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYW4gYWJvcnQgaW4gdGhlIGluaXRp
YWwgdXBncmFkZW5lZWRlZCBzZXRzIHZlcnNpb24gYmFjayB0byAwIik7CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBh
dGgoKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rp
b24gZGVsZXRlU3VjY2VzcygpIHsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERC
Lm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1
Y2Nlc3NDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IHVwZ3JhZGVOZWVkZWQiKTsKKyAgICBkZWJ1ZygiRklYTUU6IFRoaXMgc2hvdWxkIGdldCBhbiBl
cnJvciBldmVudCBvZiB0eXBlIEFib3J0RXJyb3IiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOworICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gdXBncmFkZU5l
ZWRlZChldnQpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkKCk6
Iik7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAg
IHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjIiKTsKKyAgICB0cmFuc2FjdGlvbiA9IGV2ZW50LnRh
cmdldC50cmFuc2FjdGlvbjsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5leHBlY3Rl
ZENvbXBsZXRlQ2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IG9uQWJvcnQ7Cisg
ICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24uYWJvcnQoKSIpOworfQorCitmdW5jdGlvbiBvbkFi
b3J0KGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9uQWJvcnQoKToiKTsKKyAg
ICBldmVudCA9IGV2dDsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24iLCAi
MCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVy
c2lvbi5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWFuZC1zZXR2ZXJzaW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwOWNhODgxMDBlZDAxYjgxY2E5ZWIy
N2M2NWIxZTNlOTQyZjI3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5qcwpAQCAtMCww
ICsxLDE5MCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMo
Jy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0
U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgaW50IHZl
cnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcgdmVyc2lvbnMg
YXJlIHRoZW4gZGlzYWxsb3dlZCIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisKKyAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0KSIsICJbb2JqZWN0IElEQk9wZW5E
QlJlcXVlc3RdIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiQ2FsbCBv
cGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0ZXI6Iik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9w
ZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRD
YWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJh
Y2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7CisgICAgZGIgPSBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImRiLnZlcnNpb24iLCAiIik7CisgICAgZXZhbEFuZExvZygncmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oInNvbWUgdmVyc2lvbiIpJyk7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBp
blNldFZlcnNpb247CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwor
fQorCitmdW5jdGlvbiBpblNldFZlcnNpb24oZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAg
IGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiaW5TZXRWZXJzaW9uKCk6Iik7CisgICAgdHJhbnMgPSBl
dmVudC50YXJnZXQucmVzdWx0OworICAgIHRyYW5zLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uRG9u
ZTsKKyAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgZGIg
PSB0cmFucy5kYjsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29t
ZSB2ZXJzaW9uIik7CisgICAgLy8gRklYTUU6IEFkZCBhIHRlc3QgdGhhdCBjYWxscyBvcGVuIHdp
dGggdmVyc2lvbiBmcm9tIGhlcmUuCit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb25Eb25lKGV2dCkK
K3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNp
b25Eb25lKCk6Iik7CisgICAgZGIgPSBldmVudC50YXJnZXQuZGI7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAgIGV2YWxBbmRMb2co
ImRiLmNsb3NlKCkiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
ZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kT3Bl
biIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAg
IHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFj
azsKK30KKworZnVuY3Rpb24gc2Vjb25kT3BlbihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7Cisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzZWNvbmRPcGVuKCk6Iik7CisgICAgZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAgIGV2YWxBbmRMb2co
ImRiLmNsb3NlKCkiKTsKKyAgICAvLyBGSVhNRTogQWRkIHRlc3RzIHRoYXQgY2FsbCBpdCB3aXRo
IDAsIC0xLCBhbmQgLTQuCisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZpcnN0VXBncmFk
ZU5lZWRlZAorICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
ICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0T3BlbldpdGhWZXJzaW9uOworfQorCitmdW5jdGlvbiBm
aXJzdFVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1ZygiZmlyc3RVcGdyYWRlTmVlZGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJT
dHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJTdHJpbmcocmVxdWVzdC50cmFuc2FjdGlvbikiLCAiW29iamVjdCBJREJUcmFuc2Fj
dGlvbl0iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm9sZFZlcnNpb24iLCAi
c29tZSB2ZXJzaW9uIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMiIpOwor
ICAgIGV2YWxBbmRMb2coInJlcXVlc3QudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRyYW5zYWN0
aW9uQ29tcGxldGVkIik7CisgICAgcmVxdWVzdC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBl
Y3RlZEFib3J0Q2FsbGJhY2s7Cit9CisKK3ZhciBkaWRUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFs
c2U7CitmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRlZChldnQpCit7CisgICAgZXZlbnQgPSBl
dnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNvbXBsZXRlZCgpOiIp
OworICAgIGV2YWxBbmRMb2coImRpZFRyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7Cit9CisK
K2Z1bmN0aW9uIGZpcnN0T3BlbldpdGhWZXJzaW9uKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImZpcnN0T3BlbldpdGhWZXJzaW9uKCk6Iik7Cisg
ICAgc2hvdWxkQmVUcnVlKCJkaWRUcmFuc2FjdGlvbkNvbXBsZXRlIik7CisgICAgZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmVOdWxs
KCJyZXF1ZXN0LnRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QpIiwgIltvYmplY3Qg
SURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICBldmFsQW5kTG9nKCdyZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbigic3RyaW5nIHZlcnNpb24gMiIpJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJT
dHJpbmcocmVxdWVzdCkiLCAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdF0iKTsKKyAg
ICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIGV2YWxBbmRM
b2coInJlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25Ob3RBbGxvd2VkIik7Cit9CisKK2Z1bmN0
aW9uIHNldFZlcnNpb25Ob3RBbGxvd2VkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNpb25Ob3RBbGxvd2VkKCk6Iik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50eXBlIiwgImVycm9yIik7CisgICAgZGVidWcoInJl
cXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gIiArIHJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdl
KTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
Lm9uZXJyb3IgPSBlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uIik7CisgICAgcmVxdWVzdC5vbmJs
b2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZXJyb3JXaGVuVHJ5
aW5nTG93VmVyc2lvbihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uKCk6Iik7CisgICAgZGVidWcoInJl
cXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gIiArIHJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdl
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA0KSIp
OworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNlY29uZFVwZ3JhZGVOZWVkZWQiKTsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IHRoaXJkT3BlblN1Y2Nlc3MiKTsKK30K
KwordmFyIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIHNlY29uZFVw
Z3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1Zygic2Vjb25kVXBncmFkZU5lZWRlZCgpOiIpOworICAgIGV2YWxBbmRMb2coImdvdFNl
Y29uZFVwZ3JhZGVOZWVkZWQgPSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNp
b24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjQiKTsKK30KKwor
ZnVuY3Rpb24gdGhpcmRPcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJ0aGlyZE9wZW5TdWNjZXNzKCk6Iik7CisgICAgc2hvdWxk
QmVUcnVlKCJnb3RTZWNvbmRVcGdyYWRlTmVlZGVkIik7CisgICAgZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiNCIpOwor
ICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0g
aW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNj
ZXNzID0gZm91cnRoT3BlblN1Y2Nlc3MiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZm91cnRoT3Bl
blN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygiZm91cnRoT3BlblN1Y2Nlc3MoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICI0Iik7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNkMThkY2E3NzUxZGNjOTcwNDA1ODMxMzdkODI3MzkzN2U5YjU5NDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50
dmVyc2lvbi1ibG9ja2VkLmpzCkBAIC0wLDAgKzEsOTAgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlw
dHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNj
cmlwdGlvbigiVGVzdCB0aGF0IGJsb2NrZWQgZXZlbnRzIGdldCBkZWxpdmVyZWQgcHJvcGVybHkg
d2l0aCB0aGUgbmV3IG9wZW4gYXBpIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92
ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0
KSB7CisgICAgcHJlYW1ibGUoKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RTdWNjZXNz
RXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRD
YWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
KyAgICBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IGZhbHNlOworICAgIHJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9u
IGZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOwor
ICAgIGV2YWxBbmRMb2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOworICAg
IHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
bmV3VmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZXZl
bnQpIiwgIltvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XSIpOworfQorCitnb3RCbG9ja2Vk
RXZlbnQgPSBmYWxzZTsKK2Z1bmN0aW9uIGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcihldnQpCit7
CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZVRydWUoImdvdEZpcnN0VXBncmFkZU5l
ZWRlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0g
dmVyc2lvbkNoYW5nZUhhbmRsZXIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmlu
Zyhjb25uZWN0aW9uMSkiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKSIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gYmxvY2tlZEV2
ZW50SGFuZGxlcjsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNlY29uZFVwZ3JhZGVO
ZWVkZWRFdmVudEhhbmRsZXI7Cit9CisKK3ZhciBzYXdWZXJzaW9uQ2hhbmdlRXZlbnQgPSBmYWxz
ZTsKK2Z1bmN0aW9uIHZlcnNpb25DaGFuZ2VIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShl
dnQpOworICAgIGV2YWxBbmRMb2coInNhd1ZlcnNpb25DaGFuZ2VFdmVudCA9IHRydWUiKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5nZSIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0IElEQlZl
cnNpb25DaGFuZ2VFdmVudF0iKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0IiwgImNvbm5l
Y3Rpb24xIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNo
b3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjMiKTsKK30KKworZnVuY3Rpb24gYmxvY2tlZEV2
ZW50SGFuZGxlcihldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZVRydWUo
InNhd1ZlcnNpb25DaGFuZ2VFdmVudCIpOworICAgIGV2YWxBbmRMb2coImdvdEJsb2NrZWRFdmVu
dCA9IHRydWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhldmVudCkiLCAi
W29iamVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9s
ZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjMiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAiYmxvY2tlZCIpOworICAg
IGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsKK30KKworZ290U2Vjb25kVXBncmFk
ZU5lZWRlZEV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiBzZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnRI
YW5kbGVyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlVHJ1ZSgiZ290
QmxvY2tlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2
ZW50ID0gdHJ1ZSIpOworfQorCitmdW5jdGlvbiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2soZXZ0KQor
eworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RTZWNvbmRVcGdyYWRl
TmVlZGVkRXZlbnQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
Y2xvc2UtYmV0d2Vlbi1ldmVudHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NDNkMjBhYTJjZjBhZDllZTU5YTAzMGMzN2I5N2FlMzU1ZmRjOTEwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xv
c2UtYmV0d2Vlbi1ldmVudHMuanMKQEAgLTAsMCArMSw3MyBAQAoraWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUcnkgdG8gY2FsbCBkYi5jbG9zZSgpIGFmdGVyIHVwZ3JhZGVuZWVkZWQgYnV0
IGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBzdWNjZXNzIGV2ZW50IGZpcmVzIik7CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1l
RnJvbVBhdGgoKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2Vz
czsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKwor
ZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0g
aW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3Bl
blN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkOwor
ICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBk
ZWJ1ZygiIik7Cit9CisKK3ZhciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7CitmdW5j
dGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1Zygi
Iik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIs
ICI3Iik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29iamVjdHN0b3Jl
JykiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5z
YWN0aW9uIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAg
ZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygidHJhbnNhY3Rpb24ub25jb21wbGV0ZToiKTsKKyAg
ICAgICAgZXZhbEFuZExvZygic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUiKTsKKyAgICAg
ICAgZXZhbEFuZExvZygic2V0VGltZW91dChjbG9zZURCLCAwKSIpOworICAgIH0KK30KKwordmFy
IGRpZENhbGxDbG9zZURCID0gZmFsc2U7CitmdW5jdGlvbiBjbG9zZURCKCkKK3sKKyAgICBkZWJ1
ZygiIik7CisgICAgZGVidWcoImNsb3NlREIoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkaWRDYWxs
Q2xvc2VEQiA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVu
dCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Cisg
ICAgc2hvdWxkQmVGYWxzZSgiZGlkQ2FsbENsb3NlREIiKTsKKyAgICBzaG91bGRCZVRydWUoInNh
d1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCdkYi52ZXJzaW9uJywgIjciKTsKKyAgICBp
ZiAoZGIudmVyc2lvbiAhPT0gNykgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgi
LCAiMSIpOworICAgIGV2YWxBbmRMb2coImRiLnRyYW5zYWN0aW9uKGRiLm9iamVjdFN0b3JlTmFt
ZXMpIik7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuanMgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1v
bmNvbXBsZXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NDRhNTdkNGEzYjkxOGMxMThjMWFjNWFjZDAwOTY4
MWExZGNmOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmpzCkBAIC0wLDAgKzEs
NTggQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlw
dHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiQ2FsbCBkYi5jbG9zZSgpIGluIHRo
ZSBjb21wbGV0ZSBoYW5kbGVyIGZvciBhIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uLCBiZWZv
cmUgdGhlIHN1Y2Nlc3MgZXZlbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcGVuIGNhbGwgZmlyZXMi
KTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAg
ICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBk
ZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGV2YWxBbmRMb2co
InJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpIik7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3Jh
ZGVOZWVkZWQ7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxi
YWNrOworfQorCit2YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlOworZnVuY3Rpb24g
dXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiNyIp
OworICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpIik7CisKKyAgICBl
dmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIpOworICAg
IHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICB0cmFu
c2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAgICAgIGRlYnVnKCIi
KTsKKyAgICAgICAgZGVidWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7CisgICAgICAgIGV2
YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgICAgIGV2YWxB
bmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5T
dWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIik7
CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxk
QmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInRyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJywgJ3JlYWR3cml0ZScpIiwgIkRPTUV4Y2VwdGlv
bi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9z
ZS1pbi11cGdyYWRlbmVlZGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxNWMzZDIyMWY0N2Y3Nzc0ODRjZjRm
MTA5ODcwMTk5ODQ5ZjJlODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmpz
CkBAIC0wLDAgKzEsNTggQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRT
Y3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAg
IGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0
IHdoZW4gZGIuY2xvc2UgaXMgY2FsbGVkIGluIHVwZ3JhZGVuZWVkZWQsIHRoZSBkYiBpcyBjbGVh
bmVkIHVwIG9uIHJlZnJlc2guIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZl
bmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKworICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQp
IHsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KSIp
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVw
Z3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5l
eHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBzYXdUcmFu
c2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sK
KyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVk
ZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAg
ICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI3Iik7CisKKyAgICBldmFsQW5kTG9nKCJ0
cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIpOworICAgIGV2YWxBbmRMb2co
ImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpIik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2Uo
KSIpOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsK
KyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgZGVidWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7CisgICAgICAg
IGV2YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgfQorfQor
CitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVi
dWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIHNob3VsZEJlVHJ1ZSgi
c2F3VHJhbnNhY3Rpb25Db21wbGV0ZSIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAg
IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJykiKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVk
ZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjgwZTc0MDZiOGIxYjQ2
NzY5NDliNTRlM2M4MmY5NTgyZWRhY2ZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVu
ZWVkZWQuanMKQEAgLTAsMCArMSw4MyBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Jyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJU
ZXN0IHRoYXQgYSBkZWxldGVEYXRhYmFzZSBjYWxsZWQgd2hpbGUgaGFuZGxpbmcgYW4gdXBncmFk
ZW5lZWRlZCBldmVudCBpcyBxdWV1ZWQgYW5kIGZpcmVzIGl0cyBldmVudHMgYXQgdGhlIHJpZ2h0
IHRpbWUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBpbml0aWFsbHlEZWxldGVkOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworfQorCit2YXIgc2F3Rmlyc3RVcGdyYWRlTmVlZGVkID0gZmFsc2U7Cit2
YXIgYWxyZWFkeURlbGV0ZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIGluaXRpYWxseURlbGV0ZWQoZXZ0
KSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJpbml0aWFsbHlEZWxldGVkKCk6Iik7Cisg
ICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0g
Zmlyc3RVcGdyYWRlTmVlZGVkOworfQorCitmdW5jdGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWQoZXZ0
KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RV
cGdyYWRlTmVlZGVkKCk6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgic2F3Rmlyc3RVcGdyYWRlTmVl
ZGVkIik7CisgICAgZXZhbEFuZExvZygic2F3Rmlyc3RVcGdyYWRlTmVlZGVkID0gdHJ1ZSIpOwor
ICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZl
bnQubmV3VmVyc2lvbiIsICIxIik7CisgICAgc2hvdWxkQmVGYWxzZSgiYWxyZWFkeURlbGV0ZWQi
KTsKKyAgICBpZiAoYWxyZWFkeURlbGV0ZWQpCisgICAgICAgIHJldHVybjsKKyAgICBhbHJlYWR5
RGVsZXRlZCA9IHRydWU7CisKKyAgICByZXF1ZXN0MiA9IGV2YWxBbmRMb2coImRlbGV0ZVJlcXVl
c3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2co
InJlcXVlc3QyLm9uc3VjY2VzcyA9IGRlbGV0ZUZyb21VcGdyYWRlTmVlZGVkU3VjY2VzcyIpOwor
ICAgIHJlcXVlc3QyLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1
ZXN0Mi5vbmJsb2NrZWQgPSBkZWxldGVCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK3Nhd1ZlcnNpb25D
aGFuZ2UgPSBmYWxzZTsKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9
IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInJlcXVlc3Qub25zdWNjZXNzKCk6Iik7
CisgICAgc2hvdWxkQmVUcnVlKCJzYXdGaXJzdFVwZ3JhZGVOZWVkZWQiKTsKKyAgICBldmFsQW5k
TG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkYi5vbnZlcnNpb25jaGFuZ2Ug
PSB2ZXJzaW9uQ2hhbmdlQ2FsbGJhY2s7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAnMScp
OworfQorCitmdW5jdGlvbiB2ZXJzaW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KSB7CisgICAgcHJlYW1i
bGUoKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIxIik7CisgICAgc2hvdWxk
QmVOdWxsKCJldmVudC5uZXdWZXJzaW9uIik7CisgICAgZXZhbEFuZExvZygic2F3VmVyc2lvbkNo
YW5nZSA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7Cit9CisKK2Z1bmN0
aW9uIGRlbGV0ZUJsb2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoKTsKKyAgICBk
ZWJ1ZygiVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBmb3IgdGhlIGxvbmdzdGFuZGluZyBodHRw
Oi8vY3JidWcuY29tLzEwMDEyMyIpOworfQorCitmdW5jdGlvbiBkZWxldGVGcm9tVXBncmFkZU5l
ZWRlZFN1Y2Nlc3MoZXZ0KQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZGVsZXRlRnJv
bVVwZ3JhZGVOZWVkZWRTdWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdWZXJzaW9u
Q2hhbmdlIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWdhdGVk
LW9uLWRlbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9p
bnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmFlYmE3NzJlZjdkZDI2
YWU1Yzc0YWYzZjVhZDQ4ZDJlYmRhOGUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLmpz
CkBAIC0wLDAgKzEsOTUgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRT
Y3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAg
IGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0
IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVkIGNvcnJlY3RseSB3aGVuIGFuIG9wZW4td2l0aC12ZXJz
aW9uIGNhbGwgaXMgcXVldWVkIGJlaGluZCBhIGRlbGV0ZURhdGFiYXNlIGNhbGwiKTsKKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5h
bWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2Vz
czsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKwor
ZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBwcmVhbWJsZShldnQpOworICAgIGRl
YnVnZ2VyOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUp
Iik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdFN1Y2Nlc3NDYWxs
YmFjayIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
fQorCitmdW5jdGlvbiBmaXJzdFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgZXZlbnQgPSBl
dnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmaXJzdFN1Y2Nlc3NDYWxsYmFjaygpOiIp
CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Cisg
ICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjFW
ZXJzaW9uQ2hhbmdlQ2FsbGJhY2siKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0g
c2Vjb25kU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLmRl
bGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uYmxvY2tl
ZCA9IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVx
dWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworCisgICAgZXZhbEFuZExv
ZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRDYWxsYmFjayIpOworICAg
IGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0Nh
bGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxi
YWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQor
CitmdW5jdGlvbiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2
dCk7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZh
bEFuZExvZygiZGIub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2Fs
bGJhY2siKTsKK30KKworZnVuY3Rpb24gY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2so
ZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
dmVudC50eXBlIiwgInZlcnNpb25jaGFuZ2UiKTsKKyAgICBkZWJ1ZygiZXZlbnQudmVyc2lvbiA9
ICIgKyBldmVudC52ZXJzaW9uKTsKK30KKworZnVuY3Rpb24gY29ubmVjdGlvbjJWZXJzaW9uQ2hh
bmdlQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJldmVudC50eXBlIiwgInZlcnNpb25jaGFuZ2UiKTsKKyAgICBldmFsQW5kTG9n
KCJldmVudC50YXJnZXQuY2xvc2UoKSIpOworfQorCitmdW5jdGlvbiBkZWxldGVEYXRhYmFzZUJs
b2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBkZWJ1ZygiRklY
TUU6IHRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UsIGh0dHA6Ly9jcmJ1
Zy5jb20vMTM5Njk1Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEuY2xvc2UoKSIpOwor
fQorCitmdW5jdGlvbiBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAg
cHJlYW1ibGUoZXZ0KTsKK30KKworZnVuY3Rpb24gdXBncmFkZU5lZWRlZENhbGxiYWNrKGV2dCkK
K3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwg
IjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cit9CisKK2Z1bmN0
aW9uIG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUo
ZXZ0KTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmplY3RTdG9yZU5hbWVz
Lmxlbmd0aCIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9u
LWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9u
LWhhcy1uby1zaWRlLWVmZmVjdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMxMjBkNDI1YWRjYTFmNjZlY2Q3
MzUxOWMyNWE3NDVhYjBhYWYyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMt
bm8tc2lkZS1lZmZlY3RzLmpzCkBAIC0wLDAgKzEsNzUgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlw
dHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNj
cmlwdGlvbigiVGVzdCB0aGF0IHdoZW4gc2V0VmVyc2lvbiBpcyBjYWxsZWQgb24gYSBkYiB3aXRo
IGFuIGludGVnZXIgdmVyc2lvbiwgdmVyc2lvbmNoYW5nZSBldmVudHMgZG9uJ3QgZ2V0IGZpcmVk
IG9uIG90aGVyIG9wZW4gZGJzLiIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkg
eworICAgIHByZWFtYmxlKCk7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3VjY2Vzc0V2
ZW50SGFuZGxlcjsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cisg
ICAgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKKyAgICByZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IGZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBm
aXJzdFVwZ3JhZGVOZWVkZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAg
ICBldmFsQW5kTG9nKCJnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWUiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5l
d1ZlcnNpb24iLCAiMiIpOworfQorCitmdW5jdGlvbiBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIo
ZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RGaXJzdFVw
Z3JhZGVOZWVkZWRFdmVudCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLm9udmVyc2lvbmNo
YW5nZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2siKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoIlN0cmluZyhjb25uZWN0aW9uMSkiLCAiW29iamVjdCBJREJEYXRhYmFzZV0i
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwor
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrOworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5l
ZWRlZCA9IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHNl
Y29uZFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFs
QW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbicpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVz
dC5vbmVycm9yID0gc2V0VmVyc2lvbkVycm9yIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5v
bnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrIik7Cit9CisKK2Z1
bmN0aW9uIHNldFZlcnNpb25FcnJvcihldnQpCit7CisgICAgcHJlYW1ibGUoKTsKKyAgICBkZWJ1
ZygiT3BlbiB1cCBhIG5ldyBkYiB0byBlbnN1cmUgdGhhdCBpZiBjb25uZWN0aW9uMSB3ZXJlIHRv
IGdldCBhIHZlcnNpb25jaGFuZ2UgZXZlbnQsIGl0IHdpbGwgYmUgZGVsaXZlcmVkIGJlZm9yZSB0
aGUgdGVzdCBmaW5pc2hlcyIpOworICAgIGV2YWxBbmRMb2coIm5ld19kYiA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSArICcyJykiKTsKKyAgICBldmFsQW5kTG9nKCJuZXdfZGIub25zdWNjZXNzID0g
bmV3REJTdWNjZXNzIik7CisgICAgbmV3X2RiLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICBuZXdfZGIub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gbmV3REJTdWNjZXNzKGV2dCkKK3sKKyAgICBwcmVhbWJsZSgpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tbG9uZy1xdWV1
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZjEzYWQ5OTIxMDQ5Y2M4OWQ4Zjk0YzhlYzFmMjVhN2NmOTMyZDA1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5qcwpAQCAtMCwwICsxLDEzMiBAQAoraWYgKHRoaXMu
aW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7
Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYSBkYXRhYmFzZSBpcyByZWNyZWF0ZWQgY29y
cmVjdGx5IHdoZW4gYW4gb3Blbi13aXRoLXZlcnNpb24gY2FsbCBpcyBxdWV1ZWQgYmVoaW5kIGJv
dGggYSBkZWxldGVEYXRhYmFzZSBhbmQgc2V0VmVyc2lvbiBjYWxsIik7CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBh
dGgoKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9u
IGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJl
cXVlc3Qub25zdWNjZXNzID0gZmlyc3RTdWNjZXNzQ2FsbGJhY2siKTsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGZpcnN0U3VjY2Vzc0Nh
bGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImNvbm5l
Y3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rp
b24xLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrIik7
CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IHNlY29uZFN1Y2Nlc3NDYWxsYmFjayIp
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJl
cXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rp
b24gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAg
IGV2YWxBbmRMb2coImNvbm5lY3Rpb24yID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2
YWxBbmRMb2coImNvbm5lY3Rpb24yLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24yVmVyc2lv
bkNoYW5nZUNhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGNvbm5lY3Rpb24y
LnNldFZlcnNpb24oJ3ZlcnNpb24gMicpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbmJs
b2NrZWQgPSBzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVx
dWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGNvbm5l
Y3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJ2ZXJzaW9uY2hhbmdlIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC52ZXJzaW9uIiwgInZlcnNpb24gMiIp
OworfQorCitmdW5jdGlvbiBzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNpb25CbG9ja2Vk
Q2FsbGJhY2soKToiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uYmxvY2tlZCA9
IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVz
dC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayIpOworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworCisgICAgZXZhbEFuZExvZygi
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5kTG9nKCJy
ZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRDYWxsYmFjayIpOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxi
YWNrIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNr
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIGV2
YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lv
blN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5k
TG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFsQW5kTG9n
KCJkYiA9IHRyYW5zYWN0aW9uLmRiIik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ3NvbWUgb2JqZWN0IHN0b3JlJykiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlv
bi5vbmNvbXBsZXRlID0gc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayIpOwor
ICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKK30KKwor
ZnVuY3Rpb24gc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayhldnQpCit7Cisg
ICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdl
dC5kYi52ZXJzaW9uIiwgInZlcnNpb24gMiIpOworfQorCitmdW5jdGlvbiBjb25uZWN0aW9uMlZl
cnNpb25DaGFuZ2VDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5nZSIpOworICAgIGRl
YnVnKCJGSVhNRTogRmlyZSBhIHZlcnNpb25jaGFuZ2UgZXZlbnQgdGhhdCBoYXMgb2xkVmVyc2lv
biBhbmQgbmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQub2xk
VmVyc2lvbiIsICJ2ZXJzaW9uIDIiKTsKKyAgICBzaG91bGRCZU51bGwoImV2ZW50Lm5ld1ZlcnNp
b24iKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgiZXZlbnQudmVyc2lvbiIpOworfQorCitmdW5j
dGlvbiBkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUo
ZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uMi5jbG9zZSgpIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJldmVudC5vbGRWZXJzaW9uIiwgInZlcnNpb24gMiIpOworICAgIHNo
b3VsZEJlTnVsbCgiZXZlbnQubmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJl
dmVudC52ZXJzaW9uIik7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxi
YWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlTm9uTnVsbCgiZXZl
bnQub2xkVmVyc2lvbiIpOworICAgIHNob3VsZEJlTnVsbCgiZXZlbnQubmV3VmVyc2lvbiIpOwor
ICAgIHNob3VsZEJlTnVsbCgiZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworfQorCit2YXIgZ290VXBn
cmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkQ2FsbGJhY2so
ZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZ290VXBncmFkZU5l
ZWRlZEV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjEi
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cit9CisKK2Z1bmN0aW9u
IG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0
KTsKKyAgICBzaG91bGRCZVRydWUoImdvdFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIHNob3Vs
ZEJlKCJldmVudC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAiKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1v
bWl0LXBhcmFtZXRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2ZlY2Q2MGI5YTRhYWIxNzM2Y2FmNTk0ZmNh
OGY5ZDgxMGY1MWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMKQEAgLTAsMCArMSwz
OSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0
cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgaW5pdGlhbCB2ZXJz
aW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIGEgbm9uLWV4aXN0ZW50IGRiIGlzIDEiKTsK
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBz
ZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxl
dGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKKyAgICAgIHRlc3RQ
YXNzZWQoIkdvdCB1cGdyYWRlbmVlZGVkIGV2ZW50Iik7CisgICAgfQorfQorCitmdW5jdGlvbiBv
cGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAg
IGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7CisgICAgZGVidWcoIlRlc3QgbGluZSBmcm9tIElEQkZhY3Rvcnku
b3BlbjogSWYgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWQgYW5kIG5vIGRhdGFiYXNlIGV4aXN0cywg
c2V0IGRhdGFiYXNlIHZlcnNpb24gdG8gMS4iKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbics
ICcxJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0
aC12ZXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lu
dHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhiMzNkNTY4ZDJjYjIz
YTI2ZTQyZGI3NTA5MmRmOWM4OTNmMGFjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9u
LmpzCkBAIC0wLDAgKzEsNzYgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBv
cnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOwor
ICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0
aGF0IHNwZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBj
YXVzZXMgYW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIg
aXMgc2V0IGNvcnJlY3RseS4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVu
ZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRC
bG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAg
ZGVidWcoIlNob3VsZCB0cmlnZ2VyOiIpOworICAgIGRlYnVnKCI0LjEuNDogSWYgbm8gZGF0YWJh
c2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBvcmlnaW4gb3JpZ2luIHdhcyBmb3VuZCwg
b3IgaWYgaXQgd2FzIGRlbGV0ZWQgZHVyaW5nIHRoZSBwcmV2aW91cyBzdGVwLCB0aGVuIGNyZWF0
ZSBhIGRhdGFiYXNlIHdpdGggbmFtZSBuYW1lLCB3aXRoIDAgYXMgdmVyc2lvbiwgYW5kIHdpdGgg
bm8gb2JqZWN0IHN0b3Jlcy4gTGV0IGRiIGJlIHRoZSBuZXcgZGF0YWJhc2UuIik7CisgICAgZGVi
dWcoIjQuMS42OiBDcmVhdGUgYSBuZXcgY29ubmVjdGlvbiB0byBkYiBhbmQgbGV0IGNvbm5lY3Rp
b24gcmVwcmVzZW50IGl0LiIpOworICAgIGRlYnVnKCI0LjEuNzogSWYgdGhlIHZlcnNpb24gb2Yg
ZGIgaXMgbG93ZXIgdGhhbiB2ZXJzaW9uLCB0aGVuIHJ1biB0aGUgc3RlcHMgZm9yIHJ1bm5pbmcg
YSBcInZlcnNpb25jaGFuZ2VcIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9u
LCByZXF1ZXN0IGFuZCB1cGdyYWRlIGNhbGxiYWNrLiIpOworICAgIGRlYnVnKCI0LjEuOTogUmV0
dXJuIGNvbm5lY3Rpb24uIik7CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJuYW1lLCA3KSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJl
cXVlc3QpIiwgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFk
ZU5lZWRlZDsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJh
Y2s7CisgICAgZGVidWcoIiIpOworfQorCit2YXIgc2F3VXBncmFkZU5lZWRlZCA9IGZhbHNlOwor
dmFyIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVk
ZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIHRlc3RQYXNzZWQoIkluIHRoZSB1cGdy
YWRlbmVlZGVkIGV2ZW50IGhhbmRlcjoiKTsKKyAgICBkZWJ1ZygiVGVzdCA0LjguOS4xOiIpOwor
ICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiU3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOworICAg
IGRlYnVnKCJUZXN0IDQuOC45LjM6Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24i
LCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjciKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIiwgImRvbmUiKTsKKyAg
ICBkZWJ1ZygiVGVzdCA0LjEuNDoiKTsKKyAgICBzaG91bGRCZSgiZGIubmFtZSIsICJkYm5hbWUi
KTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICI3Iik7CisgICAgc2hvdWxkQmUoImRiLm9i
amVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0
aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJTdHJpbmcodHJhbnNhY3Rpb24pIiwgIltvYmplY3QgSURCVHJhbnNhY3Rpb25dIik7Cisg
ICAgZXZhbEFuZExvZygnb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29tZU9TIiknKTsKKyAg
ICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgdHJh
bnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGV2YWxBbmRMb2coInNh
d1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgfQorICAgIHNhd1VwZ3JhZGVOZWVk
ZWQgPSB0cnVlOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQg
PSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAg
IGRlYnVnKCJUZXN0IDQuMS43LCB0aGF0IGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB3YXMg
cnVuLiIpOworICAgIHNob3VsZEJlKCJzYXdVcGdyYWRlTmVlZGVkIiwgInRydWUiKTsKKyAgICBz
aG91bGRCZVRydWUoInNhd1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBkYiA9IGV2YWxBbmRM
b2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGRlYnVnKCJLaW5kIG9mIHRlc3Qg
NC4xLjk6Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmpl
Y3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwppbmRleCBhMDZmNWFmNDAwY2Y4OTMwYTY2
MDdkZTc5Y2VlZmMxYTAwMTc4Yzg3Li5lM2RmMzM4ZWE3NWZjYzg1YzYxNDM2M2Q0NTJiMzBhNjI0
ODc0OTQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvc2hhcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9zaGFyZWQuanMKQEAgLTc3LDYgKzc3LDEyIEBAIGZ1bmN0aW9uIHVuZXhwZWN0ZWRVcGdyYWRl
TmVlZGVkQ2FsbGJhY2soKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCitmdW5jdGlvbiB1bmV4
cGVjdGVkVmVyc2lvbkNoYW5nZUNhbGxiYWNrKCkKK3sKKyAgICB0ZXN0RmFpbGVkKCJvbnZlcnNp
b25jaGFuZ2UgY2FsbGVkIHVuZXhwZWN0ZWRseSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQor
CiBmdW5jdGlvbiBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKGNtZCwgZXhjZXB0aW9uQ29kZSwgZXhj
ZXB0aW9uTmFtZSkKIHsKICAgICBkZWJ1ZygiRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tICIgKyBj
bWQpOwpAQCAtMTIzLDYgKzEyOSwxOCBAQCBmdW5jdGlvbiBkZWxldGVBbGxPYmplY3RTdG9yZXMo
ZGIpCiAgICAgZGVidWcoIkRlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuIik7CiB9CiAKK2Z1bmN0
aW9uIHNldERCTmFtZUZyb21QYXRoKCkgeworICAgIGV2YWxBbmRMb2coJ2RibmFtZSA9ICInICsg
c2VsZi5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMSArIHNlbGYubG9jYXRpb24ucGF0aG5h
bWUubGFzdEluZGV4T2YoIi8iKSkgKyAnIicpOworfQorCitmdW5jdGlvbiBwcmVhbWJsZShldnQp
Cit7CisgICAgaWYgKGV2dCkKKyAgICAgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKHByZWFtYmxlLmNhbGxlci5uYW1lICsgIigpOiIpOworfQorCiAvLyBGb3IgV29y
a2VycwogaWYgKCFzZWxmLkRPTUV4Y2VwdGlvbikgewogICAgIHNlbGYuRE9NRXhjZXB0aW9uID0g
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155674</attachid>
            <date>2012-07-31 16:35:58 -0700</date>
            <delta_ts>2012-08-01 14:28:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92560-20120731163541.patch</filename>
            <type>text/plain</type>
            <size>68522</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjYzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjA1MjNkZmUxMTcwZjFjMjUxNTgy
ZTUyZjJiMGYzZjk2MTk1ZWRmNC4uNzIyMGUzMTI5MmQ5ZGIwMTRiZTNiMWM4NWFiY2JkMTkwNDVm
YWQzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA3LTMxICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IGludGVnZXIgdmVyc2lv
biBsYXlvdXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkyNTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW9zdCBvZiB0aGUgaW50ZWdlciB2ZXJzaW9uIGxheW91dCB0ZXN0cyBhcmUgaGVyZSwg
d2l0aCBmYWlsdXJlcyBpbgorICAgICAgICB0aGUgZXhwZWN0ZWQgZmlsZXMuICBUaGlzIHdpbGwg
YWxsb3cgdXMgdG8gaW5jcmVtZW50YWxseSBpbXBsZW1lbnQKKyAgICAgICAgdXBncmFkZW5lZWRl
ZCBhbmQgaW50ZWdlciB2ZXJzaW9ucyBhbmQganVzdCBtYWtlIHRoZSBiaWcgcGF0Y2ggaW4gYnVn
CisgICAgICAgIDg5NTA1IHNtYWxsZXIuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBhZGRlZCBz
a2lwcyB0byBUZXN0RXhwZWN0YXRpb25zLCBvbmUgdGVzdCBleHBvc2VzIGEgYnVnCisgICAgICAg
IGluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBjYXVzaW5nIGFuIGFzc2VydCB0byBmYWls
LiAgVGhlIG90aGVyCisgICAgICAgIHRpbWVzIG91dCBpbiBEUlQgc28gd2Ugd2lsbCBydW4gaXQg
YXMgYSBjb250ZW50X2Jyb3dzZXJ0ZXN0IGZvciB0aGUKKyAgICAgICAgdGltZSBiZWluZy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQt
c2V0dmVyc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0
d2Vlbi1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4t
dXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVl
ZGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24t
ZGVsZXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0
dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1l
dGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgYW5kIHRoZWlyIHJlc3BlY3RpdmUganMgZmlsZXMuLi4K
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAg
ICAodW5leHBlY3RlZFZlcnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChzZXREQk5hbWVG
cm9tUGF0aCk6CisgICAgICAgIChwcmVhbWJsZSk6CisKIDIwMTItMDctMzEgIEx1a2UgTWFjcGhl
cnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBIZWFwLXVzZS1hZnRl
ci1mcmVlIGluIFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2UKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY1YzUy
N2JjZTIxZmI5ZWQ4NzU5YWZkYjg4ODhmYTE3ZmY1YTg1OTAuLmM2OGJiZDhkZDNiMWJkY2VkMjVl
YzM0ZDk4OTYwN2EyMWVjZGYwN2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzUzNCw2ICszNTM0LDEwIEBAIEJVR1dLOTEzNzIgV0lO
IDogY3NzMi4xLzIwMTEwMzIzL3ZlcnRpY2FsLWFsaWduLWJveGVzLTAwMS5odG0gPSBJTUFHRQog
QlVHV0s5MDk1MSA6IGZhc3QvdGV4dC9zaGFwaW5nL3NoYXBpbmctc2VsZWN0aW9uLXJlY3QuaHRt
bCA9IE1JU1NJTkcKIEJVR1dLOTA5NTEgOiBmYXN0L3RleHQvc2hhcGluZy9zaGFwaW5nLXNjcmlw
dC1vcmRlci5odG1sID0gTUlTU0lORwogCisvLyBUaW1lcyBvdXQgaW4gRFJULCBidXQgd29ya3Mg
aW4gY2hyb21lCitCVUdXSzkyNzc2IFNLSVAgOiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwgPSBQQVNTCisKK0JVR1dLOTI3ODMgU0tJUCA6
IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sID0gUEFTUwogCiAv
LyBTdGFydGVkIGZhaWxpbmcgYXJvdW5kIHIxMjI3NzAKIEJVR1dLOTE0NDUgTElOVVggOiBwbHVn
aW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUuaHRtbCA9IFBBU1MgSU1BR0UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlh
bC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45OTA4M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1YTdkODkyYWE2YTYzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTggQEAKK1Rlc3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNl
dHMgdmVyc2lvbiBiYWNrIHRvIDAKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2lu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitk
Ym5hbWUgPSAiaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCIK
K2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUs
IDIpCityZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQKK0ZJWE1FOiBUaGlz
IHNob3VsZCBnZXQgYW4gZXJyb3IgZXZlbnQgb2YgdHlwZSBBYm9ydEVycm9yCityZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjaworRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNh
bGxlZCB1bmV4cGVjdGVkbHkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRl
bmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY4YWMwZDBlN2M5ODA1NTIzZGU0OGNhMDMyMTc2MWIz
ZjI1M2Y3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCAr
MSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3No
YXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyMjJjYTE1ZDA5Yzc0ZDNhMmY0NDc5OGQyMGJkYzE4ZTUz
MjUxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUwIEBACitU
ZXN0IHRoYXQgaW50IHZlcnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBz
dHJpbmcgdmVyc2lvbnMgYXJlIHRoZW4gZGlzYWxsb3dlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0bWwiCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hv
dWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlZlcnNpb25D
aGFuZ2VSZXF1ZXN0XS4KKworQ2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0ZXI6Citp
bmRleGVkREIub3BlbihkYm5hbWUpCisKK29wZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAiIgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24o
InNvbWUgdmVyc2lvbiIpCisKK2luU2V0VmVyc2lvbigpOgorUEFTUyBkYi52ZXJzaW9uIGlzICJz
b21lIHZlcnNpb24iCisKK3NldFZlcnNpb25Eb25lKCk6CitQQVNTIGRiLnZlcnNpb24gaXMgInNv
bWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qu
b25zdWNjZXNzID0gc2Vjb25kT3BlbgorCitzZWNvbmRPcGVuKCk6CitkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKK1BBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitQQVNT
IGRiLnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRl
eGVkREIub3BlbihkYm5hbWUsIDIpCisKK2ZpcnN0T3BlbldpdGhWZXJzaW9uKCk6CitGQUlMIGRp
ZFRyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2RiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNl
XSIKK1BBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCitGQUlMIGRiLnZlcnNpb24gc2hv
dWxkIGJlIDIgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAob2YgdHlwZSBzdHJp
bmcpLgorRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVx
dWVzdF0uIFdhcyBbb2JqZWN0IElEQlJlcXVlc3RdLgorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24o
InN0cmluZyB2ZXJzaW9uIDIiKQorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURC
VmVyc2lvbkNoYW5nZVJlcXVlc3RdIgorcmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbk5vdEFs
bG93ZWQKK0ZBSUwgU3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24u
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZl
cnNpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDZkZWQzOWUwMTNmM2NjNTU3Y2JiNjA4M2Y4ZTc2ZmFj
MjI4ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tYW5k
LXNldHZlcnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1i
bG9ja2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWMzY2NmMmMzNGJmZjA5NDk0M2U2MTNm
YTBkYjYzODdkZmJhMzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBA
CitUZXN0IHRoYXQgYmxvY2tlZCBldmVudHMgZ2V0IGRlbGl2ZXJlZCBwcm9wZXJseSB3aXRoIHRo
ZSBuZXcgb3BlbiBhcGkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUg
PSAiaW50dmVyc2lvbi1ibG9ja2VkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQorCitkZWxldGVTdWNjZXNzKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
LCAyKQorCitmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKK0ZBSUwgZ290Rmlyc3RVcGdyYWRl
TmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK2Nvbm5lY3Rpb24xID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAorY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdmVyc2lvbkNo
YW5nZUhhbmRsZXIKK1BBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBpcyAiW29iamVjdCBJREJEYXRh
YmFzZV0iCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorCitzZWNvbmRTdWNj
ZXNzQ2FsbGJhY2soKToKK0ZBSUwgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBi
ZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1ibG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWJsb2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzg3ZGVlYjgwNDA0YTU5NzcxMmEz
M2FkYzg2YTE4YzYzZWU0ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lv
bi1ibG9ja2VkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3
ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MDYwOWVlNGMwNWExZTdkYTFhOGU5MWE5ZTlhODg5MzA4ODBkZmYwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVu
LWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVHJ5IHRvIGNhbGwgZGIuY2xv
c2UoKSBhZnRlciB1cGdyYWRlbmVlZGVkIGJ1dCBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgc3Vj
Y2VzcyBldmVudCBmaXJlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhl
ZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJ
bmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFt
ZSA9ICJpbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWwiCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykK
KworCitvcGVuU3VjY2VzcygpOgorUEFTUyBkaWRDYWxsQ2xvc2VEQiBpcyBmYWxzZQorRkFJTCBz
YXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKK0ZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBu
dW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjllMGUzYzFhNzI4YzczZDVhMjcwMmQxMzE1NTA1NDhlNDZmMTE2ZTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9z
ZS1iZXR3ZWVuLWV2ZW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xv
c2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU2NWVkYjI0YmRkNmUyMTk3MzI1MjRjMTE5NThiZTI0MGM5M2Y4Y2EKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWlu
LW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NhbGwgZGIuY2xvc2Uo
KSBpbiB0aGUgY29tcGxldGUgaGFuZGxlciBmb3IgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlv
biwgYmVmb3JlIHRoZSBzdWNjZXNzIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgb3BlbiBjYWxs
IGZpcmVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxm
LmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8
fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZl
cnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCisKK29wZW5TdWNj
ZXNzKCk6CitGQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBi
ZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK0V4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycsICdyZWFkd3Jp
dGUnKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK0ZBSUwgY29kZSBzaG91bGQgYmUgMTEu
IFdhcyA4LgorRkFJTCBlbmFtZSBzaG91bGQgYmUgSW52YWxpZFN0YXRlRXJyb3IuIFdhcyBOb3RG
b3VuZEVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU5YzYw
NWIwM2Q2ODEwYTM2NjcwYWNmYTUyNzVjMjBhMjgyOTY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0
ZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3Nl
LWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZWQ4NWQ0ODE5ZGQw
MGEzZTBlMzRhYzljNDRkMjljYzRkYTFkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Rlc3QgdGhhdCB3aGVuIGRiLmNsb3NlIGlzIGNh
bGxlZCBpbiB1cGdyYWRlbmVlZGVkLCB0aGUgZGIgaXMgY2xlYW5lZCB1cCBvbiByZWZyZXNoLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWNs
b3NlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQorCisKK29wZW5TdWNjZXNz
KCk6CitGQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxz
ZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3
IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ29zJykKK0ZBSUwgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
b3MnKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBJREJEYXRhYmFz
ZSBFeGNlcHRpb24gOAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzBiYTU4NGUyYmRiMGIzYzJlZGMyM2JjNTA5Y2YxYjBlNGRkOTUzNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4t
dXBncmFkZW5lZWRlZC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFk
ZW5lZWRlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVw
Z3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzE0ZDI5YzA2NzI1NWMwNmE3ZjUzMmUxN2FlYzkyYTdiNWJhOWY5MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWlu
LXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDEgQEAKK1Rlc3QgdGhhdCBh
IGRlbGV0ZURhdGFiYXNlIGNhbGxlZCB3aGlsZSBoYW5kbGluZyBhbiB1cGdyYWRlbmVlZGVkIGV2
ZW50IGlzIHF1ZXVlZCBhbmQgZmlyZXMgaXRzIGV2ZW50cyBhdCB0aGUgcmlnaHQgdGltZQorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIg
fHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0lu
ZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWRlbGV0
ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQorCitpbml0aWFsbHlEZWxldGVkKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
LCAxKQorCitmaXJzdFVwZ3JhZGVOZWVkZWQoKToKK1BBU1Mgc2F3Rmlyc3RVcGdyYWRlTmVlZGVk
IGlzIGZhbHNlCitzYXdGaXJzdFVwZ3JhZGVOZWVkZWQgPSB0cnVlCitQQVNTIGV2ZW50Lm9sZFZl
cnNpb24gaXMgMAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgYWxyZWFkeURlbGV0
ZWQgaXMgZmFsc2UKK2RlbGV0ZVJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQorcmVxdWVzdDIub25zdWNjZXNzID0gZGVsZXRlRnJvbVVwZ3JhZGVOZWVkZWRTdWNjZXNz
CisKK3JlcXVlc3Qub25zdWNjZXNzKCk6CitQQVNTIHNhd0ZpcnN0VXBncmFkZU5lZWRlZCBpcyB0
cnVlCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAxCisKK3Zl
cnNpb25DaGFuZ2VDYWxsYmFjaygpOgorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSAx
IChvZiB0eXBlIG51bWJlcikuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZB
SUwgZXZlbnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3QpLiBXYXMg
dW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitzYXdWZXJzaW9uQ2hhbmdlID0gdHJ1ZQor
ZGIuY2xvc2UoKQorCitkZWxldGVCbG9ja2VkQ2FsbGJhY2soKToKK1RoaXMgc2hvdWxkbid0IGhh
cHBlbiBidXQgZm9yIHRoZSBsb25nc3RhbmRpbmcgaHR0cDovL2NyYnVnLmNvbS8xMDAxMjMKKwor
ZGVsZXRlRnJvbVVwZ3JhZGVOZWVkZWRTdWNjZXNzKCk6CitQQVNTIHNhd1ZlcnNpb25DaGFuZ2Ug
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRl
bGV0ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0
OWZhNTkyNTY0ZDFhMGExMmE2Y2MyZmNlMWE5NDdhYjFkNDExMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3Jh
ZGVuZWVkZWQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVl
ZGVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1n
YXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMTUzZDBkOTRlMjA4YzFm
M2E0ZWE0Y2JiNmVkYTg1Yzk3YjNiODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1NCBAQAorVGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVkIGNvcnJl
Y3RseSB3aGVuIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVkIGJlaGluZCBhIGRl
bGV0ZURhdGFiYXNlIGNhbGwKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4
ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96
SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5h
bWUgPSAiaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUpCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3VjY2Vzc0NhbGxiYWNrCisK
K2ZpcnN0U3VjY2Vzc0NhbGxiYWNrKCk6Citjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKK2Nvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5n
ZUNhbGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2sKK3JlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKQorcmVxdWVzdC5vbmJsb2NrZWQgPSBkZWxldGVEYXRhYmFzZUJsb2Nr
ZWRDYWxsYmFjaworcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxs
YmFjaworcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkKK3JlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3VjY2VzcyA9IG9w
ZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaworCitzZWNvbmRTdWNjZXNzQ2FsbGJhY2soKToK
K2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGIub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlv
bjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2sKKworY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJh
Y2soKToKK1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK2V2ZW50LnZlcnNpb24g
PSAKKworY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudHlw
ZSBpcyAidmVyc2lvbmNoYW5nZSIKK2V2ZW50LnRhcmdldC5jbG9zZSgpCisKK2RlbGV0ZURhdGFi
YXNlQmxvY2tlZENhbGxiYWNrKCk6CitGSVhNRTogdGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBi
ZSBjYWxsZWQgb25jZSwgaHR0cDovL2NyYnVnLmNvbS8xMzk2OTUKK2Nvbm5lY3Rpb24xLmNsb3Nl
KCkKKworZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2soKToKK0ZJWE1FOiB0aGlzIGZ1bmN0
aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlLCBodHRwOi8vY3JidWcuY29tLzEzOTY5NQor
Y29ubmVjdGlvbjEuY2xvc2UoKQorCitkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaygpOgor
CitvcGVuV2l0aFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFyZ2V0LnJl
c3VsdC5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTE5NWI2ZGY5ZGNhMTk3MDJhMzc1ZDM5OTc5NTQzZmFiZjBmN2YwNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0
ZWQtb24tZGVsZXRlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1o
YXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NGU1YWE3ZmJhYzY4ZmE1MWZkZGE1MWE1NGZmZTUz
ZjZiOWNhNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMxIEBACitUZXN0IHRoYXQgd2hlbiBzZXRWZXJzaW9uIGlzIGNh
bGxlZCBvbiBhIGRiIHdpdGggYW4gaW50ZWdlciB2ZXJzaW9uLCB2ZXJzaW9uY2hhbmdlIGV2ZW50
cyBkb24ndCBnZXQgZmlyZWQgb24gb3RoZXIgb3BlbiBkYnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhh
cy1uby1zaWRlLWVmZmVjdHMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
CisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIp
CisKK2ZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgorRkFJTCBnb3RGaXJzdFVwZ3JhZGVOZWVk
ZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorY29ubmVjdGlvbjEgPSBldmVudC50
YXJnZXQucmVzdWx0Citjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB1bmV4cGVjdGVkVmVy
c2lvbkNoYW5nZUNhbGxiYWNrCitQQVNTIFN0cmluZyhjb25uZWN0aW9uMSkgaXMgIltvYmplY3Qg
SURCRGF0YWJhc2VdIgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKKworc2Vjb25k
U3VjY2Vzc0NhbGxiYWNrKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVlc3QgPSBk
Yi5zZXRWZXJzaW9uKCd2ZXJzaW9uJykKK3JlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25FcnJv
cgorcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrCityZXF1ZXN0
Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2sKK0ZBSUwgb252ZXJzaW9uY2hh
bmdlIGNhbGxlZCB1bmV4cGVjdGVkbHkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0
dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI5YTAzYjM3MzRh
MzI3NDEyMDE4OTY4YmI1OWYzN2NiYWZiMTZhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1u
by1zaWRlLWVmZmVjdHMuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVy
c2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VmZjA5
NWMzZjYzOTA3Njc5MzY5NGQxNTdlNmZhMTMyMDFiMzY3YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3OSBAQAorVGVzdCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVk
IGNvcnJlY3RseSB3aGVuIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVkIGJlaGlu
ZCBib3RoIGEgZGVsZXRlRGF0YWJhc2UgYW5kIHNldFZlcnNpb24gY2FsbAorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53
ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8
fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRt
bCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToK
K3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZp
cnN0U3VjY2Vzc0NhbGxiYWNrCisKK2ZpcnN0U3VjY2Vzc0NhbGxiYWNrKCk6Citjb25uZWN0aW9u
MSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2Nvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IGNv
bm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2sKKworc2Vj
b25kU3VjY2Vzc0NhbGxiYWNrKCk6Citjb25uZWN0aW9uMiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
K2Nvbm5lY3Rpb24yLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24yVmVyc2lvbkNoYW5nZUNh
bGxiYWNrCityZXF1ZXN0ID0gY29ubmVjdGlvbjIuc2V0VmVyc2lvbigndmVyc2lvbiAyJykKK3Jl
cXVlc3Qub25ibG9ja2VkID0gc2V0VmVyc2lvbkJsb2NrZWRDYWxsYmFjaworcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrCisKK2Nvbm5lY3Rpb24xVmVyc2lvbkNo
YW5nZUNhbGxiYWNrKCk6CitQQVNTIGV2ZW50LnR5cGUgaXMgInZlcnNpb25jaGFuZ2UiCitQQVNT
IGV2ZW50LnZlcnNpb24gaXMgInZlcnNpb24gMiIKKworc2V0VmVyc2lvbkJsb2NrZWRDYWxsYmFj
aygpOgorcmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCityZXF1ZXN0
Lm9uYmxvY2tlZCA9IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJuYW1lLCAxKQorcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVk
Q2FsbGJhY2sKK3JlcXVlc3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxi
YWNrCitjb25uZWN0aW9uMS5jbG9zZSgpCisKK3NldFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToK
K3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGIgPSB0cmFuc2FjdGlvbi5kYgor
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWUgb2JqZWN0IHN0b3JlJykKK3RyYW5zYWN0aW9uLm9u
Y29tcGxldGUgPSBzZXRWZXJzaW9uVHJhbnNhY3Rpb25Db21wbGV0ZUNhbGxiYWNrCisKK3NldFZl
cnNpb25UcmFuc2FjdGlvbkNvbXBsZXRlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudGFyZ2V0LmRi
LnZlcnNpb24gaXMgInZlcnNpb24gMiIKKworY29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJh
Y2soKToKK1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK0ZJWE1FOiBGaXJlIGEg
dmVyc2lvbmNoYW5nZSBldmVudCB0aGF0IGhhcyBvbGRWZXJzaW9uIGFuZCBuZXdWZXJzaW9uCitG
QUlMIGV2ZW50Lm9sZFZlcnNpb24gc2hvdWxkIGJlIHZlcnNpb24gMiAob2YgdHlwZSBzdHJpbmcp
LiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50Lm5ld1ZlcnNp
b24gc2hvdWxkIGJlIG51bGwgKG9mIHR5cGUgb2JqZWN0KS4gV2FzIHVuZGVmaW5lZCAob2YgdHlw
ZSB1bmRlZmluZWQpLgorRkFJTCBldmVudC52ZXJzaW9uIHNob3VsZCBiZSB1bmRlZmluZWQuIFdh
cyAKKworZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2soKToKK2Nvbm5lY3Rpb24yLmNsb3Nl
KCkKK0ZBSUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQgYmUgdmVyc2lvbiAyIChvZiB0eXBlIHN0
cmluZykuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZlbnQubmV3
VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3QpLiBXYXMgdW5kZWZpbmVkIChv
ZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50LnZlcnNpb24gc2hvdWxkIGJlIHVuZGVmaW5l
ZC4gV2FzIAorCitkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaygpOgorRkFJTCBldmVudC5v
bGRWZXJzaW9uIHNob3VsZCBiZSBub24tbnVsbC4gV2FzIHVuZGVmaW5lZAorRkFJTCBldmVudC5u
ZXdWZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0eXBlIG9iamVjdCkuIFdhcyB1bmRlZmluZWQg
KG9mIHR5cGUgdW5kZWZpbmVkKS4KK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdCBpcyBudWxsCisK
K3VwZ3JhZGVOZWVkZWRDYWxsYmFjaygpOgorZ290VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQor
UEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCisK
K29wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaygpOgorUEFTUyBnb3RVcGdyYWRlTmVlZGVk
RXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMu
bGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWxvbmctcXVldWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tbG9uZy1xdWV1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4ZWU3NTA2YzgzYmI1NDJkZjg4ZTIy
YWE1ZjBkMjlkY2Q4ZjYxYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJz
aW9uLWxvbmctcXVldWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQt
cGFyYW1ldGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmY2YwYjdm
ZTU3ZjQ3NzA0NzhhYTVlYjc0YjM5YWEzMTUzODAwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0IHRoYXQgaW5pdGlhbCB2ZXJzaW9uIGFmdGVy
IGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIGEgbm9uLWV4aXN0ZW50IGRiIGlzIDEKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYu
d2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIg
fHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRl
ci5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVu
KGRibmFtZSkKKworb3BlblN1Y2Nlc3MoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorVGVz
dCBsaW5lIGZyb20gSURCRmFjdG9yeS5vcGVuOiBJZiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZCBh
bmQgbm8gZGF0YWJhc2UgZXhpc3RzLCBzZXQgZGF0YWJhc2UgdmVyc2lvbiB0byAxLgorRkFJTCBk
Yi52ZXJzaW9uIHNob3VsZCBiZSAxIChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3Ry
aW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9t
aXQtcGFyYW1ldGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLW9taXQtcGFyYW1ldGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJiNTRhMjBkYmE0ZTVhZWE2ZDcy
OTM4MjcwZDE1M2M4NzYwMmRlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVk
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9p
bnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMzcwY2FkMDA0NzE2YzNkNDljOWI4NWIxNWY4NmE5ZDk5Y2VhZGRiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVu
LXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGVzdCB0aGF0IHNw
ZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVudCBkYiBjYXVzZXMg
YW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgc2V0
IGNvcnJlY3RseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAi
aW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFi
YXNlKGRibmFtZSkKK1Nob3VsZCB0cmlnZ2VyOgorNC4xLjQ6IElmIG5vIGRhdGFiYXNlIHdpdGgg
dGhlIGdpdmVuIG5hbWUgZnJvbSB0aGUgb3JpZ2luIG9yaWdpbiB3YXMgZm91bmQsIG9yIGlmIGl0
IHdhcyBkZWxldGVkIGR1cmluZyB0aGUgcHJldmlvdXMgc3RlcCwgdGhlbiBjcmVhdGUgYSBkYXRh
YmFzZSB3aXRoIG5hbWUgbmFtZSwgd2l0aCAwIGFzIHZlcnNpb24sIGFuZCB3aXRoIG5vIG9iamVj
dCBzdG9yZXMuIExldCBkYiBiZSB0aGUgbmV3IGRhdGFiYXNlLgorNC4xLjY6IENyZWF0ZSBhIG5l
dyBjb25uZWN0aW9uIHRvIGRiIGFuZCBsZXQgY29ubmVjdGlvbiByZXByZXNlbnQgaXQuCis0LjEu
NzogSWYgdGhlIHZlcnNpb24gb2YgZGIgaXMgbG93ZXIgdGhhbiB2ZXJzaW9uLCB0aGVuIHJ1biB0
aGUgc3RlcHMgZm9yIHJ1bm5pbmcgYSAidmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24gdXNpbmcg
Y29ubmVjdGlvbiwgdmVyc2lvbiwgcmVxdWVzdCBhbmQgdXBncmFkZSBjYWxsYmFjay4KKzQuMS45
OiBSZXR1cm4gY29ubmVjdGlvbi4KK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcp
CitGQUlMIFN0cmluZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0
XS4gV2FzIFtvYmplY3QgSURCUmVxdWVzdF0uCisKKworb3BlblN1Y2Nlc3MoKToKK1Rlc3QgNC4x
LjcsIHRoYXQgYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBydW4uCitGQUlMIHNhd1Vw
Z3JhZGVOZWVkZWQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK0ZBSUwgc2F3VHJhbnNhY3Rp
b25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0CitLaW5kIG9mIHRlc3QgNC4xLjk6CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3Qg
SURCRGF0YWJhc2VdIgorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJl
cikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZThjNzNkNDRmODJiMjE3YWNlN2MxMjE3NjA4YjBhYWYxNzRhYzI5YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13
aXRoLXZlcnNpb24uaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4t
aW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk0NTc4NzY4MThhODUwNjE1Y2Y5NDhkOGQwYjJiNmZkOTJkYjc2NTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50
dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMKQEAgLTAsMCArMSw0OSBA
QAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygn
c2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYW4gYWJvcnQgaW4gdGhl
IGluaXRpYWwgdXBncmFkZW5lZWRlZCBzZXRzIHZlcnNpb24gYmFjayB0byAwIik7CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1l
RnJvbVBhdGgoKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2Vz
czsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKwor
ZnVuY3Rpb24gZGVsZXRlU3VjY2VzcygpIHsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBl
Y3RlZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5l
ZWRlZCA9IHVwZ3JhZGVOZWVkZWQiKTsKKyAgICBkZWJ1ZygiRklYTUU6IFRoaXMgc2hvdWxkIGdl
dCBhbiBlcnJvciBldmVudCBvZiB0eXBlIEFib3J0RXJyb3IiKTsKKyAgICBldmFsQW5kTG9nKCJy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOworICAgIHJlcXVlc3Qu
b25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gdXBn
cmFkZU5lZWRlZChldnQpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ1cGdyYWRlTmVl
ZGVkKCk6Iik7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjIiKTsKKyAgICB0cmFuc2FjdGlvbiA9IGV2
ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5l
eHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IG9uQWJv
cnQ7CisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24uYWJvcnQoKSIpOworfQorCitmdW5jdGlv
biBvbkFib3J0KGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9uQWJvcnQoKToi
KTsKKyAgICBldmVudCA9IGV2dDsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LmRiLnZlcnNp
b24iLCAiMCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQt
c2V0dmVyc2lvbi5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9p
bnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwOWNhODgxMDBlZDAxYjgx
Y2E5ZWIyN2M2NWIxZTNlOTQyZjI3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5qcwpA
QCAtMCwwICsxLDE5MCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNj
cmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAg
aW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQg
aW50IHZlcnNpb24gdXBncmFkZXMgYSBzdHJpbmcgdmVyc2lvbiBhbmQgdGhhdCBzdHJpbmcgdmVy
c2lvbnMgYXJlIHRoZW4gZGlzYWxsb3dlZCIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBy
ZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisKKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0KSIsICJbb2JqZWN0IElE
Qk9wZW5EQlJlcXVlc3RdIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNz
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitm
dW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
Q2FsbCBvcGVuIHdpdGggbm8gdmVyc2lvbiBwYXJhbWV0ZXI6Iik7CisgICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVO
ZWVkZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2Vk
Q2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9
IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7CisgICAg
ZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAiIik7CisgICAgZXZhbEFuZExvZygncmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oInNvbWUgdmVyc2lvbiIpJyk7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBpblNldFZlcnNpb247CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxi
YWNrOworfQorCitmdW5jdGlvbiBpblNldFZlcnNpb24oZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0
OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiaW5TZXRWZXJzaW9uKCk6Iik7CisgICAgdHJh
bnMgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIHRyYW5zLm9uY29tcGxldGUgPSBzZXRWZXJz
aW9uRG9uZTsKKyAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Cisg
ICAgZGIgPSB0cmFucy5kYjsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24i
LCAic29tZSB2ZXJzaW9uIik7CisgICAgLy8gRklYTUU6IEFkZCBhIHRlc3QgdGhhdCBjYWxscyBv
cGVuIHdpdGggdmVyc2lvbiBmcm9tIGhlcmUuCit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb25Eb25l
KGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNl
dFZlcnNpb25Eb25lKCk6Iik7CisgICAgZGIgPSBldmVudC50YXJnZXQuZGI7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAgIGV2YWxB
bmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERC
Lm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gc2Vj
b25kT3BlbiIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRD
YWxsYmFjazsKK30KKworZnVuY3Rpb24gc2Vjb25kT3BlbihldnQpCit7CisgICAgZXZlbnQgPSBl
dnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzZWNvbmRPcGVuKCk6Iik7CisgICAgZXZh
bEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInNvbWUgdmVyc2lvbiIpOworICAgIGV2YWxB
bmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICAvLyBGSVhNRTogQWRkIHRlc3RzIHRoYXQgY2FsbCBp
dCB3aXRoIDAsIC0xLCBhbmQgLTQuCisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWRE
Qi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZpcnN0
VXBncmFkZU5lZWRlZAorICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsK
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0T3BlbldpdGhWZXJzaW9uOworfQorCitmdW5j
dGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RVcGdyYWRlTmVlZGVkKCk6Iik7CisgICAgZXZhbEFu
ZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJTdHJpbmcocmVxdWVzdC50cmFuc2FjdGlvbikiLCAiW29iamVjdCBJREJU
cmFuc2FjdGlvbl0iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm9sZFZlcnNp
b24iLCAic29tZSB2ZXJzaW9uIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAi
MiIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRy
YW5zYWN0aW9uQ29tcGxldGVkIik7CisgICAgcmVxdWVzdC50cmFuc2FjdGlvbi5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Cit9CisKK3ZhciBkaWRUcmFuc2FjdGlvbkNvbXBsZXRl
ID0gZmFsc2U7CitmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRlZChldnQpCit7CisgICAgZXZl
bnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNvbXBsZXRl
ZCgpOiIpOworICAgIGV2YWxBbmRMb2coImRpZFRyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7
Cit9CisKK2Z1bmN0aW9uIGZpcnN0T3BlbldpdGhWZXJzaW9uKGV2dCkKK3sKKyAgICBldmVudCA9
IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImZpcnN0T3BlbldpdGhWZXJzaW9uKCk6
Iik7CisgICAgc2hvdWxkQmVUcnVlKCJkaWRUcmFuc2FjdGlvbkNvbXBsZXRlIik7CisgICAgZXZh
bEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxk
QmVOdWxsKCJyZXF1ZXN0LnRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24i
LCAiMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QpIiwgIltv
YmplY3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICBldmFsQW5kTG9nKCdyZXF1ZXN0ID0gZGIu
c2V0VmVyc2lvbigic3RyaW5nIHZlcnNpb24gMiIpJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJTdHJpbmcocmVxdWVzdCkiLCAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdF0i
KTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cisg
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25Ob3RBbGxvd2VkIik7Cit9CisK
K2Z1bmN0aW9uIHNldFZlcnNpb25Ob3RBbGxvd2VkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNpb25Ob3RBbGxvd2VkKCk6Iik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50eXBlIiwgImVycm9yIik7CisgICAgZGVi
dWcoInJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gIiArIHJlcXVlc3Qud2Via2l0RXJyb3JN
ZXNzYWdlKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5kTG9nKCJy
ZXF1ZXN0Lm9uZXJyb3IgPSBlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uIik7CisgICAgcmVxdWVz
dC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZXJyb3JX
aGVuVHJ5aW5nTG93VmVyc2lvbihldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWco
IiIpOworICAgIGRlYnVnKCJlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uKCk6Iik7CisgICAgZGVi
dWcoInJlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gIiArIHJlcXVlc3Qud2Via2l0RXJyb3JN
ZXNzYWdlKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
LCA0KSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFj
azsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBl
dmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNlY29uZFVwZ3JhZGVOZWVkZWQi
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IHRoaXJkT3BlblN1Y2Nlc3Mi
KTsKK30KKwordmFyIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIHNl
Y29uZFVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1Zygic2Vjb25kVXBncmFkZU5lZWRlZCgpOiIpOworICAgIGV2YWxBbmRMb2co
ImdvdFNlY29uZFVwZ3JhZGVOZWVkZWQgPSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9s
ZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjQiKTsK
K30KKworZnVuY3Rpb24gdGhpcmRPcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7
CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ0aGlyZE9wZW5TdWNjZXNzKCk6Iik7CisgICAg
c2hvdWxkQmVUcnVlKCJnb3RTZWNvbmRVcGdyYWRlTmVlZGVkIik7CisgICAgZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAi
NCIpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qu
b25zdWNjZXNzID0gZm91cnRoT3BlblN1Y2Nlc3MiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5l
ZWRlZCA9IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZm91
cnRoT3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1ZygiZm91cnRoT3BlblN1Y2Nlc3MoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICI0Iik7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2Vk
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNkMThkY2E3NzUxZGNjOTcwNDA1ODMxMzdkODI3MzkzN2U5YjU5NDgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzCkBAIC0wLDAgKzEsOTAgQEAKK2lmICh0aGlzLmltcG9y
dFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQor
CitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGJsb2NrZWQgZXZlbnRzIGdldCBkZWxpdmVyZWQgcHJv
cGVybHkgd2l0aCB0aGUgbmV3IG9wZW4gYXBpIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsK
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nl
c3MoZXZ0KSB7CisgICAgcHJlYW1ibGUoKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RT
dWNjZXNzRXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IGZhbHNlOworICAgIHJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1
bmN0aW9uIGZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShl
dnQpOworICAgIGV2YWxBbmRMb2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIp
OworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91bGRCZSgi
ZXZlbnQubmV3VmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJp
bmcoZXZlbnQpIiwgIltvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XSIpOworfQorCitnb3RC
bG9ja2VkRXZlbnQgPSBmYWxzZTsKK2Z1bmN0aW9uIGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcihl
dnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZVRydWUoImdvdEZpcnN0VXBn
cmFkZU5lZWRlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50
YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hh
bmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
IlN0cmluZyhjb25uZWN0aW9uMSkiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAgICBldmFs
QW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKSIpOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gYmxv
Y2tlZEV2ZW50SGFuZGxlcjsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNlY29uZFVw
Z3JhZGVOZWVkZWRFdmVudEhhbmRsZXI7Cit9CisKK3ZhciBzYXdWZXJzaW9uQ2hhbmdlRXZlbnQg
PSBmYWxzZTsKK2Z1bmN0aW9uIHZlcnNpb25DaGFuZ2VIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVh
bWJsZShldnQpOworICAgIGV2YWxBbmRMb2coInNhd1ZlcnNpb25DaGFuZ2VFdmVudCA9IHRydWUi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5n
ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0
IElEQlZlcnNpb25DaGFuZ2VFdmVudF0iKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0Iiwg
ImNvbm5lY3Rpb24xIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMiIpOwor
ICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjMiKTsKK30KKworZnVuY3Rpb24gYmxv
Y2tlZEV2ZW50SGFuZGxlcihldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRC
ZVRydWUoInNhd1ZlcnNpb25DaGFuZ2VFdmVudCIpOworICAgIGV2YWxBbmRMb2coImdvdEJsb2Nr
ZWRFdmVudCA9IHRydWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhldmVu
dCkiLCAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdIik7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm9sZFZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwg
IjMiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAiYmxvY2tlZCIp
OworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsKK30KKworZ290U2Vjb25k
VXBncmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiBzZWNvbmRVcGdyYWRlTmVlZGVk
RXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlVHJ1
ZSgiZ290QmxvY2tlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiZ290U2Vjb25kVXBncmFkZU5l
ZWRlZEV2ZW50ID0gdHJ1ZSIpOworfQorCitmdW5jdGlvbiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2so
ZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RTZWNvbmRV
cGdyYWRlTmVlZGVkRXZlbnQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZl
cnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NDNkMjBhYTJjZjBhZDllZTU5YTAzMGMzN2I5N2FlMzU1ZmRjOTEwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24tY2xvc2UtYmV0d2Vlbi1ldmVudHMuanMKQEAgLTAsMCArMSw3MyBAQAoraWYgKHRoaXMuaW1w
b3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9
CisKK2Rlc2NyaXB0aW9uKCJUcnkgdG8gY2FsbCBkYi5jbG9zZSgpIGFmdGVyIHVwZ3JhZGVuZWVk
ZWQgYnV0IGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBzdWNjZXNzIGV2ZW50IGZpcmVzIik7CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0
REJOYW1lRnJvbVBhdGgoKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRl
U3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVl
ZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsK
KyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7
CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9n
KCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVy
c2lvbiIsICI3Iik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29iamVj
dHN0b3JlJykiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0
LnRyYW5zYWN0aW9uIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9y
dENhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygidHJhbnNhY3Rpb24ub25jb21wbGV0ZToi
KTsKKyAgICAgICAgZXZhbEFuZExvZygic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUiKTsK
KyAgICAgICAgZXZhbEFuZExvZygic2V0VGltZW91dChjbG9zZURCLCAwKSIpOworICAgIH0KK30K
KwordmFyIGRpZENhbGxDbG9zZURCID0gZmFsc2U7CitmdW5jdGlvbiBjbG9zZURCKCkKK3sKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoImNsb3NlREIoKToiKTsKKyAgICBldmFsQW5kTG9nKCJk
aWRDYWxsQ2xvc2VEQiA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAg
ICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6
Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGlkQ2FsbENsb3NlREIiKTsKKyAgICBzaG91bGRCZVRy
dWUoInNhd1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCdkYi52ZXJzaW9uJywgIjciKTsK
KyAgICBpZiAoZGIudmVyc2lvbiAhPT0gNykgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5s
ZW5ndGgiLCAiMSIpOworICAgIGV2YWxBbmRMb2coImRiLnRyYW5zYWN0aW9uKGRiLm9iamVjdFN0
b3JlTmFtZXMpIik7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9z
ZS1pbi1vbmNvbXBsZXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NDRhNTdkNGEzYjkxOGMxMThjMWFjNWFj
ZDAwOTY4MWExZGNmOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmpzCkBAIC0w
LDAgKzEsNTggQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRz
KCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9y
dFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiQ2FsbCBkYi5jbG9zZSgp
IGluIHRoZSBjb21wbGV0ZSBoYW5kbGVyIGZvciBhIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9u
LCBiZWZvcmUgdGhlIHN1Y2Nlc3MgZXZlbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcGVuIGNhbGwg
ZmlyZXMiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGV2YWxB
bmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpIik7CisgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IHVwZ3JhZGVOZWVkZWQ7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tl
ZENhbGxiYWNrOworfQorCit2YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlOworZnVu
Y3Rpb24gdXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWco
IiIpOworICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24i
LCAiNyIpOworICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpIik7CisK
KyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIp
OworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAg
ICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAgICAgIGRl
YnVnKCIiKTsKKyAgICAgICAgZGVidWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7CisgICAg
ICAgIGV2YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgICAg
IGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNj
ZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
Im9wZW5TdWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdUcmFuc2FjdGlvbkNvbXBs
ZXRlIik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAg
c2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
InRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJywgJ3JlYWR3cml0ZScpIiwgIkRPTUV4
Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVk
ZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxNWMzZDIyMWY0N2Y3Nzc0
ODRjZjRmMTA5ODcwMTk5ODQ5ZjJlODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVl
ZGVkLmpzCkBAIC0wLDAgKzEsNTggQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBp
bXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycp
OworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVz
dCB0aGF0IHdoZW4gZGIuY2xvc2UgaXMgY2FsbGVkIGluIHVwZ3JhZGVuZWVkZWQsIHRoZSBkYiBp
cyBjbGVhbmVkIHVwIG9uIHJlZnJlc2guIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJl
bW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOwor
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2Vz
cyhldnQpIHsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
LCA3KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2Vk
ID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBz
YXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3Jh
ZGVOZWVkZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICI3Iik7CisKKyAgICBldmFsQW5k
TG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIpOworICAgIGV2YWxB
bmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpIik7CisgICAgZXZhbEFuZExvZygiZGIu
Y2xvc2UoKSIpOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxs
YmFjazsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CisgICAgICAg
IGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoInRyYW5zYWN0aW9uLm9uY29tcGxldGU6Iik7Cisg
ICAgICAgIGV2YWxBbmRMb2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAg
fQorfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7Cisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIHNob3VsZEJl
VHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIp
OworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJykiKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3Jh
ZGVuZWVkZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50
dmVyc2lvbi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjgwZTc0MDZi
OGIxYjQ2NzY5NDliNTRlM2M4MmY5NTgyZWRhY2ZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZGVsZXRlLWluLXVw
Z3JhZGVuZWVkZWQuanMKQEAgLTAsMCArMSw4MyBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
eworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0
aW9uKCJUZXN0IHRoYXQgYSBkZWxldGVEYXRhYmFzZSBjYWxsZWQgd2hpbGUgaGFuZGxpbmcgYW4g
dXBncmFkZW5lZWRlZCBldmVudCBpcyBxdWV1ZWQgYW5kIGZpcmVzIGl0cyBldmVudHMgYXQgdGhl
IHJpZ2h0IHRpbWUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBpbml0aWFsbHlEZWxldGVkOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCit2YXIgc2F3Rmlyc3RVcGdyYWRlTmVlZGVkID0gZmFs
c2U7Cit2YXIgYWxyZWFkeURlbGV0ZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIGluaXRpYWxseURlbGV0
ZWQoZXZ0KSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJpbml0aWFsbHlEZWxldGVkKCk6
Iik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSki
KTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVl
ZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkOworfQorCitmdW5jdGlvbiBmaXJzdFVwZ3JhZGVOZWVk
ZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
Zmlyc3RVcGdyYWRlTmVlZGVkKCk6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgic2F3Rmlyc3RVcGdy
YWRlTmVlZGVkIik7CisgICAgZXZhbEFuZExvZygic2F3Rmlyc3RVcGdyYWRlTmVlZGVkID0gdHJ1
ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQubmV3VmVyc2lvbiIsICIxIik7CisgICAgc2hvdWxkQmVGYWxzZSgiYWxyZWFkeURl
bGV0ZWQiKTsKKyAgICBpZiAoYWxyZWFkeURlbGV0ZWQpCisgICAgICAgIHJldHVybjsKKyAgICBh
bHJlYWR5RGVsZXRlZCA9IHRydWU7CisKKyAgICByZXF1ZXN0MiA9IGV2YWxBbmRMb2coImRlbGV0
ZVJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIGV2YWxB
bmRMb2coInJlcXVlc3QyLm9uc3VjY2VzcyA9IGRlbGV0ZUZyb21VcGdyYWRlTmVlZGVkU3VjY2Vz
cyIpOworICAgIHJlcXVlc3QyLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAg
ICByZXF1ZXN0Mi5vbmJsb2NrZWQgPSBkZWxldGVCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK3Nhd1Zl
cnNpb25DaGFuZ2UgPSBmYWxzZTsKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInJlcXVlc3Qub25zdWNjZXNz
KCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdGaXJzdFVwZ3JhZGVOZWVkZWQiKTsKKyAgICBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkYi5vbnZlcnNpb25j
aGFuZ2UgPSB2ZXJzaW9uQ2hhbmdlQ2FsbGJhY2s7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24n
LCAnMScpOworfQorCitmdW5jdGlvbiB2ZXJzaW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KSB7CisgICAg
cHJlYW1ibGUoKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIxIik7CisgICAg
c2hvdWxkQmVOdWxsKCJldmVudC5uZXdWZXJzaW9uIik7CisgICAgZXZhbEFuZExvZygic2F3VmVy
c2lvbkNoYW5nZSA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7Cit9CisK
K2Z1bmN0aW9uIGRlbGV0ZUJsb2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoKTsK
KyAgICBkZWJ1ZygiVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBmb3IgdGhlIGxvbmdzdGFuZGlu
ZyBodHRwOi8vY3JidWcuY29tLzEwMDEyMyIpOworfQorCitmdW5jdGlvbiBkZWxldGVGcm9tVXBn
cmFkZU5lZWRlZFN1Y2Nlc3MoZXZ0KQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZGVs
ZXRlRnJvbVVwZ3JhZGVOZWVkZWRTdWNjZXNzKCk6Iik7CisgICAgc2hvdWxkQmVUcnVlKCJzYXdW
ZXJzaW9uQ2hhbmdlIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9u
LWdhdGVkLW9uLWRlbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmFlYmE3NzJl
ZjdkZDI2YWU1Yzc0YWYzZjVhZDQ4ZDJlYmRhOGUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVs
ZXRlLmpzCkBAIC0wLDAgKzEsOTUgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBp
bXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycp
OworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVz
dCB0aGF0IGEgZGF0YWJhc2UgaXMgcmVjcmVhdGVkIGNvcnJlY3RseSB3aGVuIGFuIG9wZW4td2l0
aC12ZXJzaW9uIGNhbGwgaXMgcXVldWVkIGJlaGluZCBhIGRlbGV0ZURhdGFiYXNlIGNhbGwiKTsK
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBz
ZXREQk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRl
U3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBwcmVhbWJsZShldnQpOwor
ICAgIGRlYnVnZ2VyOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdFN1Y2Nl
c3NDYWxsYmFjayIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworfQorCitmdW5jdGlvbiBmaXJzdFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgZXZl
bnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmaXJzdFN1Y2Nlc3NDYWxsYmFj
aygpOiIpCisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gY29ubmVj
dGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2siKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0g
aW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNj
ZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9u
YmxvY2tlZCA9IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExv
ZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayIpOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworCisgICAgZXZh
bEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFs
QW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRDYWxsYmFjayIp
OworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3Vj
Y2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tl
ZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworfQorCitmdW5jdGlvbiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFt
YmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Cisg
ICAgZXZhbEFuZExvZygiZGIub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjJWZXJzaW9uQ2hh
bmdlQ2FsbGJhY2siKTsKK30KKworZnVuY3Rpb24gY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2Fs
bGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJldmVudC50eXBlIiwgInZlcnNpb25jaGFuZ2UiKTsKKyAgICBkZWJ1ZygiZXZlbnQudmVy
c2lvbiA9ICIgKyBldmVudC52ZXJzaW9uKTsKK30KKworZnVuY3Rpb24gY29ubmVjdGlvbjJWZXJz
aW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJldmVudC50eXBlIiwgInZlcnNpb25jaGFuZ2UiKTsKKyAgICBldmFs
QW5kTG9nKCJldmVudC50YXJnZXQuY2xvc2UoKSIpOworfQorCitmdW5jdGlvbiBkZWxldGVEYXRh
YmFzZUJsb2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBkZWJ1
ZygiRklYTUU6IHRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UsIGh0dHA6
Ly9jcmJ1Zy5jb20vMTM5Njk1Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEuY2xvc2Uo
KSIpOworfQorCitmdW5jdGlvbiBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayhldnQpCit7
CisgICAgcHJlYW1ibGUoZXZ0KTsKK30KKworZnVuY3Rpb24gdXBncmFkZU5lZWRlZENhbGxiYWNr
KGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJz
aW9uIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cit9CisK
K2Z1bmN0aW9uIG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJl
YW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmplY3RTdG9y
ZU5hbWVzLmxlbmd0aCIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2
ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24taW52YWxpZC1zZXR2
ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMxMjBkNDI1YWRjYTFm
NjZlY2Q3MzUxOWMyNWE3NDVhYjBhYWYyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lv
bi1oYXMtbm8tc2lkZS1lZmZlY3RzLmpzCkBAIC0wLDAgKzEsNzUgQEAKK2lmICh0aGlzLmltcG9y
dFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQor
CitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdoZW4gc2V0VmVyc2lvbiBpcyBjYWxsZWQgb24gYSBk
YiB3aXRoIGFuIGludGVnZXIgdmVyc2lvbiwgdmVyc2lvbmNoYW5nZSBldmVudHMgZG9uJ3QgZ2V0
IGZpcmVkIG9uIG90aGVyIG9wZW4gZGJzLiIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBy
ZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisgICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7Cisg
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNz
KGV2dCkgeworICAgIHByZWFtYmxlKCk7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpcnN0U3Vj
Y2Vzc0V2ZW50SGFuZGxlcjsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKKyAgICByZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IGZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrOworfQorCitmdW5j
dGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0
KTsKKyAgICBldmFsQW5kTG9nKCJnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWUiKTsK
KyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm5ld1ZlcnNpb24iLCAiMiIpOworfQorCitmdW5jdGlvbiBmaXJzdFN1Y2Nlc3NFdmVudEhh
bmRsZXIoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVUcnVlKCJnb3RG
aXJzdFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLm9udmVy
c2lvbmNoYW5nZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2siKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhjb25uZWN0aW9uMSkiLCAiW29iamVjdCBJREJEYXRh
YmFzZV0iKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qu
b25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IHVuZXhwZWN0ZWRVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0
aW9uIHNlY29uZFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAg
ICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbicpIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbkVycm9yIik7CisgICAgZXZhbEFuZExvZygicmVx
dWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrIik7CisgICAgZXZhbEFu
ZExvZygicmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrIik7Cit9
CisKK2Z1bmN0aW9uIHNldFZlcnNpb25FcnJvcihldnQpCit7CisgICAgcHJlYW1ibGUoKTsKKyAg
ICBkZWJ1ZygiT3BlbiB1cCBhIG5ldyBkYiB0byBlbnN1cmUgdGhhdCBpZiBjb25uZWN0aW9uMSB3
ZXJlIHRvIGdldCBhIHZlcnNpb25jaGFuZ2UgZXZlbnQsIGl0IHdpbGwgYmUgZGVsaXZlcmVkIGJl
Zm9yZSB0aGUgdGVzdCBmaW5pc2hlcyIpOworICAgIGV2YWxBbmRMb2coIm5ld19kYiA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSArICcyJykiKTsKKyAgICBldmFsQW5kTG9nKCJuZXdfZGIub25zdWNj
ZXNzID0gbmV3REJTdWNjZXNzIik7CisgICAgbmV3X2RiLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKKyAgICBuZXdfZGIub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gbmV3REJTdWNjZXNzKGV2dCkKK3sKKyAgICBwcmVhbWJsZSgp
OworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tbG9u
Zy1xdWV1ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjEzYWQ5OTIxMDQ5Y2M4OWQ4Zjk0YzhlYzFmMjVhN2Nm
OTMyZDA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5qcwpAQCAtMCwwICsxLDEzMiBAQAoraWYg
KHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVk
LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYSBkYXRhYmFzZSBpcyByZWNyZWF0
ZWQgY29ycmVjdGx5IHdoZW4gYW4gb3Blbi13aXRoLXZlcnNpb24gY2FsbCBpcyBxdWV1ZWQgYmVo
aW5kIGJvdGggYSBkZWxldGVEYXRhYmFzZSBhbmQgc2V0VmVyc2lvbiBjYWxsIik7CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1l
RnJvbVBhdGgoKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1
bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFs
QW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRM
b2coInJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RTdWNjZXNzQ2FsbGJhY2siKTsKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxv
Y2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGZpcnN0U3Vj
Y2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2co
ImNvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRMb2coImNv
bm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxi
YWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSki
KTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IHNlY29uZFN1Y2Nlc3NDYWxs
YmFjayIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
ICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKwor
ZnVuY3Rpb24gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQp
OworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24yID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwor
ICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24yLm9udmVyc2lvbmNoYW5nZSA9IGNvbm5lY3Rpb24y
VmVyc2lvbkNoYW5nZUNhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGNvbm5l
Y3Rpb24yLnNldFZlcnNpb24oJ3ZlcnNpb24gMicpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVz
dC5vbmJsb2NrZWQgPSBzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExv
ZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrIik7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9u
IGNvbm5lY3Rpb24xVmVyc2lvbkNoYW5nZUNhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShl
dnQpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJ2ZXJzaW9uY2hh
bmdlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC52ZXJzaW9uIiwgInZlcnNp
b24gMiIpOworfQorCitmdW5jdGlvbiBzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNrKGV2dCkKK3sK
KyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNldFZlcnNpb25C
bG9ja2VkQ2FsbGJhY2soKToiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uYmxv
Y2tlZCA9IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygi
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjayIpOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworCisgICAgZXZhbEFu
ZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkiKTsKKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWRDYWxsYmFjayIpOwor
ICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vz
c0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENh
bGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
ICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24xLmNsb3NlKCkiKTsKK30KKworZnVuY3Rpb24gc2V0
VmVyc2lvblN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBl
dmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFs
QW5kTG9nKCJkYiA9IHRyYW5zYWN0aW9uLmRiIik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3NvbWUgb2JqZWN0IHN0b3JlJykiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFu
c2FjdGlvbi5vbmNvbXBsZXRlID0gc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFj
ayIpOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjayhldnQp
Cit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50
LnRhcmdldC5kYi52ZXJzaW9uIiwgInZlcnNpb24gMiIpOworfQorCitmdW5jdGlvbiBjb25uZWN0
aW9uMlZlcnNpb25DaGFuZ2VDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5nZSIpOwor
ICAgIGRlYnVnKCJGSVhNRTogRmlyZSBhIHZlcnNpb25jaGFuZ2UgZXZlbnQgdGhhdCBoYXMgb2xk
VmVyc2lvbiBhbmQgbmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZl
bnQub2xkVmVyc2lvbiIsICJ2ZXJzaW9uIDIiKTsKKyAgICBzaG91bGRCZU51bGwoImV2ZW50Lm5l
d1ZlcnNpb24iKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgiZXZlbnQudmVyc2lvbiIpOworfQor
CitmdW5jdGlvbiBkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJl
YW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uMi5jbG9zZSgpIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5vbGRWZXJzaW9uIiwgInZlcnNpb24gMiIpOwor
ICAgIHNob3VsZEJlTnVsbCgiZXZlbnQubmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlVW5kZWZp
bmVkKCJldmVudC52ZXJzaW9uIik7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURhdGFiYXNlU3VjY2Vz
c0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlTm9uTnVs
bCgiZXZlbnQub2xkVmVyc2lvbiIpOworICAgIHNob3VsZEJlTnVsbCgiZXZlbnQubmV3VmVyc2lv
biIpOworICAgIHNob3VsZEJlTnVsbCgiZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworfQorCit2YXIg
Z290VXBncmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkQ2Fs
bGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZ290VXBn
cmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9u
IiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIwIik7Cit9CisKK2Z1
bmN0aW9uIG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1i
bGUoZXZ0KTsKKyAgICBzaG91bGRCZVRydWUoImdvdFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAg
IHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwg
IjAiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJh
bWV0ZXIuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVy
c2lvbi1vbWl0LXBhcmFtZXRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2ZlY2Q2MGI5YTRhYWIxNzM2Y2Fm
NTk0ZmNhOGY5ZDgxMGY1MWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMKQEAgLTAs
MCArMSwzOSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMo
Jy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0
U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgaW5pdGlh
bCB2ZXJzaW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIGEgbm9uLWV4aXN0ZW50IGRiIGlz
IDEiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
KyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKKyAgICAg
IHRlc3RQYXNzZWQoIkdvdCB1cGdyYWRlbmVlZGVkIGV2ZW50Iik7CisgICAgfQorfQorCitmdW5j
dGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZGVidWcoIlRlc3QgbGluZSBmcm9tIElEQkZh
Y3Rvcnkub3BlbjogSWYgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWQgYW5kIG5vIGRhdGFiYXNlIGV4
aXN0cywgc2V0IGRhdGFiYXNlIHZlcnNpb24gdG8gMS4iKTsKKyAgICBzaG91bGRCZSgnZGIudmVy
c2lvbicsICcxJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9w
ZW4td2l0aC12ZXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhiMzNkNTY4
ZDJjYjIzYTI2ZTQyZGI3NTA5MmRmOWM4OTNmMGFjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLW9wZW4td2l0aC12
ZXJzaW9uLmpzCkBAIC0wLDAgKzEsNzYgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAg
ICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigi
VGVzdCB0aGF0IHNwZWNpZnlpbmcgYSB2ZXJzaW9uIHdoZW4gb3BlbmluZyBhIG5vbi1leGlzdGVu
dCBkYiBjYXVzZXMgYW4gdXBncmFkZW5lZWRlZCBldmVudCBhbmQgdGhhdCB0aGUgdmVyc2lvbiBu
dW1iZXIgaXMgc2V0IGNvcnJlY3RseS4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVt
b3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhw
ZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7
CisgICAgZGVidWcoIlNob3VsZCB0cmlnZ2VyOiIpOworICAgIGRlYnVnKCI0LjEuNDogSWYgbm8g
ZGF0YWJhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBvcmlnaW4gb3JpZ2luIHdhcyBm
b3VuZCwgb3IgaWYgaXQgd2FzIGRlbGV0ZWQgZHVyaW5nIHRoZSBwcmV2aW91cyBzdGVwLCB0aGVu
IGNyZWF0ZSBhIGRhdGFiYXNlIHdpdGggbmFtZSBuYW1lLCB3aXRoIDAgYXMgdmVyc2lvbiwgYW5k
IHdpdGggbm8gb2JqZWN0IHN0b3Jlcy4gTGV0IGRiIGJlIHRoZSBuZXcgZGF0YWJhc2UuIik7Cisg
ICAgZGVidWcoIjQuMS42OiBDcmVhdGUgYSBuZXcgY29ubmVjdGlvbiB0byBkYiBhbmQgbGV0IGNv
bm5lY3Rpb24gcmVwcmVzZW50IGl0LiIpOworICAgIGRlYnVnKCI0LjEuNzogSWYgdGhlIHZlcnNp
b24gb2YgZGIgaXMgbG93ZXIgdGhhbiB2ZXJzaW9uLCB0aGVuIHJ1biB0aGUgc3RlcHMgZm9yIHJ1
bm5pbmcgYSBcInZlcnNpb25jaGFuZ2VcIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0aW9uLCB2
ZXJzaW9uLCByZXF1ZXN0IGFuZCB1cGdyYWRlIGNhbGxiYWNrLiIpOworICAgIGRlYnVnKCI0LjEu
OTogUmV0dXJuIGNvbm5lY3Rpb24uIik7CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCA3KSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3Ry
aW5nKHJlcXVlc3QpIiwgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0g
dXBncmFkZU5lZWRlZDsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2Vk
Q2FsbGJhY2s7CisgICAgZGVidWcoIiIpOworfQorCit2YXIgc2F3VXBncmFkZU5lZWRlZCA9IGZh
bHNlOwordmFyIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3Jh
ZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIHRlc3RQYXNzZWQoIkluIHRo
ZSB1cGdyYWRlbmVlZGVkIGV2ZW50IGhhbmRlcjoiKTsKKyAgICBkZWJ1ZygiVGVzdCA0LjguOS4x
OiIpOworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGRiKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIp
OworICAgIGRlYnVnKCJUZXN0IDQuOC45LjM6Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZl
cnNpb24iLCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjciKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIiwgImRvbmUi
KTsKKyAgICBkZWJ1ZygiVGVzdCA0LjEuNDoiKTsKKyAgICBzaG91bGRCZSgiZGIubmFtZSIsICJk
Ym5hbWUiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICI3Iik7CisgICAgc2hvdWxkQmUo
ImRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAiKTsKKworICAgIGV2YWxBbmRMb2coInRy
YW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJTdHJpbmcodHJhbnNhY3Rpb24pIiwgIltvYmplY3QgSURCVHJhbnNhY3Rpb25d
Iik7CisgICAgZXZhbEFuZExvZygnb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29tZU9TIikn
KTsKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Cisg
ICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGV2YWxBbmRM
b2coInNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIik7CisgICAgfQorICAgIHNhd1VwZ3Jh
ZGVOZWVkZWQgPSB0cnVlOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCit7CisgICAg
ZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIp
OworICAgIGRlYnVnKCJUZXN0IDQuMS43LCB0aGF0IGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
biB3YXMgcnVuLiIpOworICAgIHNob3VsZEJlKCJzYXdVcGdyYWRlTmVlZGVkIiwgInRydWUiKTsK
KyAgICBzaG91bGRCZVRydWUoInNhd1RyYW5zYWN0aW9uQ29tcGxldGUiKTsKKyAgICBkYiA9IGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGRlYnVnKCJLaW5kIG9m
IHRlc3QgNC4xLjk6Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwg
IltvYmplY3QgSURCRGF0YWJhc2VdIik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNpb24nLCAiNyIp
OworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwppbmRleCBhMDZmNWFmNDAwY2Y4
OTMwYTY2MDdkZTc5Y2VlZmMxYTAwMTc4Yzg3Li5lM2RmMzM4ZWE3NWZjYzg1YzYxNDM2M2Q0NTJi
MzBhNjI0ODc0OTQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvc2hhcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9zaGFyZWQuanMKQEAgLTc3LDYgKzc3LDEyIEBAIGZ1bmN0aW9uIHVuZXhwZWN0ZWRV
cGdyYWRlTmVlZGVkQ2FsbGJhY2soKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCitmdW5jdGlv
biB1bmV4cGVjdGVkVmVyc2lvbkNoYW5nZUNhbGxiYWNrKCkKK3sKKyAgICB0ZXN0RmFpbGVkKCJv
bnZlcnNpb25jaGFuZ2UgY2FsbGVkIHVuZXhwZWN0ZWRseSIpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCiBmdW5jdGlvbiBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKGNtZCwgZXhjZXB0aW9uQ29k
ZSwgZXhjZXB0aW9uTmFtZSkKIHsKICAgICBkZWJ1ZygiRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9t
ICIgKyBjbWQpOwpAQCAtMTIzLDYgKzEyOSwxOCBAQCBmdW5jdGlvbiBkZWxldGVBbGxPYmplY3RT
dG9yZXMoZGIpCiAgICAgZGVidWcoIkRlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuIik7CiB9CiAK
K2Z1bmN0aW9uIHNldERCTmFtZUZyb21QYXRoKCkgeworICAgIGV2YWxBbmRMb2coJ2RibmFtZSA9
ICInICsgc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMSArIHNlbGYubG9jYXRpb24u
cGF0aG5hbWUubGFzdEluZGV4T2YoIi8iKSkgKyAnIicpOworfQorCitmdW5jdGlvbiBwcmVhbWJs
ZShldnQpCit7CisgICAgaWYgKGV2dCkKKyAgICAgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWco
IiIpOworICAgIGRlYnVnKHByZWFtYmxlLmNhbGxlci5uYW1lICsgIigpOiIpOworfQorCiAvLyBG
b3IgV29ya2VycwogaWYgKCFzZWxmLkRPTUV4Y2VwdGlvbikgewogICAgIHNlbGYuRE9NRXhjZXB0
aW9uID0gewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155885</attachid>
            <date>2012-08-01 14:28:45 -0700</date>
            <delta_ts>2012-08-01 16:27:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-92560-20120801142827.patch</filename>
            <type>text/plain</type>
            <size>68533</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzcwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWY2ZTJmYjQyNTA3MjA4YTA4MmI0
YWI3NWQ1MzdmMThmMzJmZTliZS4uN2I4MzQ4NWFmNmI5NmU3YTM5NTFjYWFmN2FkMzdiZjU5MDI4
OTIxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA3LTMxICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IGludGVnZXIgdmVyc2lv
biBsYXlvdXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkyNTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTmF0ZSBDaGFwaW4uCisKKyAgICAg
ICAgTW9zdCBvZiB0aGUgaW50ZWdlciB2ZXJzaW9uIGxheW91dCB0ZXN0cyBhcmUgaGVyZSwgd2l0
aCBmYWlsdXJlcyBpbgorICAgICAgICB0aGUgZXhwZWN0ZWQgZmlsZXMuICBUaGlzIHdpbGwgYWxs
b3cgdXMgdG8gaW5jcmVtZW50YWxseSBpbXBsZW1lbnQKKyAgICAgICAgdXBncmFkZW5lZWRlZCBh
bmQgaW50ZWdlciB2ZXJzaW9ucyBhbmQganVzdCBtYWtlIHRoZSBiaWcgcGF0Y2ggaW4gYnVnCisg
ICAgICAgIDg5NTA1IHNtYWxsZXIuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBhZGRlZCBza2lw
cyB0byBUZXN0RXhwZWN0YXRpb25zLCBvbmUgdGVzdCBleHBvc2VzIGEgYnVnCisgICAgICAgIGlu
IHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBjYXVzaW5nIGFuIGFzc2VydCB0byBmYWlsLiAg
VGhlIG90aGVyCisgICAgICAgIHRpbWVzIG91dCBpbiBEUlQgc28gd2Ugd2lsbCBydW4gaXQgYXMg
YSBjb250ZW50X2Jyb3dzZXJ0ZXN0IGZvciB0aGUKKyAgICAgICAgdGltZSBiZWluZy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0
dmVyc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vl
bi1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBn
cmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVk
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVs
ZXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
aW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVy
c2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1vbWl0LXBhcmFtZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgYW5kIHRoZWlyIHJlc3BlY3RpdmUganMgZmlsZXMuLi4KKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAo
dW5leHBlY3RlZFZlcnNpb25DaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChzZXREQk5hbWVGcm9t
UGF0aCk6CisgICAgICAgIChwcmVhbWJsZSk6CisKIDIwMTItMDgtMDEgIEZsb3JpbiBNYWxpdGEg
IDxmbWFsaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTVkcgYW5pbWF0aW9uIG5vdCB3b3Jr
aW5nIGZvciBlbGVtZW50cyBpbnNlcnRlZCBhZnRlciBwYXJzaW5nIGlzIGZpbmlzaGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1MmY2
OWM0MTE2OGMzNWU3NWRiYTc4MTVmM2ZhZmY4OTM0OTgwNzQxLi5mZDVlMjk2MGI4NmFjMTRhYTdk
MzRiNWE0ODE2OWYzZDA0ZjkzMzYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0NTksNiArMzQ1OSwxMiBAQCBCVUdXSzkxMjU1IExJ
T04gOiBmYXN0L211bHRpY29sL3RhYmxlLXZlcnRpY2FsLWFsaWduLmh0bWwgPSBURVhUCiAvLyBG
YWlscyBzaW5jZSBjcmVhdGlvbiBpbiAxMjI2NjMKIEJVR1dLOTEzNzIgV0lOIDogY3NzMi4xLzIw
MTEwMzIzL3ZlcnRpY2FsLWFsaWduLWJveGVzLTAwMS5odG0gPSBJTUFHRQogCisvLyBUaW1lcyBv
dXQgaW4gRFJULCBidXQgd29ya3MgaW4gY2hyb21lCitCVUdXSzkyNzc2IFNLSVAgOiBzdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwgPSBQQVNT
CisKKy8vIFdpbGwgd29yayB3aGVuIHRoZSBwYXRjaCBpbiA5Mjg5NyBsYW5kcy4KK0JVR1dLOTI4
OTcgU0tJUCA6IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sID0g
UEFTUworCiAvLyBTdGFydGVkIGZhaWxpbmcgYXJvdW5kIHIxMjI3NzAKIEJVR1dLOTE0NDUgTElO
VVggOiBwbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUuaHRtbCA9IFBBU1MgSU1BR0UKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9y
dC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MDgzY2Q3N2E5ZDUwNmIxZjk2NWM4ZDM0MDVhN2Q4
OTJhYTZhNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxOCBAQAorVGVzdCB0aGF0IGFuIGFib3J0IGluIHRoZSBpbml0aWFsIHVwZ3Jh
ZGVuZWVkZWQgc2V0cyB2ZXJzaW9uIGJhY2sgdG8gMAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5l
ZWRlZC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5v
cGVuKGRibmFtZSwgMikKK3JlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZAor
RklYTUU6IFRoaXMgc2hvdWxkIGdldCBhbiBlcnJvciBldmVudCBvZiB0eXBlIEFib3J0RXJyb3IK
K3JlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrCitGQUlMIFN1Y2Nlc3Mg
ZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0
aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjhhYzBkMGU3Yzk4MDU1MjNkZTQ4
Y2EwMzIxNzYxYjNmMjUzZjdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRt
bApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0
dmVyc2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjIyMmNhMTVkMDljNzRkM2EyZjQ0Nzk4
ZDIwYmRjMThlNTMyNTE2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNTAgQEAKK1Rlc3QgdGhhdCBpbnQgdmVyc2lvbiB1cGdyYWRlcyBhIHN0cmluZyB2ZXJzaW9u
IGFuZCB0aGF0IHN0cmluZyB2ZXJzaW9ucyBhcmUgdGhlbiBkaXNhbGxvd2VkCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxm
LndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERC
IHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24tYW5kLXNldHZlcnNp
b24uaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitGQUlMIFN0cmluZyhy
ZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XS4gV2FzIFtvYmplY3Qg
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3RdLgorCitDYWxsIG9wZW4gd2l0aCBubyB2ZXJzaW9uIHBh
cmFtZXRlcjoKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKKworb3BlblN1Y2Nlc3MoKToKK2RiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzICIiCityZXF1ZXN0ID0gZGIu
c2V0VmVyc2lvbigic29tZSB2ZXJzaW9uIikKKworaW5TZXRWZXJzaW9uKCk6CitQQVNTIGRiLnZl
cnNpb24gaXMgInNvbWUgdmVyc2lvbiIKKworc2V0VmVyc2lvbkRvbmUoKToKK1BBU1MgZGIudmVy
c2lvbiBpcyAic29tZSB2ZXJzaW9uIgorZGIuY2xvc2UoKQoraW5kZXhlZERCLm9wZW4oZGJuYW1l
KQorcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRPcGVuCisKK3NlY29uZE9wZW4oKToKK2RiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFi
YXNlXSIKK1BBU1MgZGIudmVyc2lvbiBpcyAic29tZSB2ZXJzaW9uIgorZGIuY2xvc2UoKQorcmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKKworZmlyc3RPcGVuV2l0aFZlcnNpb24o
KToKK0ZBSUwgZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3Qg
SURCRGF0YWJhc2VdIgorUEFTUyByZXF1ZXN0LnRyYW5zYWN0aW9uIGlzIG51bGwKK0ZBSUwgZGIu
dmVyc2lvbiBzaG91bGQgYmUgMiAob2YgdHlwZSBudW1iZXIpLiBXYXMgc29tZSB2ZXJzaW9uIChv
ZiB0eXBlIHN0cmluZykuCitGQUlMIFN0cmluZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJ
REJPcGVuREJSZXF1ZXN0XS4gV2FzIFtvYmplY3QgSURCUmVxdWVzdF0uCityZXF1ZXN0ID0gZGIu
c2V0VmVyc2lvbigic3RyaW5nIHZlcnNpb24gMiIpCitQQVNTIFN0cmluZyhyZXF1ZXN0KSBpcyAi
W29iamVjdCBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdF0iCityZXF1ZXN0Lm9uZXJyb3IgPSBzZXRW
ZXJzaW9uTm90QWxsb3dlZAorRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVk
bHkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQt
c2V0dmVyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1hbmQtc2V0dmVyc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNmRlZDM5ZTAxM2YzY2M1NTdjYmI2
MDgzZjhlNzZmYWMyMjhmOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmh0bWwKQEAgLTAsMCArMSwxMCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50
dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYzNjY2YyYzM0YmZm
MDk0OTQzZTYxM2ZhMGRiNjM4N2RmYmEzOTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjYgQEAKK1Rlc3QgdGhhdCBibG9ja2VkIGV2ZW50cyBnZXQgZGVsaXZlcmVkIHByb3Bl
cmx5IHdpdGggdGhlIG5ldyBvcGVuIGFwaQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCisKK2RlbGV0ZVN1Y2Nlc3MoKToKK3JlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDIpCisKK2ZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgorRkFJTCBnb3RG
aXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorY29ubmVj
dGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Citjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2Ug
PSB2ZXJzaW9uQ2hhbmdlSGFuZGxlcgorUEFTUyBTdHJpbmcoY29ubmVjdGlvbjEpIGlzICJbb2Jq
ZWN0IElEQkRhdGFiYXNlXSIKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpCisK
K3NlY29uZFN1Y2Nlc3NDYWxsYmFjaygpOgorRkFJTCBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZl
bnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzODdkZWViODA0
MDRhNTk3NzEyYTMzYWRjODZhMThjNjNlZTRmOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbApAQCAtMCwwICsx
LDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hh
cmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmMwNjA5ZWU0YzA1YTFlN2RhMWE4ZTkxYTllOWE4ODkzMDg4MGRmZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUcnkgdG8g
Y2FsbCBkYi5jbG9zZSgpIGFmdGVyIHVwZ3JhZGVuZWVkZWQgYnV0IGJlZm9yZSB0aGUgY29ycmVz
cG9uZGluZyBzdWNjZXNzIGV2ZW50IGZpcmVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8
fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWRE
QjsKKworZGJuYW1lID0gImludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMuaHRtbCIKK2lu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCA3KQorCisKK29wZW5TdWNjZXNzKCk6CitQQVNTIGRpZENhbGxDbG9zZURCIGlzIGZh
bHNlCitGQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxz
ZS4KK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3
IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdl
ZW4tZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUwZTNjMWE3MjhjNzNkNWEyNzAyZDEzMTU1MDU0
OGU0NmYxMTZlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMuaHRtbApAQCAtMCwwICsxLDEwIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2
ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTY1ZWRiMjRiZGQ2ZTIxOTczMjUyNGMxMTk1OGJlMjQwYzkzZjhjYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorQ2Fs
bCBkYi5jbG9zZSgpIGluIHRoZSBjb21wbGV0ZSBoYW5kbGVyIGZvciBhIHZlcnNpb24gY2hhbmdl
IHRyYW5zYWN0aW9uLCBiZWZvcmUgdGhlIHN1Y2Nlc3MgZXZlbnQgYXNzb2NpYXRlZCB3aXRoIHRo
ZSBvcGVuIGNhbGwgZmlyZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4
ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96
SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5h
bWUgPSAiaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwiCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykK
Kworb3BlblN1Y2Nlc3MoKToKK0ZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUg
dHJ1ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitGQUlMIGRiLnZlcnNp
b24gc2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgor
RXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29z
JywgJ3JlYWR3cml0ZScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorRkFJTCBjb2RlIHNo
b3VsZCBiZSAxMS4gV2FzIDguCitGQUlMIGVuYW1lIHNob3VsZCBiZSBJbnZhbGlkU3RhdGVFcnJv
ci4gV2FzIE5vdEZvdW5kRXJyb3IuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNTljNjA1YjAzZDY4MTBhMzY2NzBhY2ZhNTI3NWMyMGEyODI5NjVhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1p
bi1vbmNvbXBsZXRlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBs
ZXRlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRl
bmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVl
ZDg1ZDQ4MTlkZDAwYTNlMGUzNGFjOWM0NGQyOWNjNGRhMWQwYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFk
ZW5lZWRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorVGVzdCB0aGF0IHdoZW4gZGIu
Y2xvc2UgaXMgY2FsbGVkIGluIHVwZ3JhZGVuZWVkZWQsIHRoZSBkYiBpcyBjbGVhbmVkIHVwIG9u
IHJlZnJlc2guCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBz
ZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImlu
dHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCisKKwor
b3BlblN1Y2Nlc3MoKToKK0ZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitGQUlMIGRiLnZlcnNpb24g
c2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgordHJh
bnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnKQorRkFJTCB0cmFuc2FjdGlvbiA9IGRiLnRy
YW5zYWN0aW9uKCdvcycpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9N
IElEQkRhdGFiYXNlIEV4Y2VwdGlvbiA4CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMGJhNTg0ZTJiZGIwYjNjMmVkYzIzYmM1MDljZjFiMGU0ZGQ5NTM1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW50dmVyc2lvbi1jbG9z
ZS1pbi11cGdyYWRlbmVlZGVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1k
ZWxldGUtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MTRkMjljMDY3MjU1YzA2YTdmNTMyZTE3YWVjOTJhN2I1YmE5ZjkzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1kZWxldGUtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MSBAQAor
VGVzdCB0aGF0IGEgZGVsZXRlRGF0YWJhc2UgY2FsbGVkIHdoaWxlIGhhbmRsaW5nIGFuIHVwZ3Jh
ZGVuZWVkZWQgZXZlbnQgaXMgcXVldWVkIGFuZCBmaXJlcyBpdHMgZXZlbnRzIGF0IHRoZSByaWdo
dCB0aW1lCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxm
LmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8
fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZl
cnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRh
YmFzZShkYm5hbWUpCisKK2luaXRpYWxseURlbGV0ZWQoKToKK3JlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDEpCisKK2ZpcnN0VXBncmFkZU5lZWRlZCgpOgorUEFTUyBzYXdGaXJzdFVw
Z3JhZGVOZWVkZWQgaXMgZmFsc2UKK3Nhd0ZpcnN0VXBncmFkZU5lZWRlZCA9IHRydWUKK1BBU1Mg
ZXZlbnQub2xkVmVyc2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMQorUEFTUyBh
bHJlYWR5RGVsZXRlZCBpcyBmYWxzZQorZGVsZXRlUmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCityZXF1ZXN0Mi5vbnN1Y2Nlc3MgPSBkZWxldGVGcm9tVXBncmFkZU5l
ZWRlZFN1Y2Nlc3MKKworcmVxdWVzdC5vbnN1Y2Nlc3MoKToKK1BBU1Mgc2F3Rmlyc3RVcGdyYWRl
TmVlZGVkIGlzIHRydWUKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9u
IGlzIDEKKwordmVyc2lvbkNoYW5nZUNhbGxiYWNrKCk6CitGQUlMIGV2ZW50Lm9sZFZlcnNpb24g
c2hvdWxkIGJlIDEgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRl
ZmluZWQpLgorRkFJTCBldmVudC5uZXdWZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0eXBlIG9i
amVjdCkuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK3Nhd1ZlcnNpb25DaGFu
Z2UgPSB0cnVlCitkYi5jbG9zZSgpCisKK2RlbGV0ZUJsb2NrZWRDYWxsYmFjaygpOgorVGhpcyBz
aG91bGRuJ3QgaGFwcGVuIGJ1dCBmb3IgdGhlIGxvbmdzdGFuZGluZyBodHRwOi8vY3JidWcuY29t
LzEwMDEyMworCitkZWxldGVGcm9tVXBncmFkZU5lZWRlZFN1Y2Nlc3MoKToKK1BBU1Mgc2F3VmVy
c2lvbkNoYW5nZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZGVsZXRlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MTQ5ZmE1OTI1NjRkMWEwYTEyYTZjYzJmY2UxYTk0N2FiMWQ0MTEwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1kZWxl
dGUtaW4tdXBncmFkZW5lZWRlZC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tZGVsZXRlLWlu
LXVwZ3JhZGVuZWVkZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVk
LW9uLWRlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYxNTNk
MGQ5NGUyMDhjMWYzYTRlYTRjYmI2ZWRhODVjOTdiM2I4OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDU0IEBACitUZXN0IHRoYXQgYSBkYXRhYmFzZSBpcyByZWNy
ZWF0ZWQgY29ycmVjdGx5IHdoZW4gYW4gb3Blbi13aXRoLXZlcnNpb24gY2FsbCBpcyBxdWV1ZWQg
YmVoaW5kIGEgZGVsZXRlRGF0YWJhc2UgY2FsbAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIg
fHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVk
REI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS5odG1sIgoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKKworZGVsZXRlU3VjY2VzcygpOgorcmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RTdWNjZXNz
Q2FsbGJhY2sKKworZmlyc3RTdWNjZXNzQ2FsbGJhY2soKToKK2Nvbm5lY3Rpb24xID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAorY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjFW
ZXJzaW9uQ2hhbmdlQ2FsbGJhY2sKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCity
ZXF1ZXN0Lm9uc3VjY2VzcyA9IHNlY29uZFN1Y2Nlc3NDYWxsYmFjaworcmVxdWVzdCA9IGluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCityZXF1ZXN0Lm9uYmxvY2tlZCA9IGRlbGV0ZURh
dGFiYXNlQmxvY2tlZENhbGxiYWNrCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZURhdGFiYXNl
U3VjY2Vzc0NhbGxiYWNrCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKQorcmVx
dWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkQ2FsbGJhY2sKK3JlcXVlc3Qub25z
dWNjZXNzID0gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrCisKK3NlY29uZFN1Y2Nlc3ND
YWxsYmFjaygpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitkYi5vbnZlcnNpb25jaGFuZ2Ug
PSBjb25uZWN0aW9uMlZlcnNpb25DaGFuZ2VDYWxsYmFjaworCitjb25uZWN0aW9uMVZlcnNpb25D
aGFuZ2VDYWxsYmFjaygpOgorUEFTUyBldmVudC50eXBlIGlzICJ2ZXJzaW9uY2hhbmdlIgorZXZl
bnQudmVyc2lvbiA9IAorCitjb25uZWN0aW9uMlZlcnNpb25DaGFuZ2VDYWxsYmFjaygpOgorUEFT
UyBldmVudC50eXBlIGlzICJ2ZXJzaW9uY2hhbmdlIgorZXZlbnQudGFyZ2V0LmNsb3NlKCkKKwor
ZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2soKToKK0ZJWE1FOiB0aGlzIGZ1bmN0aW9uIHNo
b3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlLCBodHRwOi8vY3JidWcuY29tLzEzOTY5NQorY29ubmVj
dGlvbjEuY2xvc2UoKQorCitkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjaygpOgorRklYTUU6
IHRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UsIGh0dHA6Ly9jcmJ1Zy5j
b20vMTM5Njk1Citjb25uZWN0aW9uMS5jbG9zZSgpCisKK2RlbGV0ZURhdGFiYXNlU3VjY2Vzc0Nh
bGxiYWNrKCk6CisKK29wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaygpOgorUEFTUyBldmVu
dC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxl
dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMTk1YjZkZjlkY2ExOTcwMmEzNzVkMzk5Nzk1NDNmYWJmMGY3
ZjA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnR2ZXJzaW9uLWdhdGVk
LW9uLWRlbGV0ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1z
ZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1pbnZhbGlkLXNldHZlcnNpb24taGFzLW5vLXNp
ZGUtZWZmZWN0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc0ZTVhYTdmYmFjNjhmYTUxZmRk
YTUxYTU0ZmZlNTNmNmI5Y2E1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVm
ZmVjdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzEgQEAKK1Rlc3QgdGhhdCB3aGVuIHNldFZl
cnNpb24gaXMgY2FsbGVkIG9uIGEgZGIgd2l0aCBhbiBpbnRlZ2VyIHZlcnNpb24sIHZlcnNpb25j
aGFuZ2UgZXZlbnRzIGRvbid0IGdldCBmaXJlZCBvbiBvdGhlciBvcGVuIGRicy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNl
bGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVk
REIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiaW50dmVyc2lvbi1pbnZhbGlkLXNl
dHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFi
YXNlKGRibmFtZSkKKworZGVsZXRlU3VjY2VzcygpOgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgMikKKworZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKCk6CitGQUlMIGdvdEZpcnN0
VXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitjb25uZWN0aW9u
MSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2Nvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IHVu
ZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2sKK1BBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBp
cyAiW29iamVjdCBJREJEYXRhYmFzZV0iCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
KQorCitzZWNvbmRTdWNjZXNzQ2FsbGJhY2soKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAor
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24nKQorcmVxdWVzdC5vbmVycm9yID0gc2V0
VmVyc2lvbkVycm9yCityZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJh
Y2sKK3JlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjaworRkFJTCBv
bnZlcnNpb25jaGFuZ2UgY2FsbGVkIHVuZXhwZWN0ZWRseQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRl
LWVmZmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
aW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MjlhMDNiMzczNGEzMjc0MTIwMTg5NjhiYjU5ZjM3Y2JhZmIxNmE5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1pbnZhbGlkLXNldHZl
cnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24taW52
YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZWZmMDk1YzNmNjM5MDc2NzkzNjk0ZDE1N2U2ZmExMzIwMWIzNjdiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1
ZXVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc5IEBACitUZXN0IHRoYXQgYSBkYXRhYmFzZSBp
cyByZWNyZWF0ZWQgY29ycmVjdGx5IHdoZW4gYW4gb3Blbi13aXRoLXZlcnNpb24gY2FsbCBpcyBx
dWV1ZWQgYmVoaW5kIGJvdGggYSBkZWxldGVEYXRhYmFzZSBhbmQgc2V0VmVyc2lvbiBjYWxsCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWRE
QiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1z
SW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gImludHZlcnNpb24tbG9u
Zy1xdWV1ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKKworZGVsZXRl
U3VjY2VzcygpOgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qub25z
dWNjZXNzID0gZmlyc3RTdWNjZXNzQ2FsbGJhY2sKKworZmlyc3RTdWNjZXNzQ2FsbGJhY2soKToK
K2Nvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorY29ubmVjdGlvbjEub252ZXJzaW9u
Y2hhbmdlID0gY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2sKK3JlcXVlc3QgPSBpbmRl
eGVkREIub3BlbihkYm5hbWUpCityZXF1ZXN0Lm9uc3VjY2VzcyA9IHNlY29uZFN1Y2Nlc3NDYWxs
YmFjaworCitzZWNvbmRTdWNjZXNzQ2FsbGJhY2soKToKK2Nvbm5lY3Rpb24yID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAorY29ubmVjdGlvbjIub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjJWZXJz
aW9uQ2hhbmdlQ2FsbGJhY2sKK3JlcXVlc3QgPSBjb25uZWN0aW9uMi5zZXRWZXJzaW9uKCd2ZXJz
aW9uIDInKQorcmVxdWVzdC5vbmJsb2NrZWQgPSBzZXRWZXJzaW9uQmxvY2tlZENhbGxiYWNrCity
ZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzQ2FsbGJhY2sKKworY29ubmVjdGlv
bjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lvbmNo
YW5nZSIKK1BBU1MgZXZlbnQudmVyc2lvbiBpcyAidmVyc2lvbiAyIgorCitzZXRWZXJzaW9uQmxv
Y2tlZENhbGxiYWNrKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKK3JlcXVlc3Qub25ibG9ja2VkID0gZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2sKK3Jl
cXVlc3Qub25zdWNjZXNzID0gZGVsZXRlRGF0YWJhc2VTdWNjZXNzQ2FsbGJhY2sKK3JlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDEpCityZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVw
Z3JhZGVOZWVkZWRDYWxsYmFjaworcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuV2l0aFZlcnNpb25T
dWNjZXNzQ2FsbGJhY2sKK2Nvbm5lY3Rpb24xLmNsb3NlKCkKKworc2V0VmVyc2lvblN1Y2Nlc3ND
YWxsYmFjaygpOgordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0CitkYiA9IHRyYW5z
YWN0aW9uLmRiCitkYi5jcmVhdGVPYmplY3RTdG9yZSgnc29tZSBvYmplY3Qgc3RvcmUnKQordHJh
bnNhY3Rpb24ub25jb21wbGV0ZSA9IHNldFZlcnNpb25UcmFuc2FjdGlvbkNvbXBsZXRlQ2FsbGJh
Y2sKKworc2V0VmVyc2lvblRyYW5zYWN0aW9uQ29tcGxldGVDYWxsYmFjaygpOgorUEFTUyBldmVu
dC50YXJnZXQuZGIudmVyc2lvbiBpcyAidmVyc2lvbiAyIgorCitjb25uZWN0aW9uMlZlcnNpb25D
aGFuZ2VDYWxsYmFjaygpOgorUEFTUyBldmVudC50eXBlIGlzICJ2ZXJzaW9uY2hhbmdlIgorRklY
TUU6IEZpcmUgYSB2ZXJzaW9uY2hhbmdlIGV2ZW50IHRoYXQgaGFzIG9sZFZlcnNpb24gYW5kIG5l
d1ZlcnNpb24KK0ZBSUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQgYmUgdmVyc2lvbiAyIChvZiB0
eXBlIHN0cmluZykuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZl
bnQubmV3VmVyc2lvbiBzaG91bGQgYmUgbnVsbCAob2YgdHlwZSBvYmplY3QpLiBXYXMgdW5kZWZp
bmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIGV2ZW50LnZlcnNpb24gc2hvdWxkIGJlIHVu
ZGVmaW5lZC4gV2FzIAorCitkZWxldGVEYXRhYmFzZUJsb2NrZWRDYWxsYmFjaygpOgorY29ubmVj
dGlvbjIuY2xvc2UoKQorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSB2ZXJzaW9uIDIg
KG9mIHR5cGUgc3RyaW5nKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLgorRkFJ
TCBldmVudC5uZXdWZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0eXBlIG9iamVjdCkuIFdhcyB1
bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgZXZlbnQudmVyc2lvbiBzaG91bGQg
YmUgdW5kZWZpbmVkLiBXYXMgCisKK2RlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrKCk6CitG
QUlMIGV2ZW50Lm9sZFZlcnNpb24gc2hvdWxkIGJlIG5vbi1udWxsLiBXYXMgdW5kZWZpbmVkCitG
QUlMIGV2ZW50Lm5ld1ZlcnNpb24gc2hvdWxkIGJlIG51bGwgKG9mIHR5cGUgb2JqZWN0KS4gV2Fz
IHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLgorUEFTUyBldmVudC50YXJnZXQucmVzdWx0
IGlzIG51bGwKKwordXBncmFkZU5lZWRlZENhbGxiYWNrKCk6Citnb3RVcGdyYWRlTmVlZGVkRXZl
bnQgPSB0cnVlCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMQorUEFTUyBldmVudC5vbGRWZXJz
aW9uIGlzIDAKKworb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKCk6CitQQVNTIGdvdFVw
Z3JhZGVOZWVkZWRFdmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQub2JqZWN0
U3RvcmVOYW1lcy5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhlZTc1MDZjODNi
YjU0MmRmODhlMjJhYTVmMGQyOWRjZDhmNjFiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5odG1sCkBAIC0wLDAg
KzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
aGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2ludHZlcnNpb24tbG9uZy1xdWV1ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tb21pdC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmZjZjBiN2ZlNTdmNDc3MDQ3OGFhNWViNzRiMzlhYTMxNTM4MDAwMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJh
bWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3QgdGhhdCBpbml0aWFsIHZl
cnNpb24gYWZ0ZXIgYSBzdWNjZXNzZnVsIG9wZW4gb2YgYSBub24tZXhpc3RlbnQgZGIgaXMgMQor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJpbnR2ZXJzaW9uLW9t
aXQtcGFyYW1ldGVyLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQorCitvcGVuU3VjY2VzcygpOgorZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0CitUZXN0IGxpbmUgZnJvbSBJREJGYWN0b3J5Lm9wZW46IElmIG5vIHZlcnNpb24gaXMg
c3BlY2lmaWVkIGFuZCBubyBkYXRhYmFzZSBleGlzdHMsIHNldCBkYXRhYmFzZSB2ZXJzaW9uIHRv
IDEuCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDEgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAo
b2YgdHlwZSBzdHJpbmcpLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmI1NGEyMGRi
YTRlNWFlYTZkNzI5MzgyNzBkMTUzYzg3NjAyZGVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sCkBA
IC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMzNzBjYWQwMDQ3MTZjM2Q0OWM5Yjg1YjE1Zjg2YTlkOTljZWFk
ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitU
ZXN0IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hlbiBvcGVuaW5nIGEgbm9uLWV4aXN0ZW50
IGRiIGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGFuZCB0aGF0IHRoZSB2ZXJzaW9uIG51
bWJlciBpcyBzZXQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisK
K2RibmFtZSA9ICJpbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLmh0bWwiCitpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorU2hvdWxkIHRyaWdnZXI6Cis0LjEuNDogSWYgbm8gZGF0
YWJhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBvcmlnaW4gb3JpZ2luIHdhcyBmb3Vu
ZCwgb3IgaWYgaXQgd2FzIGRlbGV0ZWQgZHVyaW5nIHRoZSBwcmV2aW91cyBzdGVwLCB0aGVuIGNy
ZWF0ZSBhIGRhdGFiYXNlIHdpdGggbmFtZSBuYW1lLCB3aXRoIDAgYXMgdmVyc2lvbiwgYW5kIHdp
dGggbm8gb2JqZWN0IHN0b3Jlcy4gTGV0IGRiIGJlIHRoZSBuZXcgZGF0YWJhc2UuCis0LjEuNjog
Q3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gdG8gZGIgYW5kIGxldCBjb25uZWN0aW9uIHJlcHJlc2Vu
dCBpdC4KKzQuMS43OiBJZiB0aGUgdmVyc2lvbiBvZiBkYiBpcyBsb3dlciB0aGFuIHZlcnNpb24s
IHRoZW4gcnVuIHRoZSBzdGVwcyBmb3IgcnVubmluZyBhICJ2ZXJzaW9uY2hhbmdlIiB0cmFuc2Fj
dGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9uLCByZXF1ZXN0IGFuZCB1cGdyYWRlIGNhbGxi
YWNrLgorNC4xLjk6IFJldHVybiBjb25uZWN0aW9uLgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgNykKK0ZBSUwgU3RyaW5nKHJlcXVlc3QpIHNob3VsZCBiZSBbb2JqZWN0IElEQk9w
ZW5EQlJlcXVlc3RdLiBXYXMgW29iamVjdCBJREJSZXF1ZXN0XS4KKworCitvcGVuU3VjY2Vzcygp
OgorVGVzdCA0LjEuNywgdGhhdCBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gd2FzIHJ1bi4K
K0ZBSUwgc2F3VXBncmFkZU5lZWRlZCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorRkFJTCBz
YXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKK0tpbmQgb2YgdGVzdCA0LjEuOToKK1BBU1MgU3RyaW5nKGRiKSBp
cyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9m
IHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lOGM3M2Q0NGY4MmIyMTdhY2U3YzEyMTc2MDhiMGFhZjE3NGFjMjlh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ludHZlcnNpb24tb3Blbi13
aXRoLXZlcnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVu
ZWVkZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ1Nzg3NjgxOGE4NTA2MTVjZjk0OGQ4ZDBiMmI2ZmQ5MmRi
NzY1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5qcwpAQCAt
MCwwICsxLDQ5IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0
cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBv
cnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhbiBh
Ym9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBiYWNrIHRvIDAi
KTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAg
ICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBk
ZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKCkgeworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qu
b251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZCIpOworICAgIGRlYnVnKCJGSVhNRTogVGhp
cyBzaG91bGQgZ2V0IGFuIGVycm9yIGV2ZW50IG9mIHR5cGUgQWJvcnRFcnJvciIpOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7Cisg
ICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworfQorCitm
dW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
InVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmVudCA9IGV2dDsKKyAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOworICAgIHRyYW5z
YWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgIHRyYW5zYWN0aW9uLm9uY29t
cGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKKyAgICB0cmFuc2FjdGlvbi5vbmFi
b3J0ID0gb25BYm9ydDsKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5hYm9ydCgpIik7Cit9
CisKK2Z1bmN0aW9uIG9uQWJvcnQoZXZ0KQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
b25BYm9ydCgpOiIpOworICAgIGV2ZW50ID0gZXZ0OworICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQuZGIudmVyc2lvbiIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2
ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA5Y2E4
ODEwMGVkMDFiODFjYTllYjI3YzY1YjFlM2U5NDJmMjdmNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFuZC1zZXR2
ZXJzaW9uLmpzCkBAIC0wLDAgKzEsMTkwIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7Cisg
ICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24o
IlRlc3QgdGhhdCBpbnQgdmVyc2lvbiB1cGdyYWRlcyBhIHN0cmluZyB2ZXJzaW9uIGFuZCB0aGF0
IHN0cmluZyB2ZXJzaW9ucyBhcmUgdGhlbiBkaXNhbGxvd2VkIik7CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgo
KTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJlcXVlc3QpIiwg
IltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRl
bGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJDYWxsIG9wZW4gd2l0aCBubyB2ZXJzaW9uIHBhcmFtZXRlcjoiKTsKKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1bmV4cGVj
dGVkVXBncmFkZU5lZWRlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBl
Y3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoZXZ0KQorewor
ICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygib3BlblN1Y2Nlc3Mo
KToiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICIiKTsKKyAgICBldmFsQW5k
TG9nKCdyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic29tZSB2ZXJzaW9uIiknKTsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGluU2V0VmVyc2lvbjsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRC
bG9ja2VkQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGluU2V0VmVyc2lvbihldnQpCit7CisgICAg
ZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJpblNldFZlcnNpb24oKToi
KTsKKyAgICB0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgdHJhbnMub25jb21wbGV0
ZSA9IHNldFZlcnNpb25Eb25lOworICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRD
YWxsYmFjazsKKyAgICBkYiA9IHRyYW5zLmRiOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZGIudmVyc2lvbiIsICJzb21lIHZlcnNpb24iKTsKKyAgICAvLyBGSVhNRTogQWRkIGEgdGVzdCB0
aGF0IGNhbGxzIG9wZW4gd2l0aCB2ZXJzaW9uIGZyb20gaGVyZS4KK30KKworZnVuY3Rpb24gc2V0
VmVyc2lvbkRvbmUoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1Zygic2V0VmVyc2lvbkRvbmUoKToiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5kYjsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29tZSB2ZXJzaW9uIik7
CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1
Y2Nlc3MgPSBzZWNvbmRPcGVuIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1bmV4cGVjdGVkVXBn
cmFkZU5lZWRlZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBzZWNvbmRPcGVuKGV2dCkKK3sKKyAg
ICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInNlY29uZE9wZW4oKToi
KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAic29tZSB2ZXJzaW9uIik7
CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIC8vIEZJWE1FOiBBZGQgdGVzdHMg
dGhhdCBjYWxsIGl0IHdpdGggMCwgLTEsIGFuZCAtNC4KKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVl
ZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkCisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tl
ZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmlyc3RPcGVuV2l0aFZlcnNpb247
Cit9CisKK2Z1bmN0aW9uIGZpcnN0VXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBl
dnQ7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJmaXJzdFVwZ3JhZGVOZWVkZWQoKToiKTsK
KyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0LnRyYW5zYWN0aW9uKSIsICJb
b2JqZWN0IElEQlRyYW5zYWN0aW9uXSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZl
bnQub2xkVmVyc2lvbiIsICJzb21lIHZlcnNpb24iKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubmV3
VmVyc2lvbiIsICIyIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC50cmFuc2FjdGlvbi5vbmNv
bXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQiKTsKKyAgICByZXF1ZXN0LnRyYW5zYWN0aW9u
Lm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKK30KKwordmFyIGRpZFRyYW5zYWN0
aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGVkKGV2dCkK
K3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInRyYW5zYWN0
aW9uQ29tcGxldGVkKCk6Iik7CisgICAgZXZhbEFuZExvZygiZGlkVHJhbnNhY3Rpb25Db21wbGV0
ZSA9IHRydWUiKTsKK30KKworZnVuY3Rpb24gZmlyc3RPcGVuV2l0aFZlcnNpb24oZXZ0KQorewor
ICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiZmlyc3RPcGVuV2l0
aFZlcnNpb24oKToiKTsKKyAgICBzaG91bGRCZVRydWUoImRpZFRyYW5zYWN0aW9uQ29tcGxldGUi
KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhkYikiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsK
KyAgICBzaG91bGRCZU51bGwoInJlcXVlc3QudHJhbnNhY3Rpb24iKTsKKyAgICBzaG91bGRCZSgi
ZGIudmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcocmVx
dWVzdCkiLCAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIpOworICAgIGV2YWxBbmRMb2coJ3Jl
cXVlc3QgPSBkYi5zZXRWZXJzaW9uKCJzdHJpbmcgdmVyc2lvbiAyIiknKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXF1ZXN0KSIsICJbb2JqZWN0IElEQlZlcnNpb25DaGFu
Z2VSZXF1ZXN0XSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRD
YWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJh
Y2s7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbk5vdEFsbG93
ZWQiKTsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvbk5vdEFsbG93ZWQoZXZ0KQoreworICAgIGV2
ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygic2V0VmVyc2lvbk5vdEFsbG93
ZWQoKToiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAiZXJyb3Ii
KTsKKyAgICBkZWJ1ZygicmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UgPSAiICsgcmVxdWVzdC53
ZWJraXRFcnJvck1lc3NhZ2UpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICBl
dmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKSIpOworICAgIGV2
YWxBbmRMb2coInJlcXVlc3Qub25lcnJvciA9IGVycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24iKTsK
KyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworfQorCitmdW5j
dGlvbiBlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImVycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24oKToi
KTsKKyAgICBkZWJ1ZygicmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UgPSAiICsgcmVxdWVzdC53
ZWJraXRFcnJvck1lc3NhZ2UpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDQpIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxv
Y2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gc2Vjb25kVXBn
cmFkZU5lZWRlZCIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gdGhpcmRP
cGVuU3VjY2VzcyIpOworfQorCit2YXIgZ290U2Vjb25kVXBncmFkZU5lZWRlZCA9IGZhbHNlOwor
ZnVuY3Rpb24gc2Vjb25kVXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7Cisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJzZWNvbmRVcGdyYWRlTmVlZGVkKCk6Iik7CisgICAg
ZXZhbEFuZExvZygiZ290U2Vjb25kVXBncmFkZU5lZWRlZCA9IHRydWUiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQub2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNp
b24iLCAiNCIpOworfQorCitmdW5jdGlvbiB0aGlyZE9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBl
dmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInRoaXJkT3BlblN1Y2Nlc3Mo
KToiKTsKKyAgICBzaG91bGRCZVRydWUoImdvdFNlY29uZFVwZ3JhZGVOZWVkZWQiKTsKKyAgICBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZGIu
dmVyc2lvbiIsICI0Iik7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIGV2YWxB
bmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgZXZhbEFuZExv
ZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBmb3VydGhPcGVuU3VjY2VzcyIpOworICAgIHJlcXVlc3Qu
b251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkVXBncmFkZU5lZWRlZENhbGxiYWNrOworfQorCitm
dW5jdGlvbiBmb3VydGhPcGVuU3VjY2VzcyhldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJmb3VydGhPcGVuU3VjY2VzcygpOiIpOworICAgIGV2YWxB
bmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJkYi52ZXJz
aW9uIiwgIjQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYmxv
Y2tlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWJsb2NrZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QxOGRjYTc3NTFkY2M5NzA0MDU4MzEzN2Q4Mjcz
OTM3ZTliNTk0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMKQEAgLTAsMCArMSw5MCBAQAoraWYg
KHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVk
LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYmxvY2tlZCBldmVudHMgZ2V0IGRl
bGl2ZXJlZCBwcm9wZXJseSB3aXRoIHRoZSBuZXcgb3BlbiBhcGkiKTsKKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0
aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU3VjY2VzczsKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24g
ZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBwcmVhbWJsZSgpOworICAgIGV2YWxBbmRMb2coInJl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXI7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1
bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworICAgIGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gZmFsc2U7
CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmaXJzdFVwZ3JhZGVOZWVkZWRDYWxsYmFj
azsKK30KKworZnVuY3Rpb24gZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2soZXZ0KQoreworICAg
IHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZl
bnQgPSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOworICAg
IHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIlN0cmluZyhldmVudCkiLCAiW29iamVjdCBJREJVcGdyYWRlTmVlZGVkRXZlbnRdIik7
Cit9CisKK2dvdEJsb2NrZWRFdmVudCA9IGZhbHNlOworZnVuY3Rpb24gZmlyc3RTdWNjZXNzRXZl
bnRIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlVHJ1ZSgi
Z290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQiKTsKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9u
MSA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uMS5v
bnZlcnNpb25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdlSGFuZGxlciIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiU3RyaW5nKGNvbm5lY3Rpb24xKSIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIp
OworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJs
b2NrZWQgPSBibG9ja2VkRXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVk
ID0gc2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcjsKK30KKwordmFyIHNhd1ZlcnNpb25D
aGFuZ2VFdmVudCA9IGZhbHNlOworZnVuY3Rpb24gdmVyc2lvbkNoYW5nZUhhbmRsZXIoZXZ0KQor
eworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygic2F3VmVyc2lvbkNoYW5nZUV2
ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJ2
ZXJzaW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZXZlbnQp
IiwgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZUV2ZW50XSIpOworICAgIHNob3VsZEJlKCJldmVu
dC50YXJnZXQiLCAiY29ubmVjdGlvbjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2xkVmVyc2lv
biIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24iLCAiMyIpOworfQorCitm
dW5jdGlvbiBibG9ja2VkRXZlbnRIYW5kbGVyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOwor
ICAgIHNob3VsZEJlVHJ1ZSgic2F3VmVyc2lvbkNoYW5nZUV2ZW50Iik7CisgICAgZXZhbEFuZExv
ZygiZ290QmxvY2tlZEV2ZW50ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
U3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0iKTsKKyAgICBz
aG91bGRCZSgiZXZlbnQub2xkVmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5l
d1ZlcnNpb24iLCAiMyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIs
ICJibG9ja2VkIik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEuY2xvc2UoKSIpOworfQor
Citnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKK2Z1bmN0aW9uIHNlY29uZFVw
Z3JhZGVOZWVkZWRFdmVudEhhbmRsZXIoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAg
c2hvdWxkQmVUcnVlKCJnb3RCbG9ja2VkRXZlbnQiKTsKKyAgICBldmFsQW5kTG9nKCJnb3RTZWNv
bmRVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlIik7Cit9CisKK2Z1bmN0aW9uIHNlY29uZFN1Y2Nl
c3NDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRCZVRydWUo
ImdvdFNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQor
Cit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRz
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc0M2QyMGFhMmNmMGFkOWVlNTlhMDMwYzM3Yjk3YWUzNTVmZGM5MTAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5qcwpAQCAtMCwwICsxLDczIEBACitp
ZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFy
ZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRyeSB0byBjYWxsIGRiLmNsb3NlKCkgYWZ0ZXIg
dXBncmFkZW5lZWRlZCBidXQgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIHN1Y2Nlc3MgZXZlbnQg
ZmlyZXMiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGV2YWxB
bmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpIik7CisgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IHVwZ3JhZGVOZWVkZWQ7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tl
ZENhbGxiYWNrOworICAgIGRlYnVnKCIiKTsKK30KKwordmFyIHNhd1RyYW5zYWN0aW9uQ29tcGxl
dGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3JhZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0g
ZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidXBncmFkZU5lZWRlZCgpOiIpOworICAg
IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJl
dmVudC5uZXdWZXJzaW9uIiwgIjciKTsKKyAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RT
dG9yZSgnb2JqZWN0c3RvcmUnKSIpOworCisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5l
eHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0
aW9uKCkgeworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJ0cmFuc2FjdGlvbi5v
bmNvbXBsZXRlOiIpOworICAgICAgICBldmFsQW5kTG9nKCJzYXdUcmFuc2FjdGlvbkNvbXBsZXRl
ID0gdHJ1ZSIpOworICAgICAgICBldmFsQW5kTG9nKCJzZXRUaW1lb3V0KGNsb3NlREIsIDApIik7
CisgICAgfQorfQorCit2YXIgZGlkQ2FsbENsb3NlREIgPSBmYWxzZTsKK2Z1bmN0aW9uIGNsb3Nl
REIoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiY2xvc2VEQigpOiIpOworICAgIGV2
YWxBbmRMb2coImRpZENhbGxDbG9zZURCID0gdHJ1ZSIpOworICAgIGV2YWxBbmRMb2coImRiLmNs
b3NlKCkiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3Mo
ZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygib3Bl
blN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkaWRDYWxsQ2xvc2VEQiIpOworICAg
IHNob3VsZEJlVHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSIpOworICAgIGRiID0gZXZhbEFu
ZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoJ2RiLnZlcnNp
b24nLCAiNyIpOworICAgIGlmIChkYi52ZXJzaW9uICE9PSA3KSB7CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNob3VsZEJlKCJkYi5vYmplY3RT
dG9yZU5hbWVzLmxlbmd0aCIsICIxIik7CisgICAgZXZhbEFuZExvZygiZGIudHJhbnNhY3Rpb24o
ZGIub2JqZWN0U3RvcmVOYW1lcykiKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4tb25j
b21wbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2
ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg0NGE1N2Q0YTNiOTE4
YzExOGMxYWM1YWNkMDA5NjgxYTFkY2Y5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxl
dGUuanMKQEAgLTAsMCArMSw1OCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGlt
cG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7
CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJDYWxs
IGRiLmNsb3NlKCkgaW4gdGhlIGNvbXBsZXRlIGhhbmRsZXIgZm9yIGEgdmVyc2lvbiBjaGFuZ2Ug
dHJhbnNhY3Rpb24sIGJlZm9yZSB0aGUgc3VjY2VzcyBldmVudCBhc3NvY2lhdGVkIHdpdGggdGhl
IG9wZW4gY2FsbCBmaXJlcyIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5k
b3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisKKyAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7
CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykiKTsK
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZDsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhw
ZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cit9CisKK3ZhciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0g
ZmFsc2U7CitmdW5jdGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoInVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBldmFs
QW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
bmV3VmVyc2lvbiIsICI3Iik7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J29zJykiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENh
bGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihlKQorICAgIHsK
KyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygidHJhbnNhY3Rpb24ub25jb21wbGV0
ZToiKTsKKyAgICAgICAgZXZhbEFuZExvZygic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUi
KTsKKyAgICAgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIH0KK30KKworZnVuY3Rp
b24gb3BlblN1Y2Nlc3MoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZVRydWUoInNhd1RyYW5z
YWN0aW9uQ29tcGxldGUiKTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQiKTsKKyAgICBzaG91bGRCZSgnZGIudmVyc2lvbicsICI3Iik7CisgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnLCAncmVhZHdyaXRl
JykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJv
ciciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tY2xvc2UtaW4t
dXBncmFkZW5lZWRlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE1YzNk
MjIxZjQ3Zjc3NzQ4NGNmNGYxMDk4NzAxOTk4NDlmMmU4MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWNsb3NlLWlu
LXVwZ3JhZGVuZWVkZWQuanMKQEAgLTAsMCArMSw1OCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgd2hlbiBkYi5jbG9zZSBpcyBjYWxsZWQgaW4gdXBncmFkZW5lZWRl
ZCwgdGhlIGRiIGlzIGNsZWFuZWQgdXAgb24gcmVmcmVzaC4iKTsKKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgp
OworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBk
ZWxldGVTdWNjZXNzKGV2dCkgeworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDcpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsK
KyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQ7CisgICAgcmVxdWVz
dC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIGRlYnVnKCIiKTsK
K30KKwordmFyIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3Jh
ZGVOZWVkZWQoZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygidXBncmFkZU5lZWRlZCgpOiIpOworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjciKTsKKwor
ICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7
CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29zJykiKTsKKyAgICBldmFs
QW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigp
IHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygidHJhbnNhY3Rpb24ub25jb21w
bGV0ZToiKTsKKyAgICAgICAgZXZhbEFuZExvZygic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRy
dWUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVu
dCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Cisg
ICAgc2hvdWxkQmVUcnVlKCJzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIik7CisgICAgZGIgPSBldmFs
QW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgnZGIudmVy
c2lvbicsICI3Iik7CisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignb3MnKSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1kZWxl
dGUtaW4tdXBncmFkZW5lZWRlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWRlbGV0ZS1pbi11cGdyYWRlbmVlZGVkLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhmODBlNzQwNmI4YjFiNDY3Njk0OWI1NGUzYzgyZjk1ODJlZGFjZmIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1k
ZWxldGUtaW4tdXBncmFkZW5lZWRlZC5qcwpAQCAtMCwwICsxLDgzIEBACitpZiAodGhpcy5pbXBv
cnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30K
KworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhIGRlbGV0ZURhdGFiYXNlIGNhbGxlZCB3aGlsZSBo
YW5kbGluZyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGlzIHF1ZXVlZCBhbmQgZmlyZXMgaXRzIGV2
ZW50cyBhdCB0aGUgcmlnaHQgdGltZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1v
dmVWZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisKKyAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGluaXRpYWxseURlbGV0ZWQ7CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK3ZhciBzYXdGaXJzdFVwZ3JhZGVO
ZWVkZWQgPSBmYWxzZTsKK3ZhciBhbHJlYWR5RGVsZXRlZCA9IGZhbHNlOworZnVuY3Rpb24gaW5p
dGlhbGx5RGVsZXRlZChldnQpIHsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImluaXRpYWxs
eURlbGV0ZWQoKToiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAxKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQgPSBmaXJzdFVwZ3JhZGVOZWVkZWQ7Cit9CisKK2Z1bmN0aW9uIGZpcnN0
VXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJmaXJzdFVwZ3JhZGVOZWVkZWQoKToiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJz
YXdGaXJzdFVwZ3JhZGVOZWVkZWQiKTsKKyAgICBldmFsQW5kTG9nKCJzYXdGaXJzdFVwZ3JhZGVO
ZWVkZWQgPSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOwor
ICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjEiKTsKKyAgICBzaG91bGRCZUZhbHNl
KCJhbHJlYWR5RGVsZXRlZCIpOworICAgIGlmIChhbHJlYWR5RGVsZXRlZCkKKyAgICAgICAgcmV0
dXJuOworICAgIGFscmVhZHlEZWxldGVkID0gdHJ1ZTsKKworICAgIHJlcXVlc3QyID0gZXZhbEFu
ZExvZygiZGVsZXRlUmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7
CisgICAgZXZhbEFuZExvZygicmVxdWVzdDIub25zdWNjZXNzID0gZGVsZXRlRnJvbVVwZ3JhZGVO
ZWVkZWRTdWNjZXNzIik7CisgICAgcmVxdWVzdDIub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworICAgIHJlcXVlc3QyLm9uYmxvY2tlZCA9IGRlbGV0ZUJsb2NrZWRDYWxsYmFjazsK
K30KKworc2F3VmVyc2lvbkNoYW5nZSA9IGZhbHNlOworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoZXZ0
KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygicmVxdWVz
dC5vbnN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRCZVRydWUoInNhd0ZpcnN0VXBncmFkZU5lZWRl
ZCIpOworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGRi
Lm9udmVyc2lvbmNoYW5nZSA9IHZlcnNpb25DaGFuZ2VDYWxsYmFjazsKKyAgICBzaG91bGRCZSgn
ZGIudmVyc2lvbicsICcxJyk7Cit9CisKK2Z1bmN0aW9uIHZlcnNpb25DaGFuZ2VDYWxsYmFjayhl
dnQpIHsKKyAgICBwcmVhbWJsZSgpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwg
IjEiKTsKKyAgICBzaG91bGRCZU51bGwoImV2ZW50Lm5ld1ZlcnNpb24iKTsKKyAgICBldmFsQW5k
TG9nKCJzYXdWZXJzaW9uQ2hhbmdlID0gdHJ1ZSIpOworICAgIGV2YWxBbmRMb2coImRiLmNsb3Nl
KCkiKTsKK30KKworZnVuY3Rpb24gZGVsZXRlQmxvY2tlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBw
cmVhbWJsZSgpOworICAgIGRlYnVnKCJUaGlzIHNob3VsZG4ndCBoYXBwZW4gYnV0IGZvciB0aGUg
bG9uZ3N0YW5kaW5nIGh0dHA6Ly9jcmJ1Zy5jb20vMTAwMTIzIik7Cit9CisKK2Z1bmN0aW9uIGRl
bGV0ZUZyb21VcGdyYWRlTmVlZGVkU3VjY2VzcyhldnQpCit7CisgICAgZGVidWcoIiIpOworICAg
IGRlYnVnKCJkZWxldGVGcm9tVXBncmFkZU5lZWRlZFN1Y2Nlc3MoKToiKTsKKyAgICBzaG91bGRC
ZVRydWUoInNhd1ZlcnNpb25DaGFuZ2UiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVz
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZiYWViYTc3MmVmN2RkMjZhZTVjNzRhZjNmNWFkNDhkMmViZGE4ZTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1n
YXRlZC1vbi1kZWxldGUuanMKQEAgLTAsMCArMSw5NSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgYSBkYXRhYmFzZSBpcyByZWNyZWF0ZWQgY29ycmVjdGx5IHdoZW4g
YW4gb3Blbi13aXRoLXZlcnNpb24gY2FsbCBpcyBxdWV1ZWQgYmVoaW5kIGEgZGVsZXRlRGF0YWJh
c2UgY2FsbCIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhl
cygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVTdWNjZXNzKGV2dCkgeworICAgIHByZWFt
YmxlKGV2dCk7CisgICAgZGVidWdnZXI7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZpcnN0U3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGZpcnN0U3VjY2Vzc0NhbGxiYWNrKGV2dCkK
K3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoImZpcnN0U3Vj
Y2Vzc0NhbGxiYWNrKCk6IikKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uMSA9IGV2ZW50LnRh
cmdldC5yZXN1bHQiKTsKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFu
Z2UgPSBjb25uZWN0aW9uMVZlcnNpb25DaGFuZ2VDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2co
InJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgZXZhbEFuZExvZygicmVx
dWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2FsbGJhY2siKTsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKworICAgIGV2YWxBbmRMb2coInJlcXVl
c3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2co
InJlcXVlc3Qub25ibG9ja2VkID0gZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2siKTsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0Nh
bGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKSIp
OworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRl
ZENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuV2l0
aFZlcnNpb25TdWNjZXNzQ2FsbGJhY2siKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhw
ZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHNlY29uZFN1Y2Nlc3NDYWxsYmFjayhldnQpCit7
CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5vbnZlcnNpb25jaGFuZ2UgPSBjb25uZWN0aW9u
MlZlcnNpb25DaGFuZ2VDYWxsYmFjayIpOworfQorCitmdW5jdGlvbiBjb25uZWN0aW9uMVZlcnNp
b25DaGFuZ2VDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5nZSIpOworICAgIGRlYnVn
KCJldmVudC52ZXJzaW9uID0gIiArIGV2ZW50LnZlcnNpb24pOworfQorCitmdW5jdGlvbiBjb25u
ZWN0aW9uMlZlcnNpb25DaGFuZ2VDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnR5cGUiLCAidmVyc2lvbmNoYW5nZSIp
OworICAgIGV2YWxBbmRMb2coImV2ZW50LnRhcmdldC5jbG9zZSgpIik7Cit9CisKK2Z1bmN0aW9u
IGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQp
OworICAgIGRlYnVnKCJGSVhNRTogdGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQg
b25jZSwgaHR0cDovL2NyYnVnLmNvbS8xMzk2OTUiKTsKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0
aW9uMS5jbG9zZSgpIik7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxi
YWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworfQorCitmdW5jdGlvbiB1cGdyYWRlTmVl
ZGVkQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm5ld1ZlcnNpb24iLCAiMSIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwg
IjAiKTsKK30KKworZnVuY3Rpb24gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKGV2dCkK
K3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0
Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
KwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1p
bnZhbGlkLXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzEy
MGQ0MjVhZGNhMWY2NmVjZDczNTE5YzI1YTc0NWFiMGFhZjIwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24taW52YWxp
ZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMuanMKQEAgLTAsMCArMSw3NSBAQAoraWYg
KHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVk
LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2hlbiBzZXRWZXJzaW9uIGlzIGNh
bGxlZCBvbiBhIGRiIHdpdGggYW4gaW50ZWdlciB2ZXJzaW9uLCB2ZXJzaW9uY2hhbmdlIGV2ZW50
cyBkb24ndCBnZXQgZmlyZWQgb24gb3RoZXIgb3BlbiBkYnMuIik7CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgo
KTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRl
bGV0ZVN1Y2Nlc3MoZXZ0KSB7CisgICAgcHJlYW1ibGUoKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5l
eHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKKyAgICBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IGZhbHNlOwor
ICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2s7
Cit9CisKK2Z1bmN0aW9uIGZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKGV2dCkKK3sKKyAgICBw
cmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50
ID0gdHJ1ZSIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICIyIik7Cit9CisKK2Z1bmN0aW9uIGZpcnN0U3Vj
Y2Vzc0V2ZW50SGFuZGxlcihldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRC
ZVRydWUoImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygiY29u
bmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVj
dGlvbjEub252ZXJzaW9uY2hhbmdlID0gdW5leHBlY3RlZFZlcnNpb25DaGFuZ2VDYWxsYmFjayIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGNvbm5lY3Rpb24xKSIsICJbb2Jq
ZWN0IElEQkRhdGFiYXNlXSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZWNvbmRTdWNjZXNzQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cisg
ICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gdW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gc2Vjb25kU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJs
ZShldnQpOworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAg
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uJykiKTsKKyAgICBl
dmFsQW5kTG9nKCJyZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uRXJyb3IiKTsKKyAgICBldmFs
QW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2siKTsK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2Fs
bGJhY2siKTsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvbkVycm9yKGV2dCkKK3sKKyAgICBwcmVh
bWJsZSgpOworICAgIGRlYnVnKCJPcGVuIHVwIGEgbmV3IGRiIHRvIGVuc3VyZSB0aGF0IGlmIGNv
bm5lY3Rpb24xIHdlcmUgdG8gZ2V0IGEgdmVyc2lvbmNoYW5nZSBldmVudCwgaXQgd2lsbCBiZSBk
ZWxpdmVyZWQgYmVmb3JlIHRoZSB0ZXN0IGZpbmlzaGVzIik7CisgICAgZXZhbEFuZExvZygibmV3
X2RiID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lICsgJzInKSIpOworICAgIGV2YWxBbmRMb2coIm5l
d19kYi5vbnN1Y2Nlc3MgPSBuZXdEQlN1Y2Nlc3MiKTsKKyAgICBuZXdfZGIub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIG5ld19kYi5vbmJsb2NrZWQgPSB1bmV4cGVjdGVk
QmxvY2tlZENhbGxiYWNrOworfQorCitmdW5jdGlvbiBuZXdEQlN1Y2Nlc3MoZXZ0KQoreworICAg
IHByZWFtYmxlKCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWxv
bmctcXVldWUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50
dmVyc2lvbi1sb25nLXF1ZXVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmMTNhZDk5MjEwNDljYzg5ZDhmOTRj
OGVjMWYyNWE3Y2Y5MzJkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1sb25nLXF1ZXVlLmpzCkBAIC0wLDAgKzEs
MTMyIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3Jp
cHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhIGRhdGFiYXNl
IGlzIHJlY3JlYXRlZCBjb3JyZWN0bHkgd2hlbiBhbiBvcGVuLXdpdGgtdmVyc2lvbiBjYWxsIGlz
IHF1ZXVlZCBiZWhpbmQgYm90aCBhIGRlbGV0ZURhdGFiYXNlIGFuZCBzZXRWZXJzaW9uIGNhbGwi
KTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAg
ICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVs
ZXRlU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKK30KKworZnVuY3Rpb24gZGVsZXRlU3VjY2VzcyhldnQpIHsKKyAgICBwcmVhbWJsZShldnQp
OworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7Cisg
ICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaXJzdFN1Y2Nlc3NDYWxsYmFjayIp
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJl
cXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rp
b24gZmlyc3RTdWNjZXNzQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAg
ZXZhbEFuZExvZygiY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZXZh
bEFuZExvZygiY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gY29ubmVjdGlvbjFWZXJzaW9u
Q2hhbmdlQ2FsbGJhY2siKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9w
ZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub25zdWNjZXNzID0gc2Vjb25k
U3VjY2Vzc0NhbGxiYWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxi
YWNrOworfQorCitmdW5jdGlvbiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2soZXZ0KQoreworICAgIHBy
ZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjIgPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjIub252ZXJzaW9uY2hhbmdlID0g
Y29ubmVjdGlvbjJWZXJzaW9uQ2hhbmdlQ2FsbGJhY2siKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gY29ubmVjdGlvbjIuc2V0VmVyc2lvbigndmVyc2lvbiAyJykiKTsKKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0Lm9uYmxvY2tlZCA9IHNldFZlcnNpb25CbG9ja2VkQ2FsbGJhY2siKTsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzQ2FsbGJh
Y2siKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30K
KworZnVuY3Rpb24gY29ubmVjdGlvbjFWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soZXZ0KQoreworICAg
IHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50eXBlIiwg
InZlcnNpb25jaGFuZ2UiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnZlcnNp
b24iLCAidmVyc2lvbiAyIik7Cit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb25CbG9ja2VkQ2FsbGJh
Y2soZXZ0KQoreworICAgIGV2ZW50ID0gZXZ0OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
c2V0VmVyc2lvbkJsb2NrZWRDYWxsYmFjaygpOiIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJl
cXVlc3Qub25ibG9ja2VkID0gZGVsZXRlRGF0YWJhc2VCbG9ja2VkQ2FsbGJhY2siKTsKKyAgICBl
dmFsQW5kTG9nKCJyZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxi
YWNrIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKSIpOwor
ICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZENh
bGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuV2l0aFZl
cnNpb25TdWNjZXNzQ2FsbGJhY2siKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0
ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbjEuY2xvc2UoKSIpOworfQorCitm
dW5jdGlvbiBzZXRWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShl
dnQpOworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIp
OworICAgIGV2YWxBbmRMb2coImRiID0gdHJhbnNhY3Rpb24uZGIiKTsKKyAgICBldmFsQW5kTG9n
KCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc29tZSBvYmplY3Qgc3RvcmUnKSIpOworICAgIGV2YWxB
bmRMb2coInRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uVHJhbnNhY3Rpb25Db21w
bGV0ZUNhbGxiYWNrIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9y
dENhbGxiYWNrOworfQorCitmdW5jdGlvbiBzZXRWZXJzaW9uVHJhbnNhY3Rpb25Db21wbGV0ZUNh
bGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24iLCAidmVyc2lvbiAyIik7Cit9CisKK2Z1bmN0
aW9uIGNvbm5lY3Rpb24yVmVyc2lvbkNoYW5nZUNhbGxiYWNrKGV2dCkKK3sKKyAgICBwcmVhbWJs
ZShldnQpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudHlwZSIsICJ2ZXJzaW9u
Y2hhbmdlIik7CisgICAgZGVidWcoIkZJWE1FOiBGaXJlIGEgdmVyc2lvbmNoYW5nZSBldmVudCB0
aGF0IGhhcyBvbGRWZXJzaW9uIGFuZCBuZXdWZXJzaW9uIik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJldmVudC5vbGRWZXJzaW9uIiwgInZlcnNpb24gMiIpOworICAgIHNob3VsZEJlTnVs
bCgiZXZlbnQubmV3VmVyc2lvbiIpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJldmVudC52ZXJz
aW9uIik7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURhdGFiYXNlQmxvY2tlZENhbGxiYWNrKGV2dCkK
K3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24yLmNsb3Nl
KCkiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm9sZFZlcnNpb24iLCAidmVy
c2lvbiAyIik7CisgICAgc2hvdWxkQmVOdWxsKCJldmVudC5uZXdWZXJzaW9uIik7CisgICAgc2hv
dWxkQmVVbmRlZmluZWQoImV2ZW50LnZlcnNpb24iKTsKK30KKworZnVuY3Rpb24gZGVsZXRlRGF0
YWJhc2VTdWNjZXNzQ2FsbGJhY2soZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hv
dWxkQmVOb25OdWxsKCJldmVudC5vbGRWZXJzaW9uIik7CisgICAgc2hvdWxkQmVOdWxsKCJldmVu
dC5uZXdWZXJzaW9uIik7CisgICAgc2hvdWxkQmVOdWxsKCJldmVudC50YXJnZXQucmVzdWx0Iik7
Cit9CisKK3ZhciBnb3RVcGdyYWRlTmVlZGVkRXZlbnQgPSBmYWxzZTsKK2Z1bmN0aW9uIHVwZ3Jh
ZGVOZWVkZWRDYWxsYmFjayhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5k
TG9nKCJnb3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlIik7CisgICAgc2hvdWxkQmUoImV2ZW50
Lm5ld1ZlcnNpb24iLCAiMSIpOworICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAi
KTsKK30KKworZnVuY3Rpb24gb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKGV2dCkKK3sK
KyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJlVHJ1ZSgiZ290VXBncmFkZU5lZWRlZEV2
ZW50Iik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQub2JqZWN0U3RvcmVOYW1l
cy5sZW5ndGgiLCAiMCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lv
bi1vbWl0LXBhcmFtZXRlci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjZmVjZDYwYjlh
NGFhYjE3MzZjYWY1OTRmY2E4ZjlkODEwZjUxZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRl
ci5qcwpAQCAtMCwwICsxLDM5IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1w
b3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsK
KyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3Qg
dGhhdCBpbml0aWFsIHZlcnNpb24gYWZ0ZXIgYSBzdWNjZXNzZnVsIG9wZW4gb2YgYSBub24tZXhp
c3RlbnQgZGIgaXMgMSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQ
cmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisKKyAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGRlbGV0ZVN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoZXZ0KSB7Cisg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KCkgeworICAgICAgdGVzdFBhc3NlZCgiR290IHVwZ3JhZGVuZWVkZWQgZXZlbnQiKTsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7CisgICAgZGIgPSBldmFs
QW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkZWJ1ZygiVGVzdCBsaW5l
IGZyb20gSURCRmFjdG9yeS5vcGVuOiBJZiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZCBhbmQgbm8g
ZGF0YWJhc2UgZXhpc3RzLCBzZXQgZGF0YWJhc2UgdmVyc2lvbiB0byAxLiIpOworICAgIHNob3Vs
ZEJlKCdkYi52ZXJzaW9uJywgJzEnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lu
dHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24uanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iOGIzM2Q1NjhkMmNiMjNhMjZlNDJkYjc1MDkyZGY5Yzg5M2YwYWMwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
b3Blbi13aXRoLXZlcnNpb24uanMKQEAgLTAsMCArMSw3NiBAQAoraWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUZXN0IHRoYXQgc3BlY2lmeWluZyBhIHZlcnNpb24gd2hlbiBvcGVuaW5nIGEg
bm9uLWV4aXN0ZW50IGRiIGNhdXNlcyBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGFuZCB0aGF0IHRo
ZSB2ZXJzaW9uIG51bWJlciBpcyBzZXQgY29ycmVjdGx5LiIpOworCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIHNldERCTmFtZUZyb21QYXRoKCk7
CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTdWNjZXNzOworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZGVsZXRlU3Vj
Y2VzcyhldnQpIHsKKyAgICBkZWJ1ZygiU2hvdWxkIHRyaWdnZXI6Iik7CisgICAgZGVidWcoIjQu
MS40OiBJZiBubyBkYXRhYmFzZSB3aXRoIHRoZSBnaXZlbiBuYW1lIGZyb20gdGhlIG9yaWdpbiBv
cmlnaW4gd2FzIGZvdW5kLCBvciBpZiBpdCB3YXMgZGVsZXRlZCBkdXJpbmcgdGhlIHByZXZpb3Vz
IHN0ZXAsIHRoZW4gY3JlYXRlIGEgZGF0YWJhc2Ugd2l0aCBuYW1lIG5hbWUsIHdpdGggMCBhcyB2
ZXJzaW9uLCBhbmQgd2l0aCBubyBvYmplY3Qgc3RvcmVzLiBMZXQgZGIgYmUgdGhlIG5ldyBkYXRh
YmFzZS4iKTsKKyAgICBkZWJ1ZygiNC4xLjY6IENyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGRi
IGFuZCBsZXQgY29ubmVjdGlvbiByZXByZXNlbnQgaXQuIik7CisgICAgZGVidWcoIjQuMS43OiBJ
ZiB0aGUgdmVyc2lvbiBvZiBkYiBpcyBsb3dlciB0aGFuIHZlcnNpb24sIHRoZW4gcnVuIHRoZSBz
dGVwcyBmb3IgcnVubmluZyBhIFwidmVyc2lvbmNoYW5nZVwiIHRyYW5zYWN0aW9uIHVzaW5nIGNv
bm5lY3Rpb24sIHZlcnNpb24sIHJlcXVlc3QgYW5kIHVwZ3JhZGUgY2FsbGJhY2suIik7CisgICAg
ZGVidWcoIjQuMS45OiBSZXR1cm4gY29ubmVjdGlvbi4iKTsKKworICAgIGV2YWxBbmRMb2coInJl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpIik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJTdHJpbmcocmVxdWVzdCkiLCAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIpOwor
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbnVwZ3Jh
ZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBl
Y3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciBzYXdVcGdyYWRl
TmVlZGVkID0gZmFsc2U7Cit2YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlOworZnVu
Y3Rpb24gdXBncmFkZU5lZWRlZChldnQpCit7CisgICAgZXZlbnQgPSBldnQ7CisgICAgdGVzdFBh
c3NlZCgiSW4gdGhlIHVwZ3JhZGVuZWVkZWQgZXZlbnQgaGFuZGVyOiIpOworICAgIGRlYnVnKCJU
ZXN0IDQuOC45LjE6Iik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZGIpIiwgIltvYmplY3QgSURC
RGF0YWJhc2VdIik7CisgICAgZGVidWcoIlRlc3QgNC44LjkuMzoiKTsKKyAgICBzaG91bGRCZSgi
ZXZlbnQub2xkVmVyc2lvbiIsICIwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm5ld1ZlcnNpb24i
LCAiNyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0LnJlYWR5U3Rh
dGUiLCAiZG9uZSIpOworICAgIGRlYnVnKCJUZXN0IDQuMS40OiIpOworICAgIHNob3VsZEJlKCJk
Yi5uYW1lIiwgImRibmFtZSIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjciKTsKKyAg
ICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiLCAiMCIpOworCisgICAgZXZh
bEFuZExvZygidHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyh0cmFuc2FjdGlvbikiLCAiW29iamVjdCBJREJU
cmFuc2FjdGlvbl0iKTsKKyAgICBldmFsQW5kTG9nKCdvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzb21lT1MiKScpOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRD
YWxsYmFjazsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZSkgeworICAg
ICAgZXZhbEFuZExvZygic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUiKTsKKyAgICB9Cisg
ICAgc2F3VXBncmFkZU5lZWRlZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKGV2
dCkKK3sKKyAgICBldmVudCA9IGV2dDsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIm9wZW5T
dWNjZXNzKCk6Iik7CisgICAgZGVidWcoIlRlc3QgNC4xLjcsIHRoYXQgYSB2ZXJzaW9uY2hhbmdl
IHRyYW5zYWN0aW9uIHdhcyBydW4uIik7CisgICAgc2hvdWxkQmUoInNhd1VwZ3JhZGVOZWVkZWQi
LCAidHJ1ZSIpOworICAgIHNob3VsZEJlVHJ1ZSgic2F3VHJhbnNhY3Rpb25Db21wbGV0ZSIpOwor
ICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZGVi
dWcoIktpbmQgb2YgdGVzdCA0LjEuOToiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0
cmluZyhkYikiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAgICBzaG91bGRCZSgnZGIudmVy
c2lvbicsICI3Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCmluZGV4IGEw
NmY1YWY0MDBjZjg5MzBhNjYwN2RlNzljZWVmYzFhMDAxNzhjODcuLmUzZGYzMzhlYTc1ZmNjODVj
NjE0MzYzZDQ1MmIzMGE2MjQ4NzQ5NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwpAQCAtNzcsNiArNzcsMTIgQEAgZnVuY3Rpb24g
dW5leHBlY3RlZFVwZ3JhZGVOZWVkZWRDYWxsYmFjaygpCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9
CiAKK2Z1bmN0aW9uIHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2soKQoreworICAgIHRl
c3RGYWlsZWQoIm9udmVyc2lvbmNoYW5nZSBjYWxsZWQgdW5leHBlY3RlZGx5Iik7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKIGZ1bmN0aW9uIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oY21kLCBl
eGNlcHRpb25Db2RlLCBleGNlcHRpb25OYW1lKQogewogICAgIGRlYnVnKCJFeHBlY3RpbmcgZXhj
ZXB0aW9uIGZyb20gIiArIGNtZCk7CkBAIC0xMjMsNiArMTI5LDE4IEBAIGZ1bmN0aW9uIGRlbGV0
ZUFsbE9iamVjdFN0b3JlcyhkYikKICAgICBkZWJ1ZygiRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jl
cy4iKTsKIH0KIAorZnVuY3Rpb24gc2V0REJOYW1lRnJvbVBhdGgoKSB7CisgICAgZXZhbEFuZExv
ZygnZGJuYW1lID0gIicgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygxICsgc2Vs
Zi5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKSArICciJyk7Cit9CisKK2Z1bmN0
aW9uIHByZWFtYmxlKGV2dCkKK3sKKyAgICBpZiAoZXZ0KQorICAgICAgICBldmVudCA9IGV2dDsK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcocHJlYW1ibGUuY2FsbGVyLm5hbWUgKyAiKCk6Iik7
Cit9CisKIC8vIEZvciBXb3JrZXJzCiBpZiAoIXNlbGYuRE9NRXhjZXB0aW9uKSB7CiAgICAgc2Vs
Zi5ET01FeGNlcHRpb24gPSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>