<?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>159539</bug_id>
          
          <creation_ts>2016-07-07 16:53:29 -0700</creation_ts>
          <short_desc>EWS console logs doesn&apos;t go to log file</short_desc>
          <delta_ts>2016-08-04 19:09:49 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159990</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=160585</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1208901</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-07-07 16:53:29 -0700</bug_when>
    <thetext>When we run an ews slave locally, it generates some logs on console. These logs are very useful for debugging issues with ews. However these logs are lost when EWS runs from a script/launch-agent. These logs should go to a log file.

see &lt;rdar://problem/24464570&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208920</commentid>
    <comment_count>1</comment_count>
      <attachid>283095</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-07-07 17:43:17 -0700</bug_when>
    <thetext>Created attachment 283095
Proposed patch

Sample output (from running test-webkitpy)

[~/code/webkit/Tools/mac-ews-logs]$cat mac-ews_2016-07-07_17-21-06.log 
2016-07-07 17:21:06,529 - CAUTION: mac-ews will discard all local changes in &quot;/mock-checkout&quot;
2016-07-07 17:21:06,530 - Running WebKit mac-ews.
2016-07-07 17:21:06,532 - Running: webkit-patch --status-host=example.com clean --port=mac
2016-07-07 17:21:06,533 - Running: webkit-patch --status-host=example.com update --port=mac
2016-07-07 17:21:06,534 - Running: webkit-patch --status-host=example.com apply-attachment --no-update --non-interactive 10000 --port=mac
2016-07-07 17:21:06,535 - Running: webkit-patch --status-host=example.com build --no-clean --no-update --build-style=release --port=mac
2016-07-07 17:21:06,537 - Running: webkit-patch --status-host=example.com build-and-test --no-clean --no-update --test --non-interactive --build-style=release --port=Mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208941</commentid>
    <comment_count>2</comment_count>
      <attachid>283095</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-07 19:56:19 -0700</bug_when>
    <thetext>Comment on attachment 283095
Proposed patch

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

&gt; Tools/ChangeLog:9
&gt; +        (AbstractQueue.queue_log_path): Append timestamp in file name so that file doesn&apos;t get overwritten.

When do these log files get overwritten?

I do not quite understand how this patch works. There are already some logs saved to dial, but these have very little data. What mechanism is used for those logs? Can/should these be merged to use a shared mechanism?

&gt; Tools/Scripts/webkitpy/tool/commands/queues.py:117
&gt; -        return os.path.join(self._log_directory(), &quot;%s.log&quot; % self.name)
&gt; +        return os.path.join(self._log_directory(), &quot;{}_{:%Y-%m-%d_%H-%M-%S}.log&quot;.format(self.name, datetime.now()))

start-queue-mac.sh already has log rotation logic that renames old log files. We should delete it if doing it here is preferable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208942</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-07 19:56:36 -0700</bug_when>
    <thetext>&gt; saved to dial

saved to disk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209272</commentid>
    <comment_count>4</comment_count>
      <attachid>283199</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-07-08 14:45:10 -0700</bug_when>
    <thetext>Created attachment 283199
Updated patch

Thanks for pointing me to start-queue-mac.sh, I was searching for that logic in webkitpy.

There were two logging mechanisms being used in the ews code, one is using _log statements, and other was using OutputTee. _log messages were only going to console(not to log file), as file handler was not configured. I am configuring the file handler for the logs in this patch. Also, I am removing OutputTee logic and making everything use the common _log mechanism.

Also, since we do not want two separate log files for queue logs and patch logs, I am removing work_item_log_path from everywhere, so that there is no confusion about log paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209340</commentid>
    <comment_count>5</comment_count>
      <attachid>283199</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-08 17:07:28 -0700</bug_when>
    <thetext>Comment on attachment 283199
Updated patch

Looks mostly good to me, however we found that this pollutes local file system every time test-webkitpy is run.

It seems nice to have separate logs for queue operation and for specific patches. Can that be retained?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211855</commentid>
    <comment_count>6</comment_count>
      <attachid>283868</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-07-17 10:57:48 -0700</bug_when>
    <thetext>Created attachment 283868
Updated patch

Used MockHost(and MockFileSystem) in unit tests, so that test-webkitpy doesn&apos;t pollutes actual filesystem. Added new logging class to supports logging to MockFileSystem.

Also, removed the changes related to OutputTee and removing work_item_log_path, will do it in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212150</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-07-18 15:48:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/24464570&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212153</commentid>
    <comment_count>8</comment_count>
      <attachid>283868</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-07-18 16:02:45 -0700</bug_when>
    <thetext>Comment on attachment 283868
Updated patch

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

r=me.  I&apos;ll let you decide if you want to fix up the comments.

&gt; Tools/Scripts/webkitpy/common/system/logutils.py:217
&gt; +    # create log directory if required

Comments start with a capital letter and end with a period.
This comment could probably be removed since it&apos;s obvious what the code is doing as well.

&gt; Tools/Scripts/webkitpy/common/system/logutils.py:222
&gt; +    # configure the logger

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212197</commentid>
    <comment_count>9</comment_count>
      <attachid>283962</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-07-18 16:55:41 -0700</bug_when>
    <thetext>Created attachment 283962
Updated patch

Thanks for the review.

Removed the extra comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212211</commentid>
    <comment_count>10</comment_count>
      <attachid>283962</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-18 17:25:44 -0700</bug_when>
    <thetext>Comment on attachment 283962
Updated patch

Clearing flags on attachment: 283962

Committed r203386: &lt;http://trac.webkit.org/changeset/203386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212212</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-18 17:25:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212496</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-19 13:34:42 -0700</bug_when>
    <thetext>This broke iOS EWS for some reason. Whenever test-webkitpy is run, something changes that prevent webkit-patch from loading EWS classes. Deleting .pyc files makes it work again.

Landed that as a temporary workaround in &lt;http://trac.webkit.org/r203417&gt;. This needs to be fixed for real, of course.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283095</attachid>
            <date>2016-07-07 17:43:17 -0700</date>
            <delta_ts>2016-07-08 14:45:10 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>ews-log-v4</filename>
            <type>text/plain</type>
            <size>2367</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwMjk1MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDE2LTA3LTA3ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBFV1MgY29uc29sZSBsb2dzIGRvZXNuJ3QgZ28gdG8gbG9nIGZpbGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTUzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weToKKyAgICAgICAgKEFic3RyYWN0UXVldWUu
cXVldWVfbG9nX3BhdGgpOiBBcHBlbmQgdGltZXN0YW1wIGluIGZpbGUgbmFtZSBzbyB0aGF0IGZp
bGUgZG9lc24ndCBnZXQgb3ZlcndyaXR0ZW4uCisgICAgICAgIChBYnN0cmFjdFF1ZXVlLmNvbmZp
Z3VyZV9sb2dnZXIpOiBDb25maWd1cmVzIHRoZSBsb2dnZXIuCisgICAgICAgIChBYnN0cmFjdFF1
ZXVlLmJlZ2luX3dvcmtfcXVldWUpOiBjYWxscyBjb25maWd1cmVfbG9nZ2VyKCkgd2hlbiB0aGUg
cXVldWUgYmVnaW5zLgorCiAyMDE2LTA3LTA3ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmddIExvYWQgYmxvY2tlZCBwYWdlcyBtb3Jl
IGxpa2Ugb3RoZXIgZXJyb3IgcGFnZXMgYXJlIGxvYWRlZApJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CShyZXZpc2lvbiAyMDI5NTApCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0xMTQsMTIgKzExNCwyNiBAQCBjbGFzcyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQs
IFF1ZXVlRW5naW5lCiAgICAgIyBRdWV1ZUVuZ2luZURlbGVnYXRlIG1ldGhvZHMKIAogICAgIGRl
ZiBxdWV1ZV9sb2dfcGF0aChzZWxmKToKLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxm
Ll9sb2dfZGlyZWN0b3J5KCksICIlcy5sb2ciICUgc2VsZi5uYW1lKQorICAgICAgICByZXR1cm4g
b3MucGF0aC5qb2luKHNlbGYuX2xvZ19kaXJlY3RvcnkoKSwgInt9X3s6JVktJW0tJWRfJUgtJU0t
JVN9LmxvZyIuZm9ybWF0KHNlbGYubmFtZSwgZGF0ZXRpbWUubm93KCkpKQogCiAgICAgZGVmIHdv
cmtfaXRlbV9sb2dfcGF0aChzZWxmLCB3b3JrX2l0ZW0pOgogICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKIAorICAgIGRlZiBjb25m
aWd1cmVfbG9nZ2VyKHNlbGYsIGxvZ2dlcik6CisgICAgICAgIGxvZ19wYXRoID0gc2VsZi5xdWV1
ZV9sb2dfcGF0aCgpCisgICAgICAgICMgY3JlYXRlIGxvZyBkaXJlY3RvcnkgaWYgcmVxdWlyZWQK
KyAgICAgICAgKGxvZ19kaXJlY3RvcnksIGxvZ19uYW1lKSA9IG9zLnBhdGguc3BsaXQobG9nX3Bh
dGgpCisgICAgICAgIGlmIGxvZ19kaXJlY3RvcnkgYW5kIG5vdCBvcy5wYXRoLmV4aXN0cyhsb2df
ZGlyZWN0b3J5KToKKyAgICAgICAgICAgIG9zLm1ha2VkaXJzKGxvZ19kaXJlY3RvcnkpCisKKyAg
ICAgICAgIyBjb25maWd1cmUgdGhlIGxvZ2dlcgorICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5G
aWxlSGFuZGxlcihsb2dfcGF0aCkKKyAgICAgICAgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0
ZXIoJyUoYXNjdGltZSlzIC0gJShtZXNzYWdlKXMnKQorICAgICAgICBoYW5kbGVyLnNldEZvcm1h
dHRlcihmb3JtYXR0ZXIpCisgICAgICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCisKICAg
ICBkZWYgYmVnaW5fd29ya19xdWV1ZShzZWxmKToKKyAgICAgICAgc2VsZi5jb25maWd1cmVfbG9n
Z2VyKF9sb2cpCiAgICAgICAgIF9sb2cuaW5mbygiQ0FVVElPTjogJXMgd2lsbCBkaXNjYXJkIGFs
bCBsb2NhbCBjaGFuZ2VzIGluIFwiJXNcIiIgJSAoc2VsZi5uYW1lLCBzZWxmLl90b29sLnNjbSgp
LmNoZWNrb3V0X3Jvb3QpKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmNvbmZpcm06CiAgICAg
ICAgICAgICByZXNwb25zZSA9IHNlbGYuX3Rvb2wudXNlci5wcm9tcHQoIkFyZSB5b3Ugc3VyZT8g
IFR5cGUgXCJ5ZXNcIiB0byBjb250aW51ZTogIikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283199</attachid>
            <date>2016-07-08 14:45:10 -0700</date>
            <delta_ts>2016-07-17 10:57:48 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>ews-log-v7</filename>
            <type>text/plain</type>
            <size>14799</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwMzAwMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ4IEBACisyMDE2LTA3LTA4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBFV1MgY29uc29sZSBsb2dzIGRvZXNuJ3QgZ28gdG8gbG9nIGZpbGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTUzOQorICAg
ICAgICByZGFyOi8vcHJvYmxlbS8yNDQ2NDU3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgd29ya19pdGVtX2xvZ19wYXRoLCB3ZSBkbyBu
b3QgbmVlZCB0d28gc2VwYXJhdGUgbG9nZ2luZyBwYXRocyBmb3IgcXVldWVzIGFuZCB3b3JrX2l0
ZW1zLAorICAgICAgICBib3RoIHRoZSBsb2dzIHNob3VsZCBqdXN0IGdvIHRvIHNhbWUgbG9nIGZp
bGUuCisgICAgICAgIEFsc28sIGJvdGggcXVldWVzIGFuZCB3b3JrX2l0ZW1zIHNob3VsZCB1c2Ug
c2FtZSBsb2dnaW5nIG1lY2hhbmlzbS4gVGhpcyB3YXMgbm90IHRoZSBjYXNlIAorICAgICAgICBl
YXJsaWVyICh3b3JrX2l0ZW0gd2FzIHVzaW5nIE91dHB1dFRlZSB3aGljaCBkaXJlY3RseSB1c2Vz
IGZpbGUgaGFuZGxlcnMgdG8gcmVhZC93cml0ZSB0byBsb2dmaWxlcykuIAorICAgICAgICBOb3cs
IGJvdGggcXVldWVzIGFuZCB3b3JrX2l0ZW1zIHVzZXMgcHl0aG9uIGxvZ2dpbmcuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lLnB5OgorICAgICAgICAo
UXVldWVFbmdpbmUucnVuKTogVXBkYXRlZCBsb2dnaW5nIG1lY2hhbmlzbSwgdXNpbmcgcHl0aG9u
IGxvZ2dpbmcgaW5zdGVhZCBvZiBPdXRwdXRUZWUgd2hpY2gKKyAgICAgICAgZGlyZWN0bHkgd3Jp
dGVzIHRvIGZpbGUuCisgICAgICAgIChRdWV1ZUVuZ2luZS5fc3RvcHBpbmcpOiByZW1vdmVkIGV4
dHJhIG5ld2xpbmUuCisgICAgICAgIChRdWV1ZUVuZ2luZS5jb25maWd1cmVfbG9nZ2VyKTogQWRk
ZWQgbWV0aG9kIHRvIGNvbmZpZ3VyZSB0aGUgbG9nZ2luZyBtZWNoYW5pc20uCisgICAgICAgIChR
dWV1ZUVuZ2luZURlbGVnYXRlLndvcmtfaXRlbV9sb2dfcGF0aCk6IERlbGV0ZWQuCisgICAgICAg
IChRdWV1ZUVuZ2luZS5fYmVnaW5fbG9nZ2luZyk6IERlbGV0ZWQuCisgICAgICAgIChRdWV1ZUVu
Z2luZS5fb3Blbl93b3JrX2xvZyk6IERlbGV0ZWQuCisgICAgICAgIChRdWV1ZUVuZ2luZS5fZW5z
dXJlX3dvcmtfbG9nX2Nsb3NlZCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9xdWV1ZWVuZ2luZV91bml0dGVzdC5weTogUmVtb3ZlZCB3b3JrX2l0ZW1fbG9n
X3BhdGggZnJvbSBldmVyeXdoZXJlLgorICAgICAgICAoTG9nZ2luZ0RlbGVnYXRlKTogUmVtb3Zl
ZCB3b3JrX2l0ZW1fbG9nX3BhdGguCisgICAgICAgIChRdWV1ZUVuZ2luZVRlc3QudGVzdF90cml2
aWFsKTogU2FtZS4KKyAgICAgICAgKFF1ZXVlRW5naW5lVGVzdC50ZXN0X3VuZXhwZWN0ZWRfZXJy
b3IpOiBSZW1vdmVkIHdvcmtfaXRlbV9sb2dfcGF0aCBhbmQgdXBkYXRlZCB0ZXJtaW5hdGlvbiBt
ZXNzYWdlCisgICAgICAgIGFzIHBlciBuZXcgbG9nZ2luZy4KKyAgICAgICAgKFF1ZXVlRW5naW5l
VGVzdC50ZXN0X2hhbmRsZWRfZXJyb3IpOiBVcGRhdGVkIHRlcm1pbmF0aW9uIG1lc3NhZ2UuCisg
ICAgICAgIChRdWV1ZUVuZ2luZVRlc3QuX3J1bl9lbmdpbmUpOiBSZW1vdmVkIGV4dHJhIG5ld2xp
bmUgY2hhcmFjdGVyLgorICAgICAgICAoTG9nZ2luZ0RlbGVnYXRlLndvcmtfaXRlbV9sb2dfcGF0
aCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1
ZXVlcy5weToKKyAgICAgICAgKEFic3RyYWN0UXVldWUuYmVnaW5fd29ya19xdWV1ZSk6IGNhbGwg
Y29uZmlndXJlX2xvZ2dlcigpIHRvIHN0YXJ0IGxvZ2dpbmcuCisgICAgICAgIChBYnN0cmFjdFF1
ZXVlLndvcmtfaXRlbV9sb2dfcGF0aCk6IERlbGV0ZWQgd29ya19pdGVtX2xvZ19wYXRoLgorICAg
ICAgICAoRmVlZGVyUXVldWUud29ya19pdGVtX2xvZ19wYXRoKTogU2FtZS4KKyAgICAgICAgKEFi
c3RyYWN0UGF0Y2hRdWV1ZS53b3JrX2l0ZW1fbG9nX3BhdGgpOiBTYW1lLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXN0ZXN0LnB5OgorICAgICAgICAoUXVl
dWVzVGVzdC5hc3NlcnRfcXVldWVfb3V0cHV0cyk6IFNhbWUuIAorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9uZXdjb21taXRib3QucHk6CisgICAgICAgIChOZXdDb21t
aXRCb3Qud29ya19pdGVtX2xvZ19wYXRoKTogU2FtZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXplci5weToKKyAgICAgICAgKFBlcmZhbGl6ZXIud29y
a19pdGVtX2xvZ19wYXRoKTogU2FtZS4gCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3NoZXJpZmZib3QucHk6CisgICAgICAgIChTaGVyaWZmQm90LndvcmtfaXRlbV9s
b2dfcGF0aCk6IFNhbWUuIAorCiAyMDE2LTA3LTA4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmddIExvYWQgYmxvY2tlZCBwYWdlcyBt
b3JlIGxpa2Ugb3RoZXIgZXJyb3IgcGFnZXMgYXJlIGxvYWRlZApJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9xdWV1ZWVuZ2luZS5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lLnB5CShyZXZpc2lvbiAyMDI5NTAp
CisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCwxMyArMjgsMTMgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IGxv
Z2dpbmcKK2ltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRyYWNlYmFjawogCiBmcm9tIGRh
dGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhCiAKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCi1mcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0ub3V0cHV0dGVlIGltcG9ydCBPdXRwdXRUZWUKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQogCkBAIC00OSw5ICs0OSw2IEBAIGNsYXNzIFF1ZXVlRW5naW5lRGVs
ZWdhdGU6CiAgICAgZGVmIHF1ZXVlX2xvZ19wYXRoKHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKIAotICAgIGRlZiB3
b3JrX2l0ZW1fbG9nX3BhdGgoc2VsZiwgd29ya19pdGVtKToKLSAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvciwgInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCi0KICAgICBkZWYgYmVn
aW5fd29ya19xdWV1ZShzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwg
InN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCiAKQEAgLTczLDcgKzcwLDYgQEAgY2xhc3MgUXVl
dWVFbmdpbmU6CiAgICAgICAgIHNlbGYuX25hbWUgPSBuYW1lCiAgICAgICAgIHNlbGYuX2RlbGVn
YXRlID0gZGVsZWdhdGUKICAgICAgICAgc2VsZi5fd2FrZXVwX2V2ZW50ID0gd2FrZXVwX2V2ZW50
Ci0gICAgICAgIHNlbGYuX291dHB1dF90ZWUgPSBPdXRwdXRUZWUoKQogICAgICAgICBzZWxmLl9z
ZWNvbmRzX3RvX3NsZWVwID0gc2Vjb25kc190b19zbGVlcAogCiAgICAgbG9nX2RhdGVfZm9ybWF0
ID0gIiVZLSVtLSVkICVIOiVNOiVTIgpAQCAtODYsMTIgKzgyLDExIEBAIGNsYXNzIFF1ZXVlRW5n
aW5lOgogICAgICAgICBzeXMuZXhpdChjbHMuaGFuZGxlZF9lcnJvcl9jb2RlKQogCiAgICAgZGVm
IHJ1bihzZWxmKToKLSAgICAgICAgc2VsZi5fYmVnaW5fbG9nZ2luZygpCisgICAgICAgIHNlbGYu
Y29uZmlndXJlX2xvZ2dlcihfbG9nLCBzZWxmLl9kZWxlZ2F0ZS5xdWV1ZV9sb2dfcGF0aCgpKQog
CiAgICAgICAgIHNlbGYuX2RlbGVnYXRlLmJlZ2luX3dvcmtfcXVldWUoKQogICAgICAgICB3aGls
ZSAoc2VsZi5fZGVsZWdhdGUuc2hvdWxkX2NvbnRpbnVlX3dvcmtfcXVldWUoKSk6CiAgICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZW5zdXJlX3dvcmtfbG9nX2Nsb3NlZCgp
CiAgICAgICAgICAgICAgICAgd29ya19pdGVtID0gc2VsZi5fZGVsZWdhdGUubmV4dF93b3JrX2l0
ZW0oKQogICAgICAgICAgICAgICAgIGlmIG5vdCB3b3JrX2l0ZW06CiAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3NsZWVwKCJObyB3b3JrIGl0ZW0uIikKQEAgLTEwMiw4ICs5Nyw3IEBAIGNsYXNz
IFF1ZXVlRW5naW5lOgogICAgICAgICAgICAgICAgICAgICAgICAgX2xvZy53YXJuaW5nKCJVbmFi
bGUgdG8gcHJvY2VzcyB3b3JrIGl0ZW0uIikKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCiAgICAgICAgICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9vcGVuX3dvcmtfbG9nKHdvcmtfaXRlbSkKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fd29ya19sb2cud3JpdGUoZS5tZXNzYWdlX3dpdGhfb3V0cHV0KCkpCisgICAgICAg
ICAgICAgICAgICAgIF9sb2cuZXJyb3IoIiVzIiAlIGUubWVzc2FnZV93aXRoX291dHB1dCgpKQog
ICAgICAgICAgICAgICAgICAgICAjIFVzZSBhIHNwZWNpYWwgZXhpdCBjb2RlIHRvIGluZGljYXRl
IHRoYXQgdGhlIGVycm9yIHdhcyBhbHJlYWR5CiAgICAgICAgICAgICAgICAgICAgICMgaGFuZGxl
ZCBpbiB0aGUgY2hpbGQgcHJvY2VzcyBhbmQgd2Ugc2hvdWxkIGp1c3Qga2VlcCBsb29waW5nLgog
ICAgICAgICAgICAgICAgICAgICBpZiBlLmV4aXRfY29kZSA9PSBzZWxmLmhhbmRsZWRfZXJyb3Jf
Y29kZToKQEAgLTEyNCwyNyArMTE4LDIxIEBAIGNsYXNzIFF1ZXVlRW5naW5lOgogICAgICAgICBy
ZXR1cm4gMAogCiAgICAgZGVmIF9zdG9wcGluZyhzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgX2xv
Zy5pbmZvKCJcbiVzIiAlIG1lc3NhZ2UpCisgICAgICAgIF9sb2cuaW5mbygiJXMiICUgbWVzc2Fn
ZSkKICAgICAgICAgc2VsZi5fZGVsZWdhdGUuc3RvcF93b3JrX3F1ZXVlKG1lc3NhZ2UpCi0gICAg
ICAgICMgQmUgY2FyZWZ1bCB0byBzaHV0IGRvd24gb3VyIE91dHB1dFRlZSBvciB0aGUgdW5pdCB0
ZXN0cyB3aWxsIGJlIHVuaGFwcHkuCi0gICAgICAgIHNlbGYuX2Vuc3VyZV93b3JrX2xvZ19jbG9z
ZWQoKQotICAgICAgICBzZWxmLl9vdXRwdXRfdGVlLnJlbW92ZV9sb2coc2VsZi5fcXVldWVfbG9n
KQotCi0gICAgZGVmIF9iZWdpbl9sb2dnaW5nKHNlbGYpOgotICAgICAgICBzZWxmLl9xdWV1ZV9s
b2cgPSBzZWxmLl9vdXRwdXRfdGVlLmFkZF9sb2coc2VsZi5fZGVsZWdhdGUucXVldWVfbG9nX3Bh
dGgoKSkKLSAgICAgICAgc2VsZi5fd29ya19sb2cgPSBOb25lCi0KLSAgICBkZWYgX29wZW5fd29y
a19sb2coc2VsZiwgd29ya19pdGVtKToKLSAgICAgICAgd29ya19pdGVtX2xvZ19wYXRoID0gc2Vs
Zi5fZGVsZWdhdGUud29ya19pdGVtX2xvZ19wYXRoKHdvcmtfaXRlbSkKLSAgICAgICAgaWYgbm90
IHdvcmtfaXRlbV9sb2dfcGF0aDoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLl93
b3JrX2xvZyA9IHNlbGYuX291dHB1dF90ZWUuX29wZW5fbG9nX2ZpbGUod29ya19pdGVtX2xvZ19w
YXRoKQotCi0gICAgZGVmIF9lbnN1cmVfd29ya19sb2dfY2xvc2VkKHNlbGYpOgotICAgICAgICAj
IElmIHdlIHN0aWxsIGhhdmUgYSBidWcgbG9nIG9wZW4sIGNsb3NlIGl0LgotICAgICAgICBpZiBz
ZWxmLl93b3JrX2xvZzoKLSAgICAgICAgICAgIHNlbGYuX3dvcmtfbG9nLmNsb3NlKCkKLSAgICAg
ICAgICAgIHNlbGYuX3dvcmtfbG9nID0gTm9uZQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVm
IGNvbmZpZ3VyZV9sb2dnZXIoY2xzLCBsb2dnZXIsIGxvZ19wYXRoKToKKyAgICAgICAgIyBjcmVh
dGUgbG9nIGRpcmVjdG9yeSBpZiByZXF1aXJlZAorICAgICAgICAobG9nX2RpcmVjdG9yeSwgbG9n
X25hbWUpID0gb3MucGF0aC5zcGxpdChsb2dfcGF0aCkKKyAgICAgICAgaWYgbG9nX2RpcmVjdG9y
eSBhbmQgbm90IG9zLnBhdGguZXhpc3RzKGxvZ19kaXJlY3RvcnkpOgorICAgICAgICAgICAgb3Mu
bWFrZWRpcnMobG9nX2RpcmVjdG9yeSkKKworICAgICAgICAjIGNvbmZpZ3VyZSB0aGUgbG9nZ2Vy
CisgICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLkZpbGVIYW5kbGVyKGxvZ19wYXRoKQorICAgICAg
ICBmb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcignJShhc2N0aW1lKXMgLSAlKG1lc3NhZ2Up
cycpCisgICAgICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKKyAgICAgICAgbG9n
Z2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKIAogICAgIGRlZiBfbm93KHNlbGYpOgogICAgICAgICAi
IiJPdmVycmlkZW4gYnkgdGhlIHVuaXQgdGVzdHMgdG8gYWxsb3cgdGVzdGluZyBfc2xlZXBfbWVz
c2FnZSIiIgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9xdWV1ZWVuZ2lu
ZV91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L3F1ZXVlZW5naW5lX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyMDI5NTApCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lX3VuaXR0ZXN0LnB5CSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw2IEBAIGNsYXNzIExvZ2dpbmdEZWxlZ2F0ZShRdWV1ZUVuZ2lu
ZURlbGVnYXQKICAgICAgICAgJ3Nob3VsZF9jb250aW51ZV93b3JrX3F1ZXVlJywKICAgICAgICAg
J25leHRfd29ya19pdGVtJywKICAgICAgICAgJ3Byb2Nlc3Nfd29ya19pdGVtJywKLSAgICAgICAg
J3dvcmtfaXRlbV9sb2dfcGF0aCcsCiAgICAgICAgICdzaG91bGRfY29udGludWVfd29ya19xdWV1
ZScsCiAgICAgICAgICdzdG9wX3dvcmtfcXVldWUnLAogICAgIF0KQEAgLTYzLDEwICs2Miw2IEBA
IGNsYXNzIExvZ2dpbmdEZWxlZ2F0ZShRdWV1ZUVuZ2luZURlbGVnYXQKICAgICAgICAgc2VsZi5y
ZWNvcmQoInF1ZXVlX2xvZ19wYXRoIikKICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxm
Ll90ZXN0LnRlbXBfZGlyLCAicXVldWVfbG9nX3BhdGgiKQogCi0gICAgZGVmIHdvcmtfaXRlbV9s
b2dfcGF0aChzZWxmLCB3b3JrX2l0ZW0pOgotICAgICAgICBzZWxmLnJlY29yZCgid29ya19pdGVt
X2xvZ19wYXRoIikKLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLl90ZXN0LnRlbXBf
ZGlyLCAid29ya19sb2dfcGF0aCIsICIlcy5sb2ciICUgd29ya19pdGVtKQotCiAgICAgZGVmIGJl
Z2luX3dvcmtfcXVldWUoc2VsZik6CiAgICAgICAgIHNlbGYucmVjb3JkKCJiZWdpbl93b3JrX3F1
ZXVlIikKIApAQCAtMTIwLDcgKzExNSw2IEBAIGNsYXNzIFF1ZXVlRW5naW5lVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSkKICAgICBkZWYgdGVzdF90cml2aWFsKHNlbGYpOgogICAgICAgICBkZWxlZ2F0
ZSA9IExvZ2dpbmdEZWxlZ2F0ZShzZWxmKQogICAgICAgICBleHBlY3RlZF9jYWxsYmFja3MgPSBM
b2dnaW5nRGVsZWdhdGUuZXhwZWN0ZWRfY2FsbGJhY2tzWzpdCi0gICAgICAgIGV4cGVjdGVkX2Nh
bGxiYWNrcy5yZW1vdmUoJ3dvcmtfaXRlbV9sb2dfcGF0aCcpCiAgICAgICAgIHNlbGYuX3J1bl9l
bmdpbmUoZGVsZWdhdGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVsZWdhdGUuc3RvcF9t
ZXNzYWdlLCAiRGVsZWdhdGUgdGVybWluYXRlZCBxdWV1ZS4iKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGRlbGVnYXRlLl9jYWxsYmFja3MsIGV4cGVjdGVkX2NhbGxiYWNrcykKQEAgLTEyOCwx
NyArMTIyLDE3IEBAIGNsYXNzIFF1ZXVlRW5naW5lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSkKIAog
ICAgIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfZXJyb3Ioc2VsZik6CiAgICAgICAgIGRlbGVnYXRlID0g
UmFpc2luZ0RlbGVnYXRlKHNlbGYsIFNjcmlwdEVycm9yKGV4aXRfY29kZT0zKSkKLSAgICAgICAg
c2VsZi5fcnVuX2VuZ2luZShkZWxlZ2F0ZSkKKyAgICAgICAgc2VsZi5fcnVuX2VuZ2luZShkZWxl
Z2F0ZSwgdGVybWluYXRpb25fbWVzc2FnZT0iRmFpbGVkIHRvIHJ1biBcIk5vbmVcIiBleGl0X2Nv
ZGU6IDNcbkRlbGVnYXRlIHRlcm1pbmF0ZWQgcXVldWUuIikKICAgICAgICAgZXhwZWN0ZWRfY2Fs
bGJhY2tzID0gTG9nZ2luZ0RlbGVnYXRlLmV4cGVjdGVkX2NhbGxiYWNrc1s6XQotICAgICAgICB3
b3JrX2l0ZW1fbG9nX3BhdGhfaW5kZXggPSBleHBlY3RlZF9jYWxsYmFja3MuaW5kZXgoJ3dvcmtf
aXRlbV9sb2dfcGF0aCcpCisgICAgICAgIHByb2Nlc3Nfd29ya19pdGVtX2luZGV4ID0gZXhwZWN0
ZWRfY2FsbGJhY2tzLmluZGV4KCdwcm9jZXNzX3dvcmtfaXRlbScpCiAgICAgICAgICMgVGhlIHVu
ZXhwZWN0ZWQgZXJyb3Igc2hvdWxkIGJlIGhhbmRsZWQgcmlnaHQgYWZ0ZXIgcHJvY2Vzc193b3Jr
X2l0ZW0gc3RhcnRzCiAgICAgICAgICMgYnV0IGJlZm9yZSBhbnkgb3RoZXIgY2FsbGJhY2suICBP
dGhlcndpc2UgY2FsbGJhY2tzIHNob3VsZCBiZSBub3JtYWwuCi0gICAgICAgIGV4cGVjdGVkX2Nh
bGxiYWNrcy5pbnNlcnQod29ya19pdGVtX2xvZ19wYXRoX2luZGV4ICsgMSwgJ2hhbmRsZV91bmV4
cGVjdGVkX2Vycm9yJykKKyAgICAgICAgZXhwZWN0ZWRfY2FsbGJhY2tzLmluc2VydChwcm9jZXNz
X3dvcmtfaXRlbV9pbmRleCArIDEsICdoYW5kbGVfdW5leHBlY3RlZF9lcnJvcicpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZGVsZWdhdGUuX2NhbGxiYWNrcywgZXhwZWN0ZWRfY2FsbGJhY2tz
KQogCiAgICAgZGVmIHRlc3RfaGFuZGxlZF9lcnJvcihzZWxmKToKICAgICAgICAgZGVsZWdhdGUg
PSBSYWlzaW5nRGVsZWdhdGUoc2VsZiwgU2NyaXB0RXJyb3IoZXhpdF9jb2RlPVF1ZXVlRW5naW5l
LmhhbmRsZWRfZXJyb3JfY29kZSkpCi0gICAgICAgIHNlbGYuX3J1bl9lbmdpbmUoZGVsZWdhdGUp
CisgICAgICAgIHNlbGYuX3J1bl9lbmdpbmUoZGVsZWdhdGUsIHRlcm1pbmF0aW9uX21lc3NhZ2U9
IkZhaWxlZCB0byBydW4gXCJOb25lXCIgZXhpdF9jb2RlOiAyXG5EZWxlZ2F0ZSB0ZXJtaW5hdGVk
IHF1ZXVlLiIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVsZWdhdGUuX2NhbGxiYWNrcywg
TG9nZ2luZ0RlbGVnYXRlLmV4cGVjdGVkX2NhbGxiYWNrcykKIAogICAgIGRlZiBfcnVuX2VuZ2lu
ZShzZWxmLCBkZWxlZ2F0ZSwgZW5naW5lPU5vbmUsIHRlcm1pbmF0aW9uX21lc3NhZ2U9Tm9uZSk6
CkBAIC0xNDYsNyArMTQwLDcgQEAgY2xhc3MgUXVldWVFbmdpbmVUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKQogICAgICAgICAgICAgZW5naW5lID0gUXVldWVFbmdpbmUoInRlc3QtcXVldWUiLCBkZWxl
Z2F0ZSwgdGhyZWFkaW5nLkV2ZW50KCkpCiAgICAgICAgIGlmIG5vdCB0ZXJtaW5hdGlvbl9tZXNz
YWdlOgogICAgICAgICAgICAgdGVybWluYXRpb25fbWVzc2FnZSA9ICJEZWxlZ2F0ZSB0ZXJtaW5h
dGVkIHF1ZXVlLiIKLSAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICJcbiVzXG4iICUgdGVybWluYXRp
b25fbWVzc2FnZQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiVzXG4iICUgdGVybWluYXRpb25f
bWVzc2FnZQogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgZW5n
aW5lLnJ1biwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAgZGVmIF90ZXN0X3Rl
cm1pbmF0aW5nX3F1ZXVlKHNlbGYsIGV4Y2VwdGlvbiwgdGVybWluYXRpb25fbWVzc2FnZSk6Cklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvbmV3Y29tbWl0Ym90LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9uZXdj
b21taXRib3QucHkJKHJldmlzaW9uIDIwMjk1MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9uZXdjb21taXRib3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTc0LDkgKzc0
LDYgQEAgY2xhc3MgTmV3Q29tbWl0Qm90KEFic3RyYWN0UXVldWUsIFN0ZXBTZQogICAgICAgICBz
ZWxmLl9pcmNfYm90ID0gSVJDQm90KHNlbGYubmFtZSwgc2VsZi5fdG9vbCwgQWdlbnQoc2VsZi5f
dG9vbCwgc2VsZiksIHNlbGYuX2NvbW1hbmRzKQogICAgICAgICBzZWxmLl90b29sLmVuc3VyZV9p
cmNfY29ubmVjdGVkKHNlbGYuX2lyY19ib3QuaXJjX2RlbGVnYXRlKCkpCiAKLSAgICBkZWYgd29y
a19pdGVtX2xvZ19wYXRoKHNlbGYsIGZhaWx1cmVfbWFwKToKLSAgICAgICAgcmV0dXJuIE5vbmUK
LQogICAgIGRlZiBuZXh0X3dvcmtfaXRlbShzZWxmKToKICAgICAgICAgc2VsZi5faXJjX2JvdC5w
cm9jZXNzX3BlbmRpbmdfbWVzc2FnZXMoKQogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXplci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXplci5weQkocmV2aXNpb24gMjAyOTUwKQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3BlcmZhbGl6ZXIucHkJKHdv
cmtpbmcgY29weSkKQEAgLTE4OSw5ICsxODksNiBAQCBjbGFzcyBQZXJmYWxpemVyKEFic3RyYWN0
UXVldWUsIFN0ZXBTZXF1CiAgICAgICAgIHNlbGYuX2lyY19ib3QgPSBJUkNCb3QoInBlcmZhbGl6
ZXIiLCBzZWxmLl90b29sLCBzZWxmLl9zaGVyaWZmLCBzZWxmLl9jb21tYW5kcykKICAgICAgICAg
c2VsZi5fdG9vbC5lbnN1cmVfaXJjX2Nvbm5lY3RlZChzZWxmLl9pcmNfYm90LmlyY19kZWxlZ2F0
ZSgpKQogCi0gICAgZGVmIHdvcmtfaXRlbV9sb2dfcGF0aChzZWxmLCBmYWlsdXJlX21hcCk6Ci0g
ICAgICAgIHJldHVybiBOb25lCi0KICAgICBkZWYgX2lzX29sZF9mYWlsdXJlKHNlbGYsIHJldmlz
aW9uKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wuc3RhdHVzX3NlcnZlci5zdm5fcmV2aXNp
b24ocmV2aXNpb24pCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9xdWV1ZXMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3F1ZXVlcy5weQkocmV2aXNpb24gMjAyOTUwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQkod29ya2luZyBjb3B5KQpAQCAtMTE2LDEwICsx
MTYsOCBAQCBjbGFzcyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5lCiAgICAgZGVm
IHF1ZXVlX2xvZ19wYXRoKHNlbGYpOgogICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHNlbGYu
X2xvZ19kaXJlY3RvcnkoKSwgIiVzLmxvZyIgJSBzZWxmLm5hbWUpCiAKLSAgICBkZWYgd29ya19p
dGVtX2xvZ19wYXRoKHNlbGYsIHdvcmtfaXRlbSk6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgotCiAgICAgZGVmIGJlZ2luX3dv
cmtfcXVldWUoc2VsZik6CisgICAgICAgIFF1ZXVlRW5naW5lLmNvbmZpZ3VyZV9sb2dnZXIoX2xv
Zywgc2VsZi5xdWV1ZV9sb2dfcGF0aCgpKQogICAgICAgICBfbG9nLmluZm8oIkNBVVRJT046ICVz
IHdpbGwgZGlzY2FyZCBhbGwgbG9jYWwgY2hhbmdlcyBpbiBcIiVzXCIiICUgKHNlbGYubmFtZSwg
c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290KSkKICAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy5jb25maXJtOgogICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLl90b29sLnVzZXIucHJvbXB0
KCJBcmUgeW91IHN1cmU/ICBUeXBlIFwieWVzXCIgdG8gY29udGludWU6ICIpCkBAIC0xOTksOSAr
MTk3LDYgQEAgY2xhc3MgRmVlZGVyUXVldWUoQWJzdHJhY3RRdWV1ZSk6CiAgICAgICAgIHRpbWUu
c2xlZXAoc2VsZi5fc2xlZXBfZHVyYXRpb24pCiAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICBk
ZWYgd29ya19pdGVtX2xvZ19wYXRoKHNlbGYsIHdvcmtfaXRlbSk6Ci0gICAgICAgIHJldHVybiBO
b25lCi0KICAgICBkZWYgaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3Ioc2VsZiwgd29ya19pdGVtLCBt
ZXNzYWdlKToKICAgICAgICAgX2xvZy5lcnJvcihtZXNzYWdlKQogCkBAIC0yNDcsOSArMjQyLDYg
QEAgY2xhc3MgQWJzdHJhY3RQYXRjaFF1ZXVlKEFic3RyYWN0UXVldWUpOgogICAgIGRlZiBfdW5s
b2NrX3BhdGNoKHNlbGYsIHBhdGNoKToKICAgICAgICAgc2VsZi5fdG9vbC5zdGF0dXNfc2VydmVy
LnJlbGVhc2VfbG9jayhzZWxmLm5hbWUsIHBhdGNoKQogCi0gICAgZGVmIHdvcmtfaXRlbV9sb2df
cGF0aChzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi5fbG9n
X2RpcmVjdG9yeSgpLCAiJXMubG9nIiAlIHBhdGNoLmJ1Z19pZCgpKQotCiAgICAgZGVmIGJ1aWxk
X3N0eWxlKHNlbGYpOgogICAgICAgICByZXR1cm4gInJlbGVhc2UiCiAKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXN0ZXN0LnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXN0ZXN0LnB5CShyZXZp
c2lvbiAyMDI5NTApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
dWVzdGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtOTYsNyArOTYsNiBAQCBjbGFzcyBRdWV1ZXNU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcXVldWUuZXhlY3V0ZShvcHRpb25zLCBh
cmdzLCB0b29sLCBlbmdpbmU9TW9ja1F1ZXVlRW5naW5lKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0
X291dHB1dHMocXVldWUucXVldWVfbG9nX3BhdGgsICJxdWV1ZV9sb2dfcGF0aCIsIFtdLCBleHBl
Y3RlZF9zdGRvdXQsIGV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZXhjZXB0aW9ucywgZXhwZWN0
ZWRfbG9ncykKLSAgICAgICAgc2VsZi5hc3NlcnRfb3V0cHV0cyhxdWV1ZS53b3JrX2l0ZW1fbG9n
X3BhdGgsICJ3b3JrX2l0ZW1fbG9nX3BhdGgiLCBbd29ya19pdGVtXSwgZXhwZWN0ZWRfc3Rkb3V0
LCBleHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVkX2V4Y2VwdGlvbnMsIGV4cGVjdGVkX2xvZ3MpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0X291dHB1dHMocXVldWUuYmVnaW5fd29ya19xdWV1ZSwgImJlZ2lu
X3dvcmtfcXVldWUiLCBbXSwgZXhwZWN0ZWRfc3Rkb3V0LCBleHBlY3RlZF9zdGRlcnIsIGV4cGVj
dGVkX2V4Y2VwdGlvbnMsIGV4cGVjdGVkX2xvZ3MpCiAgICAgICAgIHNlbGYuYXNzZXJ0X291dHB1
dHMocXVldWUuc2hvdWxkX2NvbnRpbnVlX3dvcmtfcXVldWUsICJzaG91bGRfY29udGludWVfd29y
a19xdWV1ZSIsIFtdLCBleHBlY3RlZF9zdGRvdXQsIGV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRf
ZXhjZXB0aW9ucywgZXhwZWN0ZWRfbG9ncykKICAgICAgICAgc2VsZi5hc3NlcnRfb3V0cHV0cyhx
dWV1ZS5uZXh0X3dvcmtfaXRlbSwgIm5leHRfd29ya19pdGVtIiwgW10sIGV4cGVjdGVkX3N0ZG91
dCwgZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9leGNlcHRpb25zLCBleHBlY3RlZF9sb2dzKQpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZib3QucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJp
ZmZib3QucHkJKHJldmlzaW9uIDIwMjk1MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9zaGVyaWZmYm90LnB5CSh3b3JraW5nIGNvcHkpCkBAIC01MSw5ICs1MSw2IEBA
IGNsYXNzIFNoZXJpZmZCb3QoQWJzdHJhY3RRdWV1ZSwgU3RlcFNlcXUKICAgICAgICAgc2VsZi5f
aXJjX2JvdCA9IElSQ0JvdChzZWxmLm5hbWUsIHNlbGYuX3Rvb2wsIHNlbGYuX3NoZXJpZmYsIGly
Y19jb21tYW5kcykKICAgICAgICAgc2VsZi5fdG9vbC5lbnN1cmVfaXJjX2Nvbm5lY3RlZChzZWxm
Ll9pcmNfYm90LmlyY19kZWxlZ2F0ZSgpKQogCi0gICAgZGVmIHdvcmtfaXRlbV9sb2dfcGF0aChz
ZWxmLCBmYWlsdXJlX21hcCk6Ci0gICAgICAgIHJldHVybiBOb25lCi0KICAgICBkZWYgX2lzX29s
ZF9mYWlsdXJlKHNlbGYsIHJldmlzaW9uKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wuc3Rh
dHVzX3NlcnZlci5zdm5fcmV2aXNpb24ocmV2aXNpb24pCiAK
</data>
<flag name="review"
          id="306910"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="306911"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283868</attachid>
            <date>2016-07-17 10:57:48 -0700</date>
            <delta_ts>2016-07-18 16:55:41 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>ews-log-v12</filename>
            <type>text/plain</type>
            <size>16727</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwMzMyOSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ0IEBACisyMDE2LTA3LTE2ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBFV1MgY29uc29sZSBsb2dzIGRvZXNuJ3QgZ28gdG8gbG9nIGZpbGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTUzOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjQ0NjQ1NzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
bG9ndXRpbHMucHk6CisgICAgICAgIChjb25maWd1cmVfbG9nZ2VyX3RvX2xvZ190b19maWxlKTog
QWRkZWQgbWV0aG9kIHRvIGNvbmZpZ3VyZSB0aGUgbG9nZ2VyIHRvIGxvZyB0byBmaWxlLgorICAg
ICAgICAoRmlsZVN5c3RlbUhhbmRsZXIpOiBBZGRlZCBjbGFzcyB3aGljaCB1c2VzIGxvZ2dpbmcu
RmlsZUhhbmRsZXIgYXMgYmFzZSBjbGFzcyBhbmQgc3VwcG9ydHMgd3JpdGluZworICAgICAgICB0
byBmaWxlc3lzdGVtLiBJdCBhbHNvIHN1cHBvcnRzIHBhc3NpbmcgTW9ja0ZpbGVzeXN0ZW0uCisg
ICAgICAgIChGaWxlU3lzdGVtSGFuZGxlci5fX2luaXRfXyk6IEluaXRpYWxpemUgdGhlIGNsYXNz
IGFuZCBjYWxscyBiYXNlIGNsYXNzIF9faW5pdF9fLgorICAgICAgICAoRmlsZVN5c3RlbUhhbmRs
ZXIuX29wZW4pOiBPdmVycmlkZXMgdGhlIGJhc2UgY2xhc3MgX29wZW4gbWV0aG9kIHRvIHVzZSBm
aWxlc3lzdGVtIG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQWJzdHJhY3RFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ190ZXN0c19tZXNzYWdlKTogQWRkZWQgTW9j
a0hvc3QoKSBwYXJhbWV0ZXIuCisgICAgICAgIChfdGVzdF9ld3MpOiBTYW1lLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHk6CisgICAgICAgIChBYnN0
cmFjdFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUpOiBDb25maWd1cmUgdGhlIGxvZ2dlciB0byBsb2cg
dG8gZmlsZS4KKyAgICAgICAgKEFic3RyYWN0UXVldWUuX2xvZ19kaXJlY3RvcnkpOiBVc2luZyBm
aWxlc3lzdGVtIG9iamVjdCBpbnN0ZWFkIG9mIG9zLgorICAgICAgICAoQWJzdHJhY3RRdWV1ZS5x
dWV1ZV9sb2dfcGF0aCk6IFNhbWUuCisgICAgICAgIChBYnN0cmFjdFF1ZXVlLl9faW5pdF9fKTog
UGFzc2VkIGhvc3QgcGFyYW1ldGVyLgorICAgICAgICAoUGF0Y2hQcm9jZXNzaW5nUXVldWUuX19p
bml0X18pOiBTYW1lLgorICAgICAgICAoQ29tbWl0UXVldWUuX19pbml0X18pOiBTYW1lLgorICAg
ICAgICAoQWJzdHJhY3RSZXZpZXdRdWV1ZS5fX2luaXRfXyk6IFNhbWUuCisgICAgICAgIChTdHls
ZVF1ZXVlLl9faW5pdF9fKTogU2FtZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdENvbW1pdFF1ZXVlKTog
UGFzc2VkIE1vY2tIb3N0KCkgYXMgaG9zdC4KKyAgICAgICAgKFRlc3RDb21taXRRdWV1ZS5fX2lu
aXRfXyk6IFNhbWUuCisgICAgICAgIChUZXN0UXVldWUuX19pbml0X18pOiBTYW1lLgorICAgICAg
ICAoVGVzdFJldmlld1F1ZXVlLl9faW5pdF9fKTogU2FtZS4KKyAgICAgICAgKFRlc3RGZWVkZXJR
dWV1ZS5fX2luaXRfXyk6IFNhbWUuCisgICAgICAgIChBYnN0cmFjdFBhdGNoUXVldWVUZXN0LnRl
c3RfbmV4dF9wYXRjaCk6IFNhbWUuCisgICAgICAgIChQYXRjaFByb2Nlc3NpbmdRdWV1ZVRlc3Qu
dGVzdF91cGxvYWRfcmVzdWx0c19hcmNoaXZlX2Zvcl9wYXRjaCk6IFNhbWUuCisgICAgICAgICh0
ZXN0X2NvbW1pdF9xdWV1ZV9mYWlsdXJlKTogU2FtZS4KKyAgICAgICAgKE1vY2tDb21taXRRdWV1
ZVRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKTogU2FtZS4KKyAgICAgICAgKHRlc3Rf
cm9sbG91dF9sYW5kcyk6IFNhbWUuCisgICAgICAgICh0ZXN0X25vbl92YWxpZF9wYXRjaCk6IFNh
bWUuCisgICAgICAgICh0ZXN0X2F1dG9fcmV0cnkpOiBTYW1lLgorICAgICAgICAodGVzdF9zdHls
ZV9xdWV1ZV93aXRoX3dhdGNoX2xpc3RfZXhjZXB0aW9uKTogU2FtZS4KKwogMjAxNi0wNy0xNiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDMzMTguCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vbG9ndXRpbHMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL2xvZ3V0aWxzLnB5CShyZXZpc2lvbiAyMDMzMjkpCisrKyBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHMucHkJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDYgKzMxLDggQEAgaW1wb3J0IHN5cwogCiBpbXBvcnQgd2Via2l0cHkKIAorZnJvbSBsb2dn
aW5nIGltcG9ydCBGaWxlSGFuZGxlcgorCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKIApAQCAtMjA5LDMgKzIxMSwyNyBAQCBkZWYgY29uZmlndXJlX2xvZ2dpbmcobG9nZ2lu
Z19sZXZlbD1Ob25lCiAgICAgX2xvZy5kZWJ1ZygiRGVidWcgbG9nZ2luZyBlbmFibGVkLiIpCiAK
ICAgICByZXR1cm4gaGFuZGxlcnMKKworCitkZWYgY29uZmlndXJlX2xvZ2dlcl90b19sb2dfdG9f
ZmlsZShsb2dnZXIsIGxvZ19wYXRoLCBmaWxlc3lzdGVtKToKKyAgICAjIGNyZWF0ZSBsb2cgZGly
ZWN0b3J5IGlmIHJlcXVpcmVkCisgICAgbG9nX2RpcmVjdG9yeSA9IGZpbGVzeXN0ZW0uZGlybmFt
ZShsb2dfcGF0aCkKKyAgICBpZiBsb2dfZGlyZWN0b3J5IGFuZCBub3QgZmlsZXN5c3RlbS5leGlz
dHMobG9nX2RpcmVjdG9yeSk6CisgICAgICAgIGZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3Rv
cnkobG9nX2RpcmVjdG9yeSkKKworICAgICMgY29uZmlndXJlIHRoZSBsb2dnZXIKKyAgICBoYW5k
bGVyID0gRmlsZVN5c3RlbUhhbmRsZXIobG9nX3BhdGgsIGZpbGVzeXN0ZW0pCisgICAgZm9ybWF0
dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoJyUoYXNjdGltZSlzIC0gJShtZXNzYWdlKXMnKQorICAg
IGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKKworICAgIGxvZ2dlci5hZGRIYW5kbGVy
KGhhbmRsZXIpCisKKworY2xhc3MgRmlsZVN5c3RlbUhhbmRsZXIoRmlsZUhhbmRsZXIpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgZmlsZXN5c3RlbSk6CisgICAgICAgIHNlbGYu
ZmlsZW5hbWUgPSBmaWxlbmFtZQorICAgICAgICBzZWxmLmZpbGVzeXN0ZW0gPSBmaWxlc3lzdGVt
CisgICAgICAgIEZpbGVIYW5kbGVyLl9faW5pdF9fKHNlbGYsIGZpbGVuYW1lKQorCisgICAgZGVm
IF9vcGVuKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5maWxlc3lzdGVtLm9wZW5fdGV4dF9m
aWxlX2Zvcl93cml0aW5nKHNlbGYuZmlsZW5hbWUpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdz
eXN0ZW1fdW5pdHRlc3QucHkJKHJldmlzaW9uIDIwMzMyOSkKKysrIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1v
Y2sgaW1wb3J0IE1vY2sKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKK2Zy
b20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0
cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRD
YXB0dXJlCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVz
dWx0cwpAQCAtNDksNiArNTAsNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRl
c3QoUXVlCiAKICAgICAgICAgZXdzID0gVGVzdEVXUygpCiAgICAgICAgIGV3cy5iaW5kX3RvX3Rv
b2woTW9ja1Rvb2woKSkKKyAgICAgICAgZXdzLmhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIGV3
cy5fb3B0aW9ucyA9IE1vY2tPcHRpb25zKHBvcnQ9Tm9uZSwgY29uZmlybT1GYWxzZSkKICAgICAg
ICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGV3cy5iZWdpbl93b3JrX3F1
ZXVlLCBleHBlY3RlZF9sb2dzPXNlbGYuX2RlZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9sb2dzKGV3
cy5uYW1lKSkKICAgICAgICAgdGFzayA9IE1vY2soKQpAQCAtODksNiArOTEsNyBAQCBNT0NLOiBy
ZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKIAogICAgIGRlZiBfdGVzdF9ld3Moc2Vs
ZiwgZXdzKToKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQorICAgICAgICBl
d3MuaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgb3B0aW9ucyA9IE1vY2soKQogICAgICAgICBv
cHRpb25zLnBvcnQgPSBOb25lCiAgICAgICAgIG9wdGlvbnMucnVuX3Rlc3RzID0gZXdzLnJ1bl90
ZXN0cwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
dWVzLnB5CShyZXZpc2lvbiAyMDMzMjkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSwxMCBAQCBmcm9t
IFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcu
Y29tbWl0dGVydmFsaWRhdG9yIGltcG9ydCBDb21taXR0ZXJWYWxpZGF0b3IKIGZyb20gd2Via2l0
cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBvcnQKK2Zyb20gd2Via2l0
cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWd6
aWxsYSBpbXBvcnQgQXR0YWNobWVudAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnN0YXR1c3Nl
cnZlciBpbXBvcnQgU3RhdHVzU2VydmVyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1w
b3J0IGxvZ3V0aWxzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5ib3RpbmZvIGltcG9ydCBCb3RJ
bmZvCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmNvbW1pdHF1ZXVldGFzayBpbXBvcnQgQ29tbWl0
UXVldWVUYXNrLCBDb21taXRRdWV1ZVRhc2tEZWxlZ2F0ZQpAQCAtNjYsNyArNjgsNyBAQCBjbGFz
cyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5lCiAgICAgX2ZhaWxfc3RhdHVzID0g
IkZhaWwiCiAgICAgX2Vycm9yX3N0YXR1cyA9ICJFcnJvciIKIAotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBvcHRpb25zPU5vbmUpOiAgIyBEZWZhdWx0IHZhbHVlcyBzaG91bGQgbmV2ZXIgYmUgY29s
bGVjdGlvbnMgKGxpa2UgW10pIGFzIGRlZmF1bHQgdmFsdWVzIGFyZSBzaGFyZWQgYmV0d2VlbiBp
bnZvY2F0aW9ucworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zPU5vbmUsIGhvc3Q9SG9z
dCgpKTogICMgRGVmYXVsdCB2YWx1ZXMgc2hvdWxkIG5ldmVyIGJlIGNvbGxlY3Rpb25zIChsaWtl
IFtdKSBhcyBkZWZhdWx0IHZhbHVlcyBhcmUgc2hhcmVkIGJldHdlZW4gaW52b2NhdGlvbnMKICAg
ICAgICAgb3B0aW9uc19saXN0ID0gKG9wdGlvbnMgb3IgW10pICsgWwogICAgICAgICAgICAgbWFr
ZV9vcHRpb24oIi0tbm8tY29uZmlybSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJjb25m
aXJtIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3QgYXNrIHRoZSB1c2VyIGZvciBjb25maXJt
YXRpb24gYmVmb3JlIHJ1bm5pbmcgdGhlIHF1ZXVlLiAgRGFuZ2Vyb3VzISIpLAogICAgICAgICAg
ICAgbWFrZV9vcHRpb24oIi0tZXhpdC1hZnRlci1pdGVyYXRpb24iLCBhY3Rpb249InN0b3JlIiwg
dHlwZT0iaW50IiwgZGVzdD0iaXRlcmF0aW9ucyIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iU3RvcCBy
dW5uaW5nIHRoZSBxdWV1ZSBhZnRlciBpdGVyYXRpbmcgdGhpcyBudW1iZXIgb2YgdGltZXMuIiks
CkBAIC03Niw2ICs3OCw3IEBAIGNsYXNzIEFic3RyYWN0UXVldWUoQ29tbWFuZCwgUXVldWVFbmdp
bmUKICAgICAgICAgc2VsZi5faXRlcmF0aW9uX2NvdW50ID0gMAogICAgICAgICBpZiBub3QgaGFz
YXR0cihzZWxmLCAnYXJjaGl0ZWN0dXJlJyk6CiAgICAgICAgICAgICBzZWxmLmFyY2hpdGVjdHVy
ZSA9IE5vbmUKKyAgICAgICAgc2VsZi5ob3N0ID0gaG9zdAogCiAgICAgZGVmIF9jY193YXRjaGVy
cyhzZWxmLCBidWdfaWQpOgogICAgICAgICB0cnk6CkBAIC0xMDksMTcgKzExMiwxOCBAQCBjbGFz
cyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5lCiAgICAgICAgIHJldHVybiBjb21t
YW5kX291dHB1dAogCiAgICAgZGVmIF9sb2dfZGlyZWN0b3J5KHNlbGYpOgotICAgICAgICByZXR1
cm4gb3MucGF0aC5qb2luKCIuLiIsICIlcy1sb2dzIiAlIHNlbGYubmFtZSkKKyAgICAgICAgcmV0
dXJuIHNlbGYuaG9zdC5maWxlc3lzdGVtLmpvaW4oIi4uIiwgIiVzLWxvZ3MiICUgc2VsZi5uYW1l
KQogCiAgICAgIyBRdWV1ZUVuZ2luZURlbGVnYXRlIG1ldGhvZHMKIAogICAgIGRlZiBxdWV1ZV9s
b2dfcGF0aChzZWxmKToKLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLl9sb2dfZGly
ZWN0b3J5KCksICIlcy5sb2ciICUgc2VsZi5uYW1lKQorICAgICAgICByZXR1cm4gc2VsZi5ob3N0
LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9sb2dfZGlyZWN0b3J5KCksICIlcy5sb2ciICUgc2VsZi5u
YW1lKQogCiAgICAgZGVmIHdvcmtfaXRlbV9sb2dfcGF0aChzZWxmLCB3b3JrX2l0ZW0pOgogICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVu
dCIKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgorICAgICAgICBsb2d1dGlscy5j
b25maWd1cmVfbG9nZ2VyX3RvX2xvZ190b19maWxlKF9sb2csIHNlbGYucXVldWVfbG9nX3BhdGgo
KSwgc2VsZi5ob3N0LmZpbGVzeXN0ZW0pCiAgICAgICAgIF9sb2cuaW5mbygiQ0FVVElPTjogJXMg
d2lsbCBkaXNjYXJkIGFsbCBsb2NhbCBjaGFuZ2VzIGluIFwiJXNcIiIgJSAoc2VsZi5uYW1lLCBz
ZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25z
LmNvbmZpcm06CiAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuX3Rvb2wudXNlci5wcm9tcHQo
IkFyZSB5b3Ugc3VyZT8gIFR5cGUgXCJ5ZXNcIiB0byBjb250aW51ZTogIikKQEAgLTI1OSw5ICsy
NjMsMTAgQEAgY2xhc3MgUGF0Y2hQcm9jZXNzaW5nUXVldWUoQWJzdHJhY3RQYXRjaAogICAgICMg
U3ViY2xhc3NlcyBtdXN0IG92ZXJyaWRlLgogICAgIHBvcnRfbmFtZSA9IE5vbmUKIAotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBv
cHRpb25zPU5vbmUsIGhvc3Q9SG9zdCgpKToKICAgICAgICAgc2VsZi5fcG9ydCA9IE5vbmUgICMg
V2UgY2FuJ3QgaW5zdGFudGlhdGUgcG9ydCBoZXJlIGJlY2F1c2UgdG9vbCBpc24ndCBhdmFpYWxi
bGUuCi0gICAgICAgIEFic3RyYWN0UGF0Y2hRdWV1ZS5fX2luaXRfXyhzZWxmLCBvcHRpb25zKQor
ICAgICAgICBzZWxmLmhvc3QgPSBob3N0CisgICAgICAgIEFic3RyYWN0UGF0Y2hRdWV1ZS5fX2lu
aXRfXyhzZWxmLCBvcHRpb25zLCBob3N0PWhvc3QpCiAKICAgICAjIEZJWE1FOiBUaGlzIGlzIGEg
aGFjayB0byBtYXAgYmV0d2VlbiB0aGUgb2xkIHBvcnQgbmFtZXMgYW5kIHRoZSBuZXcgcG9ydCBu
YW1lcy4KICAgICBkZWYgX25ld19wb3J0X25hbWVfZnJvbV9vbGQoc2VsZiwgcG9ydF9uYW1lLCBw
bGF0Zm9ybSk6CkBAIC0zMTMsOSArMzE4LDEwIEBAIGNsYXNzIFBhdGNoUHJvY2Vzc2luZ1F1ZXVl
KEFic3RyYWN0UGF0Y2gKIAogCiBjbGFzcyBDb21taXRRdWV1ZShQYXRjaFByb2Nlc3NpbmdRdWV1
ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyLCBDb21taXRRdWV1ZVRhc2tEZWxlZ2F0ZSk6Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbW1pdF9xdWV1ZV90YXNrX2NsYXNzPUNvbW1pdFF1ZXVl
VGFzayk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbW1pdF9xdWV1ZV90YXNrX2NsYXNzPUNv
bW1pdFF1ZXVlVGFzaywgaG9zdD1Ib3N0KCkpOgorICAgICAgICBzZWxmLmhvc3QgPSBob3N0CiAg
ICAgICAgIHNlbGYuX2NvbW1pdF9xdWV1ZV90YXNrX2NsYXNzID0gY29tbWl0X3F1ZXVlX3Rhc2tf
Y2xhc3MKLSAgICAgICAgUGF0Y2hQcm9jZXNzaW5nUXVldWUuX19pbml0X18oc2VsZikKKyAgICAg
ICAgUGF0Y2hQcm9jZXNzaW5nUXVldWUuX19pbml0X18oc2VsZiwgaG9zdD1ob3N0KQogCiAgICAg
bmFtZSA9ICJjb21taXQtcXVldWUiCiAgICAgcG9ydF9uYW1lID0gIm1hYyIKQEAgLTQzMCw4ICs0
MzYsOSBAQCBjbGFzcyBDb21taXRRdWV1ZShQYXRjaFByb2Nlc3NpbmdRdWV1ZSwgCiAKIGNsYXNz
IEFic3RyYWN0UmV2aWV3UXVldWUoUGF0Y2hQcm9jZXNzaW5nUXVldWUsIFN0ZXBTZXF1ZW5jZUVy
cm9ySGFuZGxlcik6CiAgICAgIiIiVGhpcyBpcyB0aGUgYmFzZS1jbGFzcyBmb3IgdGhlIEVXUyBx
dWV1ZXMgYW5kIHRoZSBzdHlsZS1xdWV1ZS4iIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0
aW9ucz1Ob25lKToKLSAgICAgICAgUGF0Y2hQcm9jZXNzaW5nUXVldWUuX19pbml0X18oc2VsZiwg
b3B0aW9ucykKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucz1Ob25lLCBob3N0PUhvc3Qo
KSk6CisgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKKyAgICAgICAgUGF0Y2hQcm9jZXNzaW5nUXVl
dWUuX19pbml0X18oc2VsZiwgb3B0aW9ucywgaG9zdD1ob3N0KQogCiAgICAgZGVmIHJldmlld19w
YXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1
YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQpAQCAtNDYzLDggKzQ3MCw5IEBAIGNsYXNzIEFic3Ry
YWN0UmV2aWV3UXVldWUoUGF0Y2hQcm9jZXNzaW4KIGNsYXNzIFN0eWxlUXVldWUoQWJzdHJhY3RS
ZXZpZXdRdWV1ZSwgU3R5bGVRdWV1ZVRhc2tEZWxlZ2F0ZSk6CiAgICAgbmFtZSA9ICJzdHlsZS1x
dWV1ZSIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgQWJzdHJhY3RSZXZpZXdR
dWV1ZS5fX2luaXRfXyhzZWxmKQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0PUhvc3QoKSk6
CisgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKKyAgICAgICAgQWJzdHJhY3RSZXZpZXdRdWV1ZS5f
X2luaXRfXyhzZWxmLCBob3N0PWhvc3QpCiAKICAgICBkZWYgcmV2aWV3X3BhdGNoKHNlbGYsIHBh
dGNoKToKICAgICAgICAgdGFzayA9IFN0eWxlUXVldWVUYXNrKHNlbGYsIHBhdGNoKQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVz
X3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyMDMzMjkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2
ICszMSw3IEBAIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291
dC5zY20gaW1wb3J0IENoZWNrb3V0TmVlZHNVcGRhdGUKIGZyb20gd2Via2l0cHkuY29tbW9uLmNo
ZWNrb3V0LnNjbS5zY21fbW9jayBpbXBvcnQgTW9ja1NDTQorZnJvbSB3ZWJraXRweS5jb21tb24u
aG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91
dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRweS5jb21t
b24ubmV0LmJ1Z3ppbGxhIGltcG9ydCBBdHRhY2htZW50CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQpAQCAtNDcsNyArNDgsNyBA
QCBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tUCiAKIGNsYXNzIFRlc3RD
b21taXRRdWV1ZShDb21taXRRdWV1ZSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvb2w9Tm9u
ZSk6Ci0gICAgICAgIENvbW1pdFF1ZXVlLl9faW5pdF9fKHNlbGYpCisgICAgICAgIENvbW1pdFF1
ZXVlLl9faW5pdF9fKHNlbGYsIGhvc3Q9TW9ja0hvc3QoKSkKICAgICAgICAgaWYgdG9vbDoKICAg
ICAgICAgICAgIHNlbGYuYmluZF90b190b29sKHRvb2wpCiAgICAgICAgIHNlbGYuX29wdGlvbnMg
PSBNb2NrT3B0aW9ucyhjb25maXJtPUZhbHNlLCBwYXJlbnRfY29tbWFuZD0iY29tbWl0LXF1ZXVl
IiwgcG9ydD1Ob25lKQpAQCAtNjIsMTQgKzYzLDIzIEBAIGNsYXNzIFRlc3RDb21taXRRdWV1ZShD
b21taXRRdWV1ZSk6CiBjbGFzcyBUZXN0UXVldWUoQWJzdHJhY3RQYXRjaFF1ZXVlKToKICAgICBu
YW1lID0gInRlc3QtcXVldWUiCiAKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIEFi
c3RyYWN0UGF0Y2hRdWV1ZS5fX2luaXRfXyhzZWxmLCBob3N0PU1vY2tIb3N0KCkpCisKIAogY2xh
c3MgVGVzdFJldmlld1F1ZXVlKEFic3RyYWN0UmV2aWV3UXVldWUpOgogICAgIG5hbWUgPSAidGVz
dC1yZXZpZXctcXVldWUiCiAKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIEFic3Ry
YWN0UmV2aWV3UXVldWUuX19pbml0X18oc2VsZiwgaG9zdD1Nb2NrSG9zdCgpKQorCiAKIGNsYXNz
IFRlc3RGZWVkZXJRdWV1ZShGZWVkZXJRdWV1ZSk6CiAgICAgX3NsZWVwX2R1cmF0aW9uID0gMAog
CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBGZWVkZXJRdWV1ZS5fX2luaXRfXyhz
ZWxmLCBob3N0PU1vY2tIb3N0KCkpCisKIAogY2xhc3MgQWJzdHJhY3RRdWV1ZVRlc3QoQ29tbWFu
ZHNUZXN0KToKICAgICBkZWYgdGVzdF9sb2dfZGlyZWN0b3J5KHNlbGYpOgpAQCAtMTUzLDcgKzE2
Myw3IEBAIE1PQ0s6IHN1Ym1pdF90b19ld3M6IDEwMDAyCiAKIGNsYXNzIEFic3RyYWN0UGF0Y2hR
dWV1ZVRlc3QoQ29tbWFuZHNUZXN0KToKICAgICBkZWYgdGVzdF9uZXh0X3BhdGNoKHNlbGYpOgot
ICAgICAgICBxdWV1ZSA9IEFic3RyYWN0UGF0Y2hRdWV1ZSgpCisgICAgICAgIHF1ZXVlID0gQWJz
dHJhY3RQYXRjaFF1ZXVlKGhvc3Q9TW9ja0hvc3QoKSkKICAgICAgICAgdG9vbCA9IE1vY2tUb29s
KCkKICAgICAgICAgcXVldWUuYmluZF90b190b29sKHRvb2wpCiAgICAgICAgIHF1ZXVlLl9vcHRp
b25zID0gTW9jaygpCkBAIC0xNzEsNyArMTgxLDcgQEAgY2xhc3MgQWJzdHJhY3RQYXRjaFF1ZXVl
VGVzdChDb21tYW5kc1RlcwogCiBjbGFzcyBQYXRjaFByb2Nlc3NpbmdRdWV1ZVRlc3QoQ29tbWFu
ZHNUZXN0KToKICAgICBkZWYgdGVzdF91cGxvYWRfcmVzdWx0c19hcmNoaXZlX2Zvcl9wYXRjaChz
ZWxmKToKLSAgICAgICAgcXVldWUgPSBQYXRjaFByb2Nlc3NpbmdRdWV1ZSgpCisgICAgICAgIHF1
ZXVlID0gUGF0Y2hQcm9jZXNzaW5nUXVldWUoaG9zdD1Nb2NrSG9zdCgpKQogICAgICAgICBxdWV1
ZS5uYW1lID0gIm1vY2stcXVldWUiCiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCiAgICAgICAg
IHF1ZXVlLmJpbmRfdG9fdG9vbCh0b29sKQpAQCAtMjYwLDcgKzI3MCw3IEBAIE1PQ0s6IHJlbGVh
c2Vfd29ya19pdGVtOiBjb21taXQtcXVldWUgMTAKICAgICAgICAgICAgICJoYW5kbGVfc2NyaXB0
X2Vycm9yIjogIlNjcmlwdEVycm9yIGVycm9yIG1lc3NhZ2VcblxuTU9DSyBvdXRwdXRcbiIsCiAg
ICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTU9DSyBzZXR0aW5nIGZsYWcg
J2NvbW1pdC1xdWV1ZScgdG8gJy0nIG9uIGF0dGFjaG1lbnQgJzEwMDAwJyB3aXRoIGNvbW1lbnQg
J1JlamVjdGluZyBhdHRhY2htZW50IDEwMDAwIGZyb20gY29tbWl0LXF1ZXVlLlxuXG5Nb2NrIGVy
cm9yIG1lc3NhZ2UnXG4iLAogICAgICAgICB9Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291
dHB1dHMoQ29tbWl0UXVldWUoKSwgdG9vbD10b29sLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xv
Z3MpCisgICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVldWUoaG9zdD1N
b2NrSG9zdCgpKSwgdG9vbD10b29sLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAg
ICBkZWYgdGVzdF9jb21taXRfcXVldWVfZmFpbHVyZShzZWxmKToKICAgICAgICAgZXhwZWN0ZWRf
bG9ncyA9IHsKQEAgLTI3Niw3ICsyODYsNyBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogY29t
bWl0LXF1ZXVlIDEwCiAgICAgICAgICAgICAiaGFuZGxlX3NjcmlwdF9lcnJvciI6ICJTY3JpcHRF
cnJvciBlcnJvciBtZXNzYWdlXG5cbk1PQ0sgb3V0cHV0XG4iLAogICAgICAgICAgICAgImhhbmRs
ZV91bmV4cGVjdGVkX2Vycm9yIjogIk1PQ0sgc2V0dGluZyBmbGFnICdjb21taXQtcXVldWUnIHRv
ICctJyBvbiBhdHRhY2htZW50ICcxMDAwMCcgd2l0aCBjb21tZW50ICdSZWplY3RpbmcgYXR0YWNo
bWVudCAxMDAwMCBmcm9tIGNvbW1pdC1xdWV1ZS5cblxuTW9jayBlcnJvciBtZXNzYWdlJ1xuIiwK
ICAgICAgICAgfQotICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVlKCkKKyAgICAgICAgcXVldWUg
PSBDb21taXRRdWV1ZShob3N0PU1vY2tIb3N0KCkpCiAKICAgICAgICAgZGVmIG1vY2tfcnVuX3dl
YmtpdF9wYXRjaChjb21tYW5kKToKICAgICAgICAgICAgIGlmIGNvbW1hbmRbMF0gPT0gJ2NsZWFu
JyBvciBjb21tYW5kWzBdID09ICd1cGRhdGUnOgpAQCAtMzA4LDcgKzMxOCw3IEBAIE1PQ0s6IHJl
bGVhc2Vfd29ya19pdGVtOiBjb21taXQtcXVldWUgMTAKICAgICAgICAgICAgIGRlZiByZXN1bHRz
X2Zyb21fcGF0Y2hfdGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICAgICAgICAgIHJldHVy
biBMYXlvdXRUZXN0UmVzdWx0cyhbdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoIm1vY2tfdGVzdF9u
YW1lLmh0bWwiLCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoKCld
KV0sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKQogCi0gICAgICAgIHF1ZXVl
ID0gQ29tbWl0UXVldWUoTW9ja0NvbW1pdFF1ZXVlVGFzaykKKyAgICAgICAgcXVldWUgPSBDb21t
aXRRdWV1ZShNb2NrQ29tbWl0UXVldWVUYXNrLCBob3N0PU1vY2tIb3N0KCkpCiAKICAgICAgICAg
ZGVmIG1vY2tfcnVuX3dlYmtpdF9wYXRjaChjb21tYW5kKToKICAgICAgICAgICAgIGlmIGNvbW1h
bmRbMF0gPT0gJ2NsZWFuJyBvciBjb21tYW5kWzBdID09ICd1cGRhdGUnOgpAQCAtMzQ3LDcgKzM1
Nyw3IEBAIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiBjb21taXQtcXVldWUgMTAKICAgICAgICAg
ICAgICJoYW5kbGVfc2NyaXB0X2Vycm9yIjogIlNjcmlwdEVycm9yIGVycm9yIG1lc3NhZ2Vcblxu
TU9DSyBvdXRwdXRcbiIsCiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAi
TU9DSyBzZXR0aW5nIGZsYWcgJ2NvbW1pdC1xdWV1ZScgdG8gJy0nIG9uIGF0dGFjaG1lbnQgJzEw
MDAwJyB3aXRoIGNvbW1lbnQgJ1JlamVjdGluZyBhdHRhY2htZW50IDEwMDAwIGZyb20gY29tbWl0
LXF1ZXVlLlxuXG5Nb2NrIGVycm9yIG1lc3NhZ2UnXG4iLAogICAgICAgICB9Ci0gICAgICAgIHNl
bGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVldWUoKSwgdG9vbD10b29sLCBleHBlY3Rl
ZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMo
Q29tbWl0UXVldWUoaG9zdD1Nb2NrSG9zdCgpKSwgdG9vbD10b29sLCBleHBlY3RlZF9sb2dzPWV4
cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9yb2xsb3V0X2xhbmRzKHNlbGYpOgogICAgICAg
ICB0b29sID0gTW9ja1Rvb2woKQpAQCAtMzcyLDcgKzM4Miw3IEBAIE1PQ0s6IHJlbGVhc2Vfd29y
a19pdGVtOiBjb21taXQtcXVldWUgMTAKICAgICAgICAgICAgICJoYW5kbGVfc2NyaXB0X2Vycm9y
IjogIlNjcmlwdEVycm9yIGVycm9yIG1lc3NhZ2VcblxuTU9DSyBvdXRwdXRcbiIsCiAgICAgICAg
ICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTU9DSyBzZXR0aW5nIGZsYWcgJ2NvbW1p
dC1xdWV1ZScgdG8gJy0nIG9uIGF0dGFjaG1lbnQgJzEwMDA1JyB3aXRoIGNvbW1lbnQgJ1JlamVj
dGluZyBhdHRhY2htZW50IDEwMDA1IGZyb20gY29tbWl0LXF1ZXVlLlxuXG5Nb2NrIGVycm9yIG1l
c3NhZ2UnXG4iLAogICAgICAgICB9Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMo
Q29tbWl0UXVldWUoKSwgdG9vbD10b29sLCB3b3JrX2l0ZW09cm9sbG91dF9wYXRjaCwgZXhwZWN0
ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRz
KENvbW1pdFF1ZXVlKGhvc3Q9TW9ja0hvc3QoKSksIHRvb2w9dG9vbCwgd29ya19pdGVtPXJvbGxv
dXRfcGF0Y2gsIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X25v
bl92YWxpZF9wYXRjaChzZWxmKToKICAgICAgICAgdG9vbCA9IE1vY2tUb29sKCkKQEAgLTM4Mywx
MCArMzkzLDEwIEBAIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiBjb21taXQtcXVldWUgMTAKIE1P
Q0s6IHJlbGVhc2Vfd29ya19pdGVtOiBjb21taXQtcXVldWUgMTAwMDcKICIiIiwKICAgICAgICAg
fQotICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKENvbW1pdFF1ZXVlKCksIHRvb2w9
dG9vbCwgd29ya19pdGVtPXBhdGNoLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAg
ICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVldWUoaG9zdD1Nb2NrSG9zdCgp
KSwgdG9vbD10b29sLCB3b3JrX2l0ZW09cGF0Y2gsIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9n
cykKIAogICAgIGRlZiB0ZXN0X2F1dG9fcmV0cnkoc2VsZik6Ci0gICAgICAgIHF1ZXVlID0gQ29t
bWl0UXVldWUoKQorICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVlKGhvc3Q9TW9ja0hvc3QoKSkK
ICAgICAgICAgb3B0aW9ucyA9IE1vY2soKQogICAgICAgICBvcHRpb25zLnBhcmVudF9jb21tYW5k
ID0gImNvbW1pdC1xdWV1ZSIKICAgICAgICAgdG9vbCA9IEFsd2F5c0NvbW1pdFF1ZXVlVG9vbCgp
CkBAIC00OTgsNyArNTA4LDcgQEAgTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IHN0eWxlLXF1ZXVl
IDEwMAogICAgICAgICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAiTU9DSyBvdXRwdXRcbiIs
CiAgICAgICAgIH0KICAgICAgICAgdG9vbCA9IE1vY2tUb29sKGV4ZWN1dGl2ZV90aHJvd3Nfd2hl
bl9ydW49c2V0KFsnY2hlY2stc3R5bGUnXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291
dHB1dHMoU3R5bGVRdWV1ZSgpLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MsIHRvb2w9dG9v
bCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhTdHlsZVF1ZXVlKGhvc3Q9TW9j
a0hvc3QoKSksIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncywgdG9vbD10b29sKQogCiAgICAg
ZGVmIHRlc3Rfc3R5bGVfcXVldWVfd2l0aF93YXRjaF9saXN0X2V4Y2VwdGlvbihzZWxmKToKICAg
ICAgICAgZXhwZWN0ZWRfbG9ncyA9IHsKQEAgLTUyMyw0ICs1MzMsNCBAQCBNT0NLOiByZWxlYXNl
X3dvcmtfaXRlbTogc3R5bGUtcXVldWUgMTAwCiAgICAgICAgICAgICAiaGFuZGxlX3NjcmlwdF9l
cnJvciI6ICJNT0NLIG91dHB1dFxuIiwKICAgICAgICAgfQogICAgICAgICB0b29sID0gTW9ja1Rv
b2woZXhlY3V0aXZlX3Rocm93c193aGVuX3J1bj1zZXQoWydhcHBseS13YXRjaGxpc3QtbG9jYWwn
XSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoU3R5bGVRdWV1ZSgpLCBleHBl
Y3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MsIHRvb2w9dG9vbCkKKyAgICAgICAgc2VsZi5hc3NlcnRf
cXVldWVfb3V0cHV0cyhTdHlsZVF1ZXVlKGhvc3Q9TW9ja0hvc3QoKSksIGV4cGVjdGVkX2xvZ3M9
ZXhwZWN0ZWRfbG9ncywgdG9vbD10b29sKQo=
</data>
<flag name="review"
          id="307531"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283962</attachid>
            <date>2016-07-18 16:55:41 -0700</date>
            <delta_ts>2016-07-18 17:25:44 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>ews-log-v13</filename>
            <type>text/plain</type>
            <size>16660</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwMzM4MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ0IEBACisyMDE2LTA3LTE2ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBFV1MgY29uc29sZSBsb2dzIGRvZXNuJ3QgZ28gdG8gbG9nIGZpbGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTUzOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjQ0NjQ1NzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2
aWQgS2lsemVyLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2xv
Z3V0aWxzLnB5OgorICAgICAgICAoY29uZmlndXJlX2xvZ2dlcl90b19sb2dfdG9fZmlsZSk6IEFk
ZGVkIG1ldGhvZCB0byBjb25maWd1cmUgdGhlIGxvZ2dlciB0byBsb2cgdG8gZmlsZS4KKyAgICAg
ICAgKEZpbGVTeXN0ZW1IYW5kbGVyKTogQWRkZWQgY2xhc3Mgd2hpY2ggdXNlcyBsb2dnaW5nLkZp
bGVIYW5kbGVyIGFzIGJhc2UgY2xhc3MgYW5kIHN1cHBvcnRzIHdyaXRpbmcKKyAgICAgICAgdG8g
ZmlsZXN5c3RlbS4gSXQgYWxzbyBzdXBwb3J0cyBwYXNzaW5nIE1vY2tGaWxlc3lzdGVtLgorICAg
ICAgICAoRmlsZVN5c3RlbUhhbmRsZXIuX19pbml0X18pOiBJbml0aWFsaXplIHRoZSBjbGFzcyBh
bmQgY2FsbHMgYmFzZSBjbGFzcyBfX2luaXRfXy4KKyAgICAgICAgKEZpbGVTeXN0ZW1IYW5kbGVy
Ll9vcGVuKTogT3ZlcnJpZGVzIHRoZSBiYXNlIGNsYXNzIF9vcGVuIG1ldGhvZCB0byB1c2UgZmls
ZXN5c3RlbSBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKEFic3RyYWN0RWFybHlX
YXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSk6IEFkZGVkIE1vY2tI
b3N0KCkgcGFyYW1ldGVyLgorICAgICAgICAoX3Rlc3RfZXdzKTogU2FtZS4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5OgorICAgICAgICAoQWJzdHJh
Y3RRdWV1ZS5iZWdpbl93b3JrX3F1ZXVlKTogQ29uZmlndXJlIHRoZSBsb2dnZXIgdG8gbG9nIHRv
IGZpbGUuCisgICAgICAgIChBYnN0cmFjdFF1ZXVlLl9sb2dfZGlyZWN0b3J5KTogVXNpbmcgZmls
ZXN5c3RlbSBvYmplY3QgaW5zdGVhZCBvZiBvcy4KKyAgICAgICAgKEFic3RyYWN0UXVldWUucXVl
dWVfbG9nX3BhdGgpOiBTYW1lLgorICAgICAgICAoQWJzdHJhY3RRdWV1ZS5fX2luaXRfXyk6IFBh
c3NlZCBob3N0IHBhcmFtZXRlci4KKyAgICAgICAgKFBhdGNoUHJvY2Vzc2luZ1F1ZXVlLl9faW5p
dF9fKTogU2FtZS4KKyAgICAgICAgKENvbW1pdFF1ZXVlLl9faW5pdF9fKTogU2FtZS4KKyAgICAg
ICAgKEFic3RyYWN0UmV2aWV3UXVldWUuX19pbml0X18pOiBTYW1lLgorICAgICAgICAoU3R5bGVR
dWV1ZS5fX2luaXRfXyk6IFNhbWUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3F1ZXVlc191bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RDb21taXRRdWV1ZSk6IFBh
c3NlZCBNb2NrSG9zdCgpIGFzIGhvc3QuCisgICAgICAgIChUZXN0Q29tbWl0UXVldWUuX19pbml0
X18pOiBTYW1lLgorICAgICAgICAoVGVzdFF1ZXVlLl9faW5pdF9fKTogU2FtZS4KKyAgICAgICAg
KFRlc3RSZXZpZXdRdWV1ZS5fX2luaXRfXyk6IFNhbWUuCisgICAgICAgIChUZXN0RmVlZGVyUXVl
dWUuX19pbml0X18pOiBTYW1lLgorICAgICAgICAoQWJzdHJhY3RQYXRjaFF1ZXVlVGVzdC50ZXN0
X25leHRfcGF0Y2gpOiBTYW1lLgorICAgICAgICAoUGF0Y2hQcm9jZXNzaW5nUXVldWVUZXN0LnRl
c3RfdXBsb2FkX3Jlc3VsdHNfYXJjaGl2ZV9mb3JfcGF0Y2gpOiBTYW1lLgorICAgICAgICAodGVz
dF9jb21taXRfcXVldWVfZmFpbHVyZSk6IFNhbWUuCisgICAgICAgIChNb2NrQ29tbWl0UXVldWVU
YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1bik6IFNhbWUuCisgICAgICAgICh0ZXN0X3Jv
bGxvdXRfbGFuZHMpOiBTYW1lLgorICAgICAgICAodGVzdF9ub25fdmFsaWRfcGF0Y2gpOiBTYW1l
LgorICAgICAgICAodGVzdF9hdXRvX3JldHJ5KTogU2FtZS4KKyAgICAgICAgKHRlc3Rfc3R5bGVf
cXVldWVfd2l0aF93YXRjaF9saXN0X2V4Y2VwdGlvbik6IFNhbWUuCisKIDIwMTYtMDctMDIgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBXVEY6OkxvY2sgc2hvdWxk
IGJlIGZhaXIgZXZlbnR1YWxseQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL2xvZ3V0aWxzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9sb2d1dGlscy5weQkocmV2aXNpb24gMjAzMzgwKQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2xvZ3V0aWxzLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw4IEBAIGltcG9ydCBzeXMKIAogaW1wb3J0IHdlYmtpdHB5CiAKK2Zyb20gbG9n
Z2luZyBpbXBvcnQgRmlsZUhhbmRsZXIKKwogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCiAKQEAgLTIwOSwzICsyMTEsMjUgQEAgZGVmIGNvbmZpZ3VyZV9sb2dnaW5nKGxvZ2dp
bmdfbGV2ZWw9Tm9uZQogICAgIF9sb2cuZGVidWcoIkRlYnVnIGxvZ2dpbmcgZW5hYmxlZC4iKQog
CiAgICAgcmV0dXJuIGhhbmRsZXJzCisKKworZGVmIGNvbmZpZ3VyZV9sb2dnZXJfdG9fbG9nX3Rv
X2ZpbGUobG9nZ2VyLCBsb2dfcGF0aCwgZmlsZXN5c3RlbSk6CisgICAgbG9nX2RpcmVjdG9yeSA9
IGZpbGVzeXN0ZW0uZGlybmFtZShsb2dfcGF0aCkKKyAgICBpZiBsb2dfZGlyZWN0b3J5IGFuZCBu
b3QgZmlsZXN5c3RlbS5leGlzdHMobG9nX2RpcmVjdG9yeSk6CisgICAgICAgIGZpbGVzeXN0ZW0u
bWF5YmVfbWFrZV9kaXJlY3RvcnkobG9nX2RpcmVjdG9yeSkKKworICAgIGhhbmRsZXIgPSBGaWxl
U3lzdGVtSGFuZGxlcihsb2dfcGF0aCwgZmlsZXN5c3RlbSkKKyAgICBmb3JtYXR0ZXIgPSBsb2dn
aW5nLkZvcm1hdHRlcignJShhc2N0aW1lKXMgLSAlKG1lc3NhZ2UpcycpCisgICAgaGFuZGxlci5z
ZXRGb3JtYXR0ZXIoZm9ybWF0dGVyKQorCisgICAgbG9nZ2VyLmFkZEhhbmRsZXIoaGFuZGxlcikK
KworCitjbGFzcyBGaWxlU3lzdGVtSGFuZGxlcihGaWxlSGFuZGxlcik6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGZpbGVuYW1lLCBmaWxlc3lzdGVtKToKKyAgICAgICAgc2VsZi5maWxlbmFtZSA9
IGZpbGVuYW1lCisgICAgICAgIHNlbGYuZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0KKyAgICAgICAg
RmlsZUhhbmRsZXIuX19pbml0X18oc2VsZiwgZmlsZW5hbWUpCisKKyAgICBkZWYgX29wZW4oc2Vs
Zik6CisgICAgICAgIHJldHVybiBzZWxmLmZpbGVzeXN0ZW0ub3Blbl90ZXh0X2ZpbGVfZm9yX3dy
aXRpbmcoc2VsZi5maWxlbmFtZSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0
dGVzdC5weQkocmV2aXNpb24gMjAzMzgwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkubW9jayBpbXBvcnQg
TW9jawogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQgSG9zdAorZnJvbSB3ZWJraXRw
eS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24u
bmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cwogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9yZXN1bHRzCkBAIC00
OSw2ICs1MCw3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWUKIAog
ICAgICAgICBld3MgPSBUZXN0RVdTKCkKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9v
bCgpKQorICAgICAgICBld3MuaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgZXdzLl9vcHRpb25z
ID0gTW9ja09wdGlvbnMocG9ydD1Ob25lLCBjb25maXJtPUZhbHNlKQogICAgICAgICBPdXRwdXRD
YXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgZXdzLmJlZ2luX3dvcmtfcXVldWUsIGV4cGVj
dGVkX2xvZ3M9c2VsZi5fZGVmYXVsdF9iZWdpbl93b3JrX3F1ZXVlX2xvZ3MoZXdzLm5hbWUpKQog
ICAgICAgICB0YXNrID0gTW9jaygpCkBAIC04OSw2ICs5MSw3IEBAIE1PQ0s6IHJlbGVhc2Vfd29y
a19pdGVtOiAlKG5hbWUpcyAxMDAwMAogCiAgICAgZGVmIF90ZXN0X2V3cyhzZWxmLCBld3MpOgog
ICAgICAgICBld3MuYmluZF90b190b29sKE1vY2tUb29sKCkpCisgICAgICAgIGV3cy5ob3N0ID0g
TW9ja0hvc3QoKQogICAgICAgICBvcHRpb25zID0gTW9jaygpCiAgICAgICAgIG9wdGlvbnMucG9y
dCA9IE5vbmUKICAgICAgICAgb3B0aW9ucy5ydW5fdGVzdHMgPSBld3MucnVuX3Rlc3RzCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkJKHJl
dmlzaW9uIDIwMzM4MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9x
dWV1ZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTQxLDggKzQxLDEwIEBAIGZyb20gU3RyaW5nSU8g
aW1wb3J0IFN0cmluZ0lPCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJ2
YWxpZGF0b3IgaW1wb3J0IENvbW1pdHRlclZhbGlkYXRvcgogZnJvbSB3ZWJraXRweS5jb21tb24u
Y29uZmlnLnBvcnRzIGltcG9ydCBEZXByZWNhdGVkUG9ydAorZnJvbSB3ZWJraXRweS5jb21tb24u
aG9zdCBpbXBvcnQgSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhIGltcG9y
dCBBdHRhY2htZW50CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuc3RhdHVzc2VydmVyIGltcG9y
dCBTdGF0dXNTZXJ2ZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgbG9ndXRp
bHMKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVy
cm9yCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmJvdGluZm8gaW1wb3J0IEJvdEluZm8KIGZyb20g
d2Via2l0cHkudG9vbC5ib3QuY29tbWl0cXVldWV0YXNrIGltcG9ydCBDb21taXRRdWV1ZVRhc2ss
IENvbW1pdFF1ZXVlVGFza0RlbGVnYXRlCkBAIC02Niw3ICs2OCw3IEBAIGNsYXNzIEFic3RyYWN0
UXVldWUoQ29tbWFuZCwgUXVldWVFbmdpbmUKICAgICBfZmFpbF9zdGF0dXMgPSAiRmFpbCIKICAg
ICBfZXJyb3Jfc3RhdHVzID0gIkVycm9yIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlv
bnM9Tm9uZSk6ICAjIERlZmF1bHQgdmFsdWVzIHNob3VsZCBuZXZlciBiZSBjb2xsZWN0aW9ucyAo
bGlrZSBbXSkgYXMgZGVmYXVsdCB2YWx1ZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIGludm9jYXRpb25z
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnM9Tm9uZSwgaG9zdD1Ib3N0KCkpOiAgIyBE
ZWZhdWx0IHZhbHVlcyBzaG91bGQgbmV2ZXIgYmUgY29sbGVjdGlvbnMgKGxpa2UgW10pIGFzIGRl
ZmF1bHQgdmFsdWVzIGFyZSBzaGFyZWQgYmV0d2VlbiBpbnZvY2F0aW9ucwogICAgICAgICBvcHRp
b25zX2xpc3QgPSAob3B0aW9ucyBvciBbXSkgKyBbCiAgICAgICAgICAgICBtYWtlX29wdGlvbigi
LS1uby1jb25maXJtIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9ImNvbmZpcm0iLCBkZWZh
dWx0PVRydWUsIGhlbHA9IkRvIG5vdCBhc2sgdGhlIHVzZXIgZm9yIGNvbmZpcm1hdGlvbiBiZWZv
cmUgcnVubmluZyB0aGUgcXVldWUuICBEYW5nZXJvdXMhIiksCiAgICAgICAgICAgICBtYWtlX29w
dGlvbigiLS1leGl0LWFmdGVyLWl0ZXJhdGlvbiIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJpbnQi
LCBkZXN0PSJpdGVyYXRpb25zIiwgZGVmYXVsdD1Ob25lLCBoZWxwPSJTdG9wIHJ1bm5pbmcgdGhl
IHF1ZXVlIGFmdGVyIGl0ZXJhdGluZyB0aGlzIG51bWJlciBvZiB0aW1lcy4iKSwKQEAgLTc2LDYg
Kzc4LDcgQEAgY2xhc3MgQWJzdHJhY3RRdWV1ZShDb21tYW5kLCBRdWV1ZUVuZ2luZQogICAgICAg
ICBzZWxmLl9pdGVyYXRpb25fY291bnQgPSAwCiAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYs
ICdhcmNoaXRlY3R1cmUnKToKICAgICAgICAgICAgIHNlbGYuYXJjaGl0ZWN0dXJlID0gTm9uZQor
ICAgICAgICBzZWxmLmhvc3QgPSBob3N0CiAKICAgICBkZWYgX2NjX3dhdGNoZXJzKHNlbGYsIGJ1
Z19pZCk6CiAgICAgICAgIHRyeToKQEAgLTEwOSwxNyArMTEyLDE4IEBAIGNsYXNzIEFic3RyYWN0
UXVldWUoQ29tbWFuZCwgUXVldWVFbmdpbmUKICAgICAgICAgcmV0dXJuIGNvbW1hbmRfb3V0cHV0
CiAKICAgICBkZWYgX2xvZ19kaXJlY3Rvcnkoc2VsZik6Ci0gICAgICAgIHJldHVybiBvcy5wYXRo
LmpvaW4oIi4uIiwgIiVzLWxvZ3MiICUgc2VsZi5uYW1lKQorICAgICAgICByZXR1cm4gc2VsZi5o
b3N0LmZpbGVzeXN0ZW0uam9pbigiLi4iLCAiJXMtbG9ncyIgJSBzZWxmLm5hbWUpCiAKICAgICAj
IFF1ZXVlRW5naW5lRGVsZWdhdGUgbWV0aG9kcwogCiAgICAgZGVmIHF1ZXVlX2xvZ19wYXRoKHNl
bGYpOgotICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHNlbGYuX2xvZ19kaXJlY3RvcnkoKSwg
IiVzLmxvZyIgJSBzZWxmLm5hbWUpCisgICAgICAgIHJldHVybiBzZWxmLmhvc3QuZmlsZXN5c3Rl
bS5qb2luKHNlbGYuX2xvZ19kaXJlY3RvcnkoKSwgIiVzLmxvZyIgJSBzZWxmLm5hbWUpCiAKICAg
ICBkZWYgd29ya19pdGVtX2xvZ19wYXRoKHNlbGYsIHdvcmtfaXRlbSk6CiAgICAgICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgogCiAgICAg
ZGVmIGJlZ2luX3dvcmtfcXVldWUoc2VsZik6CisgICAgICAgIGxvZ3V0aWxzLmNvbmZpZ3VyZV9s
b2dnZXJfdG9fbG9nX3RvX2ZpbGUoX2xvZywgc2VsZi5xdWV1ZV9sb2dfcGF0aCgpLCBzZWxmLmhv
c3QuZmlsZXN5c3RlbSkKICAgICAgICAgX2xvZy5pbmZvKCJDQVVUSU9OOiAlcyB3aWxsIGRpc2Nh
cmQgYWxsIGxvY2FsIGNoYW5nZXMgaW4gXCIlc1wiIiAlIChzZWxmLm5hbWUsIHNlbGYuX3Rvb2wu
c2NtKCkuY2hlY2tvdXRfcm9vdCkpCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuY29uZmlybToK
ICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5fdG9vbC51c2VyLnByb21wdCgiQXJlIHlvdSBz
dXJlPyAgVHlwZSBcInllc1wiIHRvIGNvbnRpbnVlOiAiKQpAQCAtMjU5LDkgKzI2MywxMCBAQCBj
bGFzcyBQYXRjaFByb2Nlc3NpbmdRdWV1ZShBYnN0cmFjdFBhdGNoCiAgICAgIyBTdWJjbGFzc2Vz
IG11c3Qgb3ZlcnJpZGUuCiAgICAgcG9ydF9uYW1lID0gTm9uZQogCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIG9wdGlvbnM9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnM9Tm9u
ZSwgaG9zdD1Ib3N0KCkpOgogICAgICAgICBzZWxmLl9wb3J0ID0gTm9uZSAgIyBXZSBjYW4ndCBp
bnN0YW50aWF0ZSBwb3J0IGhlcmUgYmVjYXVzZSB0b29sIGlzbid0IGF2YWlhbGJsZS4KLSAgICAg
ICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5pdF9fKHNlbGYsIG9wdGlvbnMpCisgICAgICAgIHNl
bGYuaG9zdCA9IGhvc3QKKyAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5pdF9fKHNlbGYs
IG9wdGlvbnMsIGhvc3Q9aG9zdCkKIAogICAgICMgRklYTUU6IFRoaXMgaXMgYSBoYWNrIHRvIG1h
cCBiZXR3ZWVuIHRoZSBvbGQgcG9ydCBuYW1lcyBhbmQgdGhlIG5ldyBwb3J0IG5hbWVzLgogICAg
IGRlZiBfbmV3X3BvcnRfbmFtZV9mcm9tX29sZChzZWxmLCBwb3J0X25hbWUsIHBsYXRmb3JtKToK
QEAgLTMxMyw5ICszMTgsMTAgQEAgY2xhc3MgUGF0Y2hQcm9jZXNzaW5nUXVldWUoQWJzdHJhY3RQ
YXRjaAogCiAKIGNsYXNzIENvbW1pdFF1ZXVlKFBhdGNoUHJvY2Vzc2luZ1F1ZXVlLCBTdGVwU2Vx
dWVuY2VFcnJvckhhbmRsZXIsIENvbW1pdFF1ZXVlVGFza0RlbGVnYXRlKToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgY29tbWl0X3F1ZXVlX3Rhc2tfY2xhc3M9Q29tbWl0UXVldWVUYXNrKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgY29tbWl0X3F1ZXVlX3Rhc2tfY2xhc3M9Q29tbWl0UXVldWVU
YXNrLCBob3N0PUhvc3QoKSk6CisgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKICAgICAgICAgc2Vs
Zi5fY29tbWl0X3F1ZXVlX3Rhc2tfY2xhc3MgPSBjb21taXRfcXVldWVfdGFza19jbGFzcwotICAg
ICAgICBQYXRjaFByb2Nlc3NpbmdRdWV1ZS5fX2luaXRfXyhzZWxmKQorICAgICAgICBQYXRjaFBy
b2Nlc3NpbmdRdWV1ZS5fX2luaXRfXyhzZWxmLCBob3N0PWhvc3QpCiAKICAgICBuYW1lID0gImNv
bW1pdC1xdWV1ZSIKICAgICBwb3J0X25hbWUgPSAibWFjIgpAQCAtNDMwLDggKzQzNiw5IEBAIGNs
YXNzIENvbW1pdFF1ZXVlKFBhdGNoUHJvY2Vzc2luZ1F1ZXVlLCAKIAogY2xhc3MgQWJzdHJhY3RS
ZXZpZXdRdWV1ZShQYXRjaFByb2Nlc3NpbmdRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVy
KToKICAgICAiIiJUaGlzIGlzIHRoZSBiYXNlLWNsYXNzIGZvciB0aGUgRVdTIHF1ZXVlcyBhbmQg
dGhlIHN0eWxlLXF1ZXVlLiIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zPU5vbmUp
OgotICAgICAgICBQYXRjaFByb2Nlc3NpbmdRdWV1ZS5fX2luaXRfXyhzZWxmLCBvcHRpb25zKQor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zPU5vbmUsIGhvc3Q9SG9zdCgpKToKKyAgICAg
ICAgc2VsZi5ob3N0ID0gaG9zdAorICAgICAgICBQYXRjaFByb2Nlc3NpbmdRdWV1ZS5fX2luaXRf
XyhzZWxmLCBvcHRpb25zLCBob3N0PWhvc3QpCiAKICAgICBkZWYgcmV2aWV3X3BhdGNoKHNlbGYs
IHBhdGNoKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBt
dXN0IGltcGxlbWVudCIpCkBAIC00NjMsOCArNDcwLDkgQEAgY2xhc3MgQWJzdHJhY3RSZXZpZXdR
dWV1ZShQYXRjaFByb2Nlc3NpbgogY2xhc3MgU3R5bGVRdWV1ZShBYnN0cmFjdFJldmlld1F1ZXVl
LCBTdHlsZVF1ZXVlVGFza0RlbGVnYXRlKToKICAgICBuYW1lID0gInN0eWxlLXF1ZXVlIgogCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBBYnN0cmFjdFJldmlld1F1ZXVlLl9faW5p
dF9fKHNlbGYpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Q9SG9zdCgpKToKKyAgICAgICAg
c2VsZi5ob3N0ID0gaG9zdAorICAgICAgICBBYnN0cmFjdFJldmlld1F1ZXVlLl9faW5pdF9fKHNl
bGYsIGhvc3Q9aG9zdCkKIAogICAgIGRlZiByZXZpZXdfcGF0Y2goc2VsZiwgcGF0Y2gpOgogICAg
ICAgICB0YXNrID0gU3R5bGVRdWV1ZVRhc2soc2VsZiwgcGF0Y2gpCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3Qu
cHkJKHJldmlzaW9uIDIwMzM4MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAg
aW1wb3J0IFN0cmluZ0lPCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbSBpbXBv
cnQgQ2hlY2tvdXROZWVkc1VwZGF0ZQogZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2Nt
LnNjbV9tb2NrIGltcG9ydCBNb2NrU0NNCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sg
aW1wb3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3Vs
dHMgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVn
emlsbGEgaW1wb3J0IEF0dGFjaG1lbnQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRw
dXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCkBAIC00Nyw3ICs0OCw3IEBAIGZyb20gd2Vi
a2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1QKIAogY2xhc3MgVGVzdENvbW1pdFF1ZXVl
KENvbW1pdFF1ZXVlKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgdG9vbD1Ob25lKToKLSAgICAg
ICAgQ29tbWl0UXVldWUuX19pbml0X18oc2VsZikKKyAgICAgICAgQ29tbWl0UXVldWUuX19pbml0
X18oc2VsZiwgaG9zdD1Nb2NrSG9zdCgpKQogICAgICAgICBpZiB0b29sOgogICAgICAgICAgICAg
c2VsZi5iaW5kX3RvX3Rvb2wodG9vbCkKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IE1vY2tPcHRp
b25zKGNvbmZpcm09RmFsc2UsIHBhcmVudF9jb21tYW5kPSJjb21taXQtcXVldWUiLCBwb3J0PU5v
bmUpCkBAIC02MiwxNCArNjMsMjMgQEAgY2xhc3MgVGVzdENvbW1pdFF1ZXVlKENvbW1pdFF1ZXVl
KToKIGNsYXNzIFRlc3RRdWV1ZShBYnN0cmFjdFBhdGNoUXVldWUpOgogICAgIG5hbWUgPSAidGVz
dC1xdWV1ZSIKIAorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgQWJzdHJhY3RQYXRj
aFF1ZXVlLl9faW5pdF9fKHNlbGYsIGhvc3Q9TW9ja0hvc3QoKSkKKwogCiBjbGFzcyBUZXN0UmV2
aWV3UXVldWUoQWJzdHJhY3RSZXZpZXdRdWV1ZSk6CiAgICAgbmFtZSA9ICJ0ZXN0LXJldmlldy1x
dWV1ZSIKIAorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgQWJzdHJhY3RSZXZpZXdR
dWV1ZS5fX2luaXRfXyhzZWxmLCBob3N0PU1vY2tIb3N0KCkpCisKIAogY2xhc3MgVGVzdEZlZWRl
clF1ZXVlKEZlZWRlclF1ZXVlKToKICAgICBfc2xlZXBfZHVyYXRpb24gPSAwCiAKKyAgICBkZWYg
X19pbml0X18oc2VsZik6CisgICAgICAgIEZlZWRlclF1ZXVlLl9faW5pdF9fKHNlbGYsIGhvc3Q9
TW9ja0hvc3QoKSkKKwogCiBjbGFzcyBBYnN0cmFjdFF1ZXVlVGVzdChDb21tYW5kc1Rlc3QpOgog
ICAgIGRlZiB0ZXN0X2xvZ19kaXJlY3Rvcnkoc2VsZik6CkBAIC0xNTMsNyArMTYzLDcgQEAgTU9D
Szogc3VibWl0X3RvX2V3czogMTAwMDIKIAogY2xhc3MgQWJzdHJhY3RQYXRjaFF1ZXVlVGVzdChD
b21tYW5kc1Rlc3QpOgogICAgIGRlZiB0ZXN0X25leHRfcGF0Y2goc2VsZik6Ci0gICAgICAgIHF1
ZXVlID0gQWJzdHJhY3RQYXRjaFF1ZXVlKCkKKyAgICAgICAgcXVldWUgPSBBYnN0cmFjdFBhdGNo
UXVldWUoaG9zdD1Nb2NrSG9zdCgpKQogICAgICAgICB0b29sID0gTW9ja1Rvb2woKQogICAgICAg
ICBxdWV1ZS5iaW5kX3RvX3Rvb2wodG9vbCkKICAgICAgICAgcXVldWUuX29wdGlvbnMgPSBNb2Nr
KCkKQEAgLTE3MSw3ICsxODEsNyBAQCBjbGFzcyBBYnN0cmFjdFBhdGNoUXVldWVUZXN0KENvbW1h
bmRzVGVzCiAKIGNsYXNzIFBhdGNoUHJvY2Vzc2luZ1F1ZXVlVGVzdChDb21tYW5kc1Rlc3QpOgog
ICAgIGRlZiB0ZXN0X3VwbG9hZF9yZXN1bHRzX2FyY2hpdmVfZm9yX3BhdGNoKHNlbGYpOgotICAg
ICAgICBxdWV1ZSA9IFBhdGNoUHJvY2Vzc2luZ1F1ZXVlKCkKKyAgICAgICAgcXVldWUgPSBQYXRj
aFByb2Nlc3NpbmdRdWV1ZShob3N0PU1vY2tIb3N0KCkpCiAgICAgICAgIHF1ZXVlLm5hbWUgPSAi
bW9jay1xdWV1ZSIKICAgICAgICAgdG9vbCA9IE1vY2tUb29sKCkKICAgICAgICAgcXVldWUuYmlu
ZF90b190b29sKHRvb2wpCkBAIC0yNjAsNyArMjcwLDcgQEAgTU9DSzogcmVsZWFzZV93b3JrX2l0
ZW06IGNvbW1pdC1xdWV1ZSAxMAogICAgICAgICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAi
U2NyaXB0RXJyb3IgZXJyb3IgbWVzc2FnZVxuXG5NT0NLIG91dHB1dFxuIiwKICAgICAgICAgICAg
ICJoYW5kbGVfdW5leHBlY3RlZF9lcnJvciI6ICJNT0NLIHNldHRpbmcgZmxhZyAnY29tbWl0LXF1
ZXVlJyB0byAnLScgb24gYXR0YWNobWVudCAnMTAwMDAnIHdpdGggY29tbWVudCAnUmVqZWN0aW5n
IGF0dGFjaG1lbnQgMTAwMDAgZnJvbSBjb21taXQtcXVldWUuXG5cbk1vY2sgZXJyb3IgbWVzc2Fn
ZSdcbiIsCiAgICAgICAgIH0KLSAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhDb21t
aXRRdWV1ZSgpLCB0b29sPXRvb2wsIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAg
ICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhDb21taXRRdWV1ZShob3N0PU1vY2tIb3N0KCkp
LCB0b29sPXRvb2wsIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0
X2NvbW1pdF9xdWV1ZV9mYWlsdXJlKHNlbGYpOgogICAgICAgICBleHBlY3RlZF9sb2dzID0gewpA
QCAtMjc2LDcgKzI4Niw3IEBAIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiBjb21taXQtcXVldWUg
MTAKICAgICAgICAgICAgICJoYW5kbGVfc2NyaXB0X2Vycm9yIjogIlNjcmlwdEVycm9yIGVycm9y
IG1lc3NhZ2VcblxuTU9DSyBvdXRwdXRcbiIsCiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0
ZWRfZXJyb3IiOiAiTU9DSyBzZXR0aW5nIGZsYWcgJ2NvbW1pdC1xdWV1ZScgdG8gJy0nIG9uIGF0
dGFjaG1lbnQgJzEwMDAwJyB3aXRoIGNvbW1lbnQgJ1JlamVjdGluZyBhdHRhY2htZW50IDEwMDAw
IGZyb20gY29tbWl0LXF1ZXVlLlxuXG5Nb2NrIGVycm9yIG1lc3NhZ2UnXG4iLAogICAgICAgICB9
Ci0gICAgICAgIHF1ZXVlID0gQ29tbWl0UXVldWUoKQorICAgICAgICBxdWV1ZSA9IENvbW1pdFF1
ZXVlKGhvc3Q9TW9ja0hvc3QoKSkKIAogICAgICAgICBkZWYgbW9ja19ydW5fd2Via2l0X3BhdGNo
KGNvbW1hbmQpOgogICAgICAgICAgICAgaWYgY29tbWFuZFswXSA9PSAnY2xlYW4nIG9yIGNvbW1h
bmRbMF0gPT0gJ3VwZGF0ZSc6CkBAIC0zMDgsNyArMzE4LDcgQEAgTU9DSzogcmVsZWFzZV93b3Jr
X2l0ZW06IGNvbW1pdC1xdWV1ZSAxMAogICAgICAgICAgICAgZGVmIHJlc3VsdHNfZnJvbV9wYXRj
aF90ZXN0X3J1bihzZWxmLCBwYXRjaCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIExheW91dFRl
c3RSZXN1bHRzKFt0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgibW9ja190ZXN0X25hbWUuaHRtbCIs
IGZhaWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2goKV0pXSwgZGlkX2V4
Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCiAKLSAgICAgICAgcXVldWUgPSBDb21taXRR
dWV1ZShNb2NrQ29tbWl0UXVldWVUYXNrKQorICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVlKE1v
Y2tDb21taXRRdWV1ZVRhc2ssIGhvc3Q9TW9ja0hvc3QoKSkKIAogICAgICAgICBkZWYgbW9ja19y
dW5fd2Via2l0X3BhdGNoKGNvbW1hbmQpOgogICAgICAgICAgICAgaWYgY29tbWFuZFswXSA9PSAn
Y2xlYW4nIG9yIGNvbW1hbmRbMF0gPT0gJ3VwZGF0ZSc6CkBAIC0zNDcsNyArMzU3LDcgQEAgTU9D
SzogcmVsZWFzZV93b3JrX2l0ZW06IGNvbW1pdC1xdWV1ZSAxMAogICAgICAgICAgICAgImhhbmRs
ZV9zY3JpcHRfZXJyb3IiOiAiU2NyaXB0RXJyb3IgZXJyb3IgbWVzc2FnZVxuXG5NT0NLIG91dHB1
dFxuIiwKICAgICAgICAgICAgICJoYW5kbGVfdW5leHBlY3RlZF9lcnJvciI6ICJNT0NLIHNldHRp
bmcgZmxhZyAnY29tbWl0LXF1ZXVlJyB0byAnLScgb24gYXR0YWNobWVudCAnMTAwMDAnIHdpdGgg
Y29tbWVudCAnUmVqZWN0aW5nIGF0dGFjaG1lbnQgMTAwMDAgZnJvbSBjb21taXQtcXVldWUuXG5c
bk1vY2sgZXJyb3IgbWVzc2FnZSdcbiIsCiAgICAgICAgIH0KLSAgICAgICAgc2VsZi5hc3NlcnRf
cXVldWVfb3V0cHV0cyhDb21taXRRdWV1ZSgpLCB0b29sPXRvb2wsIGV4cGVjdGVkX2xvZ3M9ZXhw
ZWN0ZWRfbG9ncykKKyAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhDb21taXRRdWV1
ZShob3N0PU1vY2tIb3N0KCkpLCB0b29sPXRvb2wsIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9n
cykKIAogICAgIGRlZiB0ZXN0X3JvbGxvdXRfbGFuZHMoc2VsZik6CiAgICAgICAgIHRvb2wgPSBN
b2NrVG9vbCgpCkBAIC0zNzIsNyArMzgyLDcgQEAgTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IGNv
bW1pdC1xdWV1ZSAxMAogICAgICAgICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAiU2NyaXB0
RXJyb3IgZXJyb3IgbWVzc2FnZVxuXG5NT0NLIG91dHB1dFxuIiwKICAgICAgICAgICAgICJoYW5k
bGVfdW5leHBlY3RlZF9lcnJvciI6ICJNT0NLIHNldHRpbmcgZmxhZyAnY29tbWl0LXF1ZXVlJyB0
byAnLScgb24gYXR0YWNobWVudCAnMTAwMDUnIHdpdGggY29tbWVudCAnUmVqZWN0aW5nIGF0dGFj
aG1lbnQgMTAwMDUgZnJvbSBjb21taXQtcXVldWUuXG5cbk1vY2sgZXJyb3IgbWVzc2FnZSdcbiIs
CiAgICAgICAgIH0KLSAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhDb21taXRRdWV1
ZSgpLCB0b29sPXRvb2wsIHdvcmtfaXRlbT1yb2xsb3V0X3BhdGNoLCBleHBlY3RlZF9sb2dzPWV4
cGVjdGVkX2xvZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVl
dWUoaG9zdD1Nb2NrSG9zdCgpKSwgdG9vbD10b29sLCB3b3JrX2l0ZW09cm9sbG91dF9wYXRjaCwg
ZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAgZGVmIHRlc3Rfbm9uX3ZhbGlkX3Bh
dGNoKHNlbGYpOgogICAgICAgICB0b29sID0gTW9ja1Rvb2woKQpAQCAtMzgzLDEwICszOTMsMTAg
QEAgTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IGNvbW1pdC1xdWV1ZSAxMAogTU9DSzogcmVsZWFz
ZV93b3JrX2l0ZW06IGNvbW1pdC1xdWV1ZSAxMDAwNwogIiIiLAogICAgICAgICB9Ci0gICAgICAg
IHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVldWUoKSwgdG9vbD10b29sLCB3b3Jr
X2l0ZW09cGF0Y2gsIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAgc2VsZi5h
c3NlcnRfcXVldWVfb3V0cHV0cyhDb21taXRRdWV1ZShob3N0PU1vY2tIb3N0KCkpLCB0b29sPXRv
b2wsIHdvcmtfaXRlbT1wYXRjaCwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAg
ZGVmIHRlc3RfYXV0b19yZXRyeShzZWxmKToKLSAgICAgICAgcXVldWUgPSBDb21taXRRdWV1ZSgp
CisgICAgICAgIHF1ZXVlID0gQ29tbWl0UXVldWUoaG9zdD1Nb2NrSG9zdCgpKQogICAgICAgICBv
cHRpb25zID0gTW9jaygpCiAgICAgICAgIG9wdGlvbnMucGFyZW50X2NvbW1hbmQgPSAiY29tbWl0
LXF1ZXVlIgogICAgICAgICB0b29sID0gQWx3YXlzQ29tbWl0UXVldWVUb29sKCkKQEAgLTQ5OCw3
ICs1MDgsNyBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogc3R5bGUtcXVldWUgMTAwCiAgICAg
ICAgICAgICAiaGFuZGxlX3NjcmlwdF9lcnJvciI6ICJNT0NLIG91dHB1dFxuIiwKICAgICAgICAg
fQogICAgICAgICB0b29sID0gTW9ja1Rvb2woZXhlY3V0aXZlX3Rocm93c193aGVuX3J1bj1zZXQo
WydjaGVjay1zdHlsZSddKSkKLSAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhTdHls
ZVF1ZXVlKCksIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncywgdG9vbD10b29sKQorICAgICAg
ICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKFN0eWxlUXVldWUoaG9zdD1Nb2NrSG9zdCgpKSwg
ZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzLCB0b29sPXRvb2wpCiAKICAgICBkZWYgdGVzdF9z
dHlsZV9xdWV1ZV93aXRoX3dhdGNoX2xpc3RfZXhjZXB0aW9uKHNlbGYpOgogICAgICAgICBleHBl
Y3RlZF9sb2dzID0gewpAQCAtNTIzLDQgKzUzMyw0IEBAIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVt
OiBzdHlsZS1xdWV1ZSAxMDAKICAgICAgICAgICAgICJoYW5kbGVfc2NyaXB0X2Vycm9yIjogIk1P
Q0sgb3V0cHV0XG4iLAogICAgICAgICB9CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbChleGVjdXRp
dmVfdGhyb3dzX3doZW5fcnVuPXNldChbJ2FwcGx5LXdhdGNobGlzdC1sb2NhbCddKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhTdHlsZVF1ZXVlKCksIGV4cGVjdGVkX2xvZ3M9
ZXhwZWN0ZWRfbG9ncywgdG9vbD10b29sKQorICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRw
dXRzKFN0eWxlUXVldWUoaG9zdD1Nb2NrSG9zdCgpKSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9s
b2dzLCB0b29sPXRvb2wpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>