<?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>188235</bug_id>
          
          <creation_ts>2018-08-01 13:09:44 -0700</creation_ts>
          <short_desc>If there&apos;s a radar in the changelog, webkit-patch upload/create-bug should put the radar in the bug and set InRadar</short_desc>
          <delta_ts>2021-11-01 12:49:47 -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>
          
          
          <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="Lucas Forschler">lforschler</reporter>
          <assigned_to name="Lucas Forschler">lforschler</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kocsen_chung</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1446943</commentid>
    <comment_count>0</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-01 13:09:44 -0700</bug_when>
    <thetext>If there&apos;s a radar in the changelog, webkit-patch upload/create-bug should put the radar in the bug and set InRadar</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446944</commentid>
    <comment_count>1</comment_count>
      <attachid>346291</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-01 13:10:02 -0700</bug_when>
    <thetext>Created attachment 346291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446945</commentid>
    <comment_count>2</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-01 13:10:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/33732700&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446954</commentid>
    <comment_count>3</comment_count>
      <attachid>346291</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-08-01 13:32:08 -0700</bug_when>
    <thetext>Comment on attachment 346291
Patch

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

What happens if I post multiple patches to the same bug? Will I get multiple comments with Radar links?

&gt; Tools/Scripts/webkitpy/tool/steps/addradar.py:1
&gt; +# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2018 Apple Inc. All rights reserved.

This doesn&apos;t seem like the right copyright line for new code. It should just include 2018 (or was this copied from elsewhere?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446975</commentid>
    <comment_count>4</comment_count>
      <attachid>346291</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-01 14:03:51 -0700</bug_when>
    <thetext>Comment on attachment 346291
Patch

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

&gt; Tools/Scripts/webkitpy/tool/steps/addradar.py:35
&gt; +        matcher = re.compile(r&apos;(&lt;?rdar:\/\/problems?\/)?(?P&lt;radar_id&gt;-?\d{7,})&gt;?&apos;)

It is not necessary to escape the /. I take it you feel it is common error to write a radar id with less than 7 digits?

&gt; Tools/Scripts/webkitpy/tool/steps/addradar.py:69
&gt; +        changed_files = self.cached_lookup(state, &quot;changed_files&quot;)
&gt; +        for filename in changed_files:
&gt; +            if not self._tool.checkout().is_path_to_changelog(filename):
&gt; +                continue
&gt; +            diff = self._tool.scm().diff_for_file(filename)
&gt; +            radar_link = self._get_radar_link_from_diff(diff)
&gt; +
&gt; +            # Stop looking as soon as we get any radar link
&gt; +            if radar_link:
&gt; +                break

Can we take a similar as in class ValidateChangeLogs? We should also ensure we handle the case where the diff entry may be shifted down because lines at the top of the added entry are identical to lines in the previous entry [1].

[1] &lt;https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitperl/VCSUtils_unittest/fixChangeLogPatchThenSetChangeLogDateAndReviewer.pl?rev=234401#L44&gt; is an example where the diff for the added entry was shifted down such that it excluded the first and second lines of the added entry as they matched the top two lines in the previous entry. This example just illustrates the general problem of shifting.

&gt; Tools/Scripts/webkitpy/tool/steps/addradar_unittest.py:88
&gt; +        2018-07-30  Lucas Forschler  &lt;lforschler@apple.com&gt;
&gt; +
&gt; +                Add Radar info to bugzilla when found in ChangeLog
&gt; +                https://bugs.webkit.org/show_bug.cgi?id=188186
&gt; +                &lt;rdar://problem/1234567&gt;
&gt; +
&gt; +                Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +                * Scripts/webkit-patch:
&gt; +                * Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
&gt; +                (Bugzilla.add_keyword_to_bug):
&gt; +                * Scripts/webkitpy/tool/commands/upload.py:
&gt; +                (Upload):
&gt; +                * Scripts/webkitpy/tool/steps/__init__.py:
&gt; +                * Scripts/webkitpy/tool/steps/addwkbi.py: Added.
&gt; +                (AddWKBI):
&gt; +                (AddWKBI.options):
&gt; +                (AddWKBI.GetRadarLinkFromDiff):
&gt; +                (AddWKBI.run):

These diffs, including this one, represent context. That is, they do not represent an added entry. A diff that represents an added entry should have lines prefixed by &apos;+&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446996</commentid>
    <comment_count>5</comment_count>
      <attachid>346291</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-01 14:35:49 -0700</bug_when>
    <thetext>Comment on attachment 346291
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/tool/steps/addradar.py:69
&gt;&gt; +                break
&gt; 
&gt; Can we take a similar as in class ValidateChangeLogs? We should also ensure we handle the case where the diff entry may be shifted down because lines at the top of the added entry are identical to lines in the previous entry [1].
&gt; 
&gt; [1] &lt;https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitperl/VCSUtils_unittest/fixChangeLogPatchThenSetChangeLogDateAndReviewer.pl?rev=234401#L44&gt; is an example where the diff for the added entry was shifted down such that it excluded the first and second lines of the added entry as they matched the top two lines in the previous entry. This example just illustrates the general problem of shifting.

Actually, we will have a ChangeLog entry at the top of the file by the time this step runs as part of the Upload command. More specifically, we will have a ChangeLog entry at the top of the file once the PrepareChangeLog step runs to completion. We should take a similar approach as in PrepareChangeLog._ensure_bug_url() and use ChangeLog.latest_entry() for the top-most entry and teach ChangeLogEntry how to parse a radar URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447390</commentid>
    <comment_count>6</comment_count>
      <attachid>346420</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-02 14:43:53 -0700</bug_when>
    <thetext>Created attachment 346420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447407</commentid>
    <comment_count>7</comment_count>
      <attachid>346422</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-02 15:22:50 -0700</bug_when>
    <thetext>Created attachment 346422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447695</commentid>
    <comment_count>8</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-03 11:00:25 -0700</bug_when>
    <thetext>(In reply to Andy Estes from comment #3)
&gt; Comment on attachment 346291 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=346291&amp;action=review
&gt; 
&gt; What happens if I post multiple patches to the same bug? Will I get multiple
&gt; comments with Radar links?

this logic will only run when a &apos;new&apos; bugzilla entry is created with &apos;webkit-patch upload&apos;. if you are adding an attachment to an existing bug, this is a no-op.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/addradar.py:1
&gt; &gt; +# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2018 Apple Inc. All rights reserved.
&gt; 
&gt; This doesn&apos;t seem like the right copyright line for new code. It should just
&gt; include 2018 (or was this copied from elsewhere?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447716</commentid>
    <comment_count>9</comment_count>
      <attachid>346422</attachid>
    <who name="Kocsen Chung">kocsen_chung</who>
    <bug_when>2018-08-03 12:01:23 -0700</bug_when>
    <thetext>Comment on attachment 346422
Patch

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

&gt; Tools/ChangeLog:3
&gt; +        If there&apos;s a radar in the changelog, webkit-patch upload/create-bug should put the radar in the bug and set InRadar

nit: ChangeLog
nit: Radar
(Capitalization)

&gt; Tools/Scripts/webkitpy/common/checkout/changelog.py:69
&gt; +    radar_id_regexp = r&apos;(&lt;?rdar://problems?/)?(?P&lt;radar_id&gt;-?\d{7,})&gt;?&apos;

The &quot;rdar://problem&quot; group is listed as optional, this means this would match on any integer with 7+ digits. 
I would assume we need the regex to be more confident if it detected a radar?

&gt; Tools/Scripts/webkitpy/common/checkout/changelog.py:124
&gt; +        if radar_id &lt; 0:

When would this happen? 
I think the regex makes it impossible to have the id be negative. If that&apos;s the case we can get rid of this if statement.

&gt; Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py:857
&gt; +        _log.info(&quot;Adding %s to the keyword list for bug %s&quot; % (keyword, bug_id))

I&apos;m unfamiliar with the rest of this file. Can we use .format() instead?

```python
&quot;Adding {} to the keyword list for bug {}&quot;.format(keyword, bug_id)
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447770</commentid>
    <comment_count>10</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-08-03 14:01:16 -0700</bug_when>
    <thetext>r=me provided Kocsen and Dan&apos;s feedback is incorporated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447783</commentid>
    <comment_count>11</comment_count>
      <attachid>346422</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-03 14:50:33 -0700</bug_when>
    <thetext>Comment on attachment 346422
Patch

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

&gt; Tools/Scripts/webkitpy/common/checkout/changelog.py:117
&gt; +    def _parse_radar_id(cls, text):

The matching in this function and the regex we are using seem too generous because they seem to search for a rdar-looking URL anywhere. I suggest we take a similar approach as in parse_bug_id_from_changelog() and restrict matching to a radar-like URL with zero or more leading whitespace from the start of a ChangeLog line. We should also add test cases for this.

&gt; Tools/Scripts/webkitpy/tool/steps/addradar.py:40
&gt; +        if state.get(&quot;created_new_bug&quot;) != True:

Remove the “!= True” and add “not” after “if”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447785</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-03 14:51:44 -0700</bug_when>
    <thetext>Have you tried running the regex on existing ChangeLogs and measuring the false positive rate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447786</commentid>
    <comment_count>13</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-03 14:52:03 -0700</bug_when>
    <thetext>And false negative rate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448130</commentid>
    <comment_count>14</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-06 09:02:07 -0700</bug_when>
    <thetext>(In reply to Kocsen Chung from comment #9)
&gt; Comment on attachment 346422 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=346422&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:3
&gt; &gt; +        If there&apos;s a radar in the changelog, webkit-patch upload/create-bug should put the radar in the bug and set InRadar
&gt; 
&gt; nit: ChangeLog
&gt; nit: Radar
&gt; (Capitalization)
&gt; 
fixed

&gt; &gt; Tools/Scripts/webkitpy/common/checkout/changelog.py:69
&gt; &gt; +    radar_id_regexp = r&apos;(&lt;?rdar://problems?/)?(?P&lt;radar_id&gt;-?\d{7,})&gt;?&apos;
&gt; 
&gt; The &quot;rdar://problem&quot; group is listed as optional, this means this would
&gt; match on any integer with 7+ digits. 
&gt; I would assume we need the regex to be more confident if it detected a radar?
&gt; 
I&apos;m using the same regex we use in our Internal repository (radar.py). It seems as though people think there may be a better one available. I&apos;m happy to change it, but if we do, let&apos;s change it in both places.

&gt; &gt; Tools/Scripts/webkitpy/common/checkout/changelog.py:124
&gt; &gt; +        if radar_id &lt; 0:
&gt; 
&gt; When would this happen? 
&gt; I think the regex makes it impossible to have the id be negative. If that&apos;s
&gt; the case we can get rid of this if statement.

quite possibly... this code was also borrowed from radar.py, so we should consider a change there as well.


&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py:857
&gt; &gt; +        _log.info(&quot;Adding %s to the keyword list for bug %s&quot; % (keyword, bug_id))
&gt; 
&gt; I&apos;m unfamiliar with the rest of this file. Can we use .format() instead?

I also prefer .format, however this is the convention used in the rest of the tool. I&apos;m open to using the .format notation, but feel it&apos;s better to stick with existing style.

&gt; 
&gt; ```python
&gt; &quot;Adding {} to the keyword list for bug {}&quot;.format(keyword, bug_id)
&gt; ```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448131</commentid>
    <comment_count>15</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-06 09:04:02 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #11)
&gt; Comment on attachment 346422 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=346422&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/checkout/changelog.py:117
&gt; &gt; +    def _parse_radar_id(cls, text):
&gt; 
&gt; The matching in this function and the regex we are using seem too generous
&gt; because they seem to search for a rdar-looking URL anywhere. I suggest we
&gt; take a similar approach as in parse_bug_id_from_changelog() and restrict
&gt; matching to a radar-like URL with zero or more leading whitespace from the
&gt; start of a ChangeLog line. We should also add test cases for this.

This sounds reasonable, I will fix in the next iteration.

&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/addradar.py:40
&gt; &gt; +        if state.get(&quot;created_new_bug&quot;) != True:
&gt; 
&gt; Remove the “!= True” and add “not” after “if”.
fixed in next patch. thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448218</commentid>
    <comment_count>16</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-06 13:30:11 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #12)
&gt; Have you tried running the regex on existing ChangeLogs and measuring the
&gt; false positive rate?

After adding the ^\s* to the start of the regex, I see no false positives or negatives searching every ChangeLog in OpenSource. We no longer identify radar URLs inside the middle of a string as expected. However, the variations of rdar:// URLs inside ChangeLog files are relatively few. The unit tests I have created are significantly more thorough than anything found inside ChangeLogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448475</commentid>
    <comment_count>17</comment_count>
      <attachid>346711</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-07 10:14:21 -0700</bug_when>
    <thetext>Created attachment 346711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448511</commentid>
    <comment_count>18</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-08-07 11:46:04 -0700</bug_when>
    <thetext>Committed r234663: &lt;https://trac.webkit.org/changeset/234663&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810796</commentid>
    <comment_count>19</comment_count>
      <attachid>346711</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-01 12:49:47 -0700</bug_when>
    <thetext>Comment on attachment 346711
Patch

This has been requesting review for more than one year.  If this is still needed, please rebase and re-request review.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346291</attachid>
            <date>2018-08-01 13:10:02 -0700</date>
            <delta_ts>2018-08-02 14:43:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188235-20180801131000.patch</filename>
            <type>text/plain</type>
            <size>13656</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzNDQ2NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE4LTA4LTAxICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBJZiB0aGVyZSdzIGEgcmFkYXIgaW4gdGhlIGNoYW5nZWxvZywgd2Vi
a2l0LXBhdGNoIHVwbG9hZC9jcmVhdGUtYnVnIHNob3VsZCBwdXQgdGhlIHJhZGFyIGluIHRoZSBi
dWcgYW5kIHNldCBJblJhZGFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODgyMzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNzMyNzAwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5OgorICAgICAgICAoQnVnemls
bGEuYWRkX2tleXdvcmRfdG9fYnVnKTogVGVhY2ggdGhlIGJ1Z3ppbGxhIHRvb2xzIGhvdyB0byBh
ZGQgYSBrZXl3b3JkIHRvIHRoZSBidWd6aWxsYSBlbnRyeS4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkLnB5OgorICAgICAgICAoVXBsb2FkKTogQWRkIGEg
bmV3IHN0ZXAgdG8gdGhlICdVcGxvYWQnIHdvcmtmbG93IHRvIGFkZCB0aGUgcmFkYXIgaW5mb3Jt
YXRpb24KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHJhZGFyLnB5OiBBZGRl
ZC4KKyAgICAgICAgKEFkZFJhZGFyKTogQ3JlYXRlIGEgbmV3IGNsYXNzIGZvciBhZGRpbmcgUmFk
YXIgaW5mb3JtYXRpb24gdG8gYnVnemlsbGEKKyAgICAgICAgKEFkZFJhZGFyLl9nZXRfcmFkYXJf
bGlua19mcm9tX2RpZmYpOiByZWdleCBwYXJzZSBvdXIgYSByYWRhciB1cmwgZnJvbSBhIGRpZmYK
KyAgICAgICAgKEFkZFJhZGFyLnJ1bik6IGVudHJ5IHBvaW50IGZvciBkb2luZyB0aGUgd29yayB0
byBleHRyYWN0IHJhZGFyIHVybCwgYWRkIGtleXdvcmQvY29tbWVudHMvY2Mgd2tiaQorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRyYWRhcl91bml0dGVzdC5weTogQWRk
ZWQuCisgICAgICAgIChBZGRSYWRhclRlc3QpOnVuaXQgdGVzdHMgZm9yIGdldF9yYWRhcl9saW5r
IGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgKEFkZFJhZGFyVGVzdC50ZXN0X2dldF9yYWRhcl9saW5r
X2Zyb21fZGlmZl8xKTogdGVzdCAncmRhcjovL3Byb2JsZW0vNDIzNjYzNDUnIGZvcm1hdAorICAg
ICAgICAoQWRkUmFkYXJUZXN0LnRlc3RfZ2V0X3JhZGFyX2xpbmtfZnJvbV9kaWZmXzIpOiB0ZXN0
ICc8cmRhcjovL3Byb2JsZW0vMTIzNDU2Nz4nIGZvcm1hdAorICAgICAgICAoQWRkUmFkYXJUZXN0
LnRlc3RfZ2V0X3JhZGFyX2xpbmtfZnJvbV9kaWZmXzMpOiB0ZXN0IG1pc3NpbmcgcmFkYXIgZm9y
bWF0CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NyZWF0ZWJ1Zy5weTog
c2V0IHRoZSAiY3JlYXRlZF9uZXdfYnVnIiBzdGF0ZSB3aGVuIGEgbmV3IGJ1Z3ppbGxhIGVudHJ5
IGlzIGNyZWF0ZWQKKyAgICAgICAgKENyZWF0ZUJ1Zy5ydW4pOgorCiAyMDE4LTA4LTAxICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjM0NDQzIGFuZCByMjM0NDQ1LgpJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxsYS5weQkocmV2
aXNpb24gMjM0NDY2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3pp
bGxhL2J1Z3ppbGxhLnB5CSh3b3JraW5nIGNvcHkpCkBAIC04NTEsNiArODUxLDE1IEBAIGNsYXNz
IEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgIHNlbGYuYnJvd3NlclsibmV3Y2MiXSA9ICIsICIu
am9pbihlbWFpbF9hZGRyZXNzX2xpc3QpCiAgICAgICAgIHNlbGYuYnJvd3Nlci5zdWJtaXQoKQog
CisgICAgZGVmIGFkZF9rZXl3b3JkX3RvX2J1ZyhzZWxmLCBidWdfaWQsIGtleXdvcmQpOgorICAg
ICAgICBzZWxmLmF1dGhlbnRpY2F0ZSgpCisKKyAgICAgICAgX2xvZy5pbmZvKCJBZGRpbmcgJXMg
dG8gdGhlIGtleXdvcmQgbGlzdCBmb3IgYnVnICVzIiAlIChrZXl3b3JkLCBidWdfaWQpKQorICAg
ICAgICBzZWxmLm9wZW5fdXJsKHNlbGYuYnVnX3VybF9mb3JfYnVnX2lkKGJ1Z19pZCkpCisgICAg
ICAgIHNlbGYuYnJvd3Nlci5zZWxlY3RfZm9ybShuYW1lPSJjaGFuZ2Vmb3JtIikKKyAgICAgICAg
c2VsZi5icm93c2VyWyJrZXl3b3JkcyJdID0ga2V5d29yZAorICAgICAgICBzZWxmLmJyb3dzZXIu
c3VibWl0KCkKKwogICAgIGRlZiBwb3N0X2NvbW1lbnRfdG9fYnVnKHNlbGYsIGJ1Z19pZCwgY29t
bWVudF90ZXh0LCBjYz1Ob25lKToKICAgICAgICAgc2VsZi5hdXRoZW50aWNhdGUoKQogCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkJKHJl
dmlzaW9uIDIzNDQ2NikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91
cGxvYWQucHkJKHdvcmtpbmcgY29weSkKQEAgLTI4NSw2ICsyODUsNyBAQCBjbGFzcyBVcGxvYWQo
QWJzdHJhY3RQYXRjaFVwbG9hZGluZ0NvbW1hCiAgICAgICAgIHN0ZXBzLlN1Z2dlc3RSZXZpZXdl
cnMsCiAgICAgICAgIHN0ZXBzLkVuc3VyZUJ1Z0lzT3BlbkFuZEFzc2lnbmVkLAogICAgICAgICBz
dGVwcy5Qb3N0RGlmZiwKKyAgICAgICAgc3RlcHMuQWRkUmFkYXIsCiAgICAgICAgIHN0ZXBzLlN1
Ym1pdFRvRVdTLAogICAgICAgICBzdGVwcy5XUFRDaGFuZ2VFeHBvcnQsCiAgICAgXQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQkocmV2aXNp
b24gMjM0NDY2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9f
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICMgRklYTUU6IElzIHRoaXMg
dGhlIHJpZ2h0IHdheSB0byBkbyB0aGlzPwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFkZHN2
bm1pbWV0eXBlZm9ycG5nIGltcG9ydCBBZGRTdm5NaW1ldHlwZUZvclBuZworZnJvbSB3ZWJraXRw
eS50b29sLnN0ZXBzLmFkZHJhZGFyIGltcG9ydCBBZGRSYWRhcgogZnJvbSB3ZWJraXRweS50b29s
LnN0ZXBzLmFwcGx5cGF0Y2ggaW1wb3J0IEFwcGx5UGF0Y2gKIGZyb20gd2Via2l0cHkudG9vbC5z
dGVwcy5hcHBseXBhdGNod2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNoV2l0aExvY2Fs
Q29tbWl0CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1wb3J0IEFw
cGx5V2F0Y2hMaXN0CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRk
cmFkYXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L2FkZHJhZGFyLnB5CShub25leGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9hZGRyYWRhci5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc0IEBACisjIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hYnN0cmFjdHN0ZXAgaW1wb3J0IEFi
c3RyYWN0U3RlcAorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuZGlmZl9wYXJzZXIgaW1w
b3J0IERpZmZQYXJzZXIKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy52YWxpZGF0ZWNoYW5nZWxv
Z3MgaW1wb3J0IFZhbGlkYXRlQ2hhbmdlTG9ncworCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHJl
CisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBBZGRSYWRh
cihBYnN0cmFjdFN0ZXApOgorICAgIGRlZiBfZ2V0X3JhZGFyX2xpbmtfZnJvbV9kaWZmKHNlbGYs
IGRpZmYpOgorICAgICAgICBtYXRjaGVyID0gcmUuY29tcGlsZShyJyg8P3JkYXI6XC9cL3Byb2Js
ZW1zP1wvKT8oP1A8cmFkYXJfaWQ+LT9cZHs3LH0pPj8nKQorICAgICAgICBtYXRjaCA9IG1hdGNo
ZXIuc2VhcmNoKGRpZmYpCisKKyAgICAgICAgaWYgbm90IG1hdGNoOgorICAgICAgICAgICAgICAg
IHJldHVybiBOb25lCisKKyAgICAgICAgaWQgPSBpbnQobWF0Y2guZ3JvdXAoJ3JhZGFyX2lkJykp
CisgICAgICAgIGlmIGlkIDwgMDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAg
bGluayA9ICc8cmRhcjovL3Byb2JsZW0ve30+Jy5mb3JtYXQoaWQpCisgICAgICAgIF9sb2cuaW5m
bygiJXMiICUgKGxpbmspKQorCisgICAgICAgIHJldHVybiBsaW5rCisKKyAgICBkZWYgcnVuKHNl
bGYsIHN0YXRlKToKKyAgICAgICAgYnVnX2lkID0gc3RhdGVbImJ1Z19pZCJdCisgICAgICAgIGtl
eXdvcmQgPSAiSW5SYWRhciIKKyAgICAgICAgd2tiaV9lbWFpbCA9IFsid2Via2l0LWJ1Zy1pbXBv
cnRlckBncm91cC5hcHBsZS5jb20iXQorICAgICAgICByYWRhcl9saW5rID0gTm9uZQorCisgICAg
ICAgICMgT25seSBhZGQgUmFkYXIgaW5mb3JtYXRpb24gaWYgd2UgYXJlIG9wZXJhdGluZyBvbiBh
IG5ld2x5IGNyZWF0ZWQgYnVnCisgICAgICAgIGlmIHN0YXRlLmdldCgiY3JlYXRlZF9uZXdfYnVn
IikgIT0gVHJ1ZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGNoYW5nZWRfZmlsZXMg
PSBzZWxmLmNhY2hlZF9sb29rdXAoc3RhdGUsICJjaGFuZ2VkX2ZpbGVzIikKKyAgICAgICAgZm9y
IGZpbGVuYW1lIGluIGNoYW5nZWRfZmlsZXM6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fdG9v
bC5jaGVja291dCgpLmlzX3BhdGhfdG9fY2hhbmdlbG9nKGZpbGVuYW1lKToKKyAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgZGlmZiA9IHNlbGYuX3Rvb2wuc2NtKCkuZGlmZl9m
b3JfZmlsZShmaWxlbmFtZSkKKyAgICAgICAgICAgIHJhZGFyX2xpbmsgPSBzZWxmLl9nZXRfcmFk
YXJfbGlua19mcm9tX2RpZmYoZGlmZikKKworICAgICAgICAgICAgIyBTdG9wIGxvb2tpbmcgYXMg
c29vbiBhcyB3ZSBnZXQgYW55IHJhZGFyIGxpbmsKKyAgICAgICAgICAgIGlmIHJhZGFyX2xpbms6
CisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBpZiByYWRhcl9saW5rOgorICAgICAg
ICAgICAgc2VsZi5fdG9vbC5idWdzLmFkZF9rZXl3b3JkX3RvX2J1ZyhidWdfaWQsIGtleXdvcmQp
CisgICAgICAgICAgICBzZWxmLl90b29sLmJ1Z3MucG9zdF9jb21tZW50X3RvX2J1ZyhidWdfaWQs
IHJhZGFyX2xpbmspCisgICAgICAgICAgICBzZWxmLl90b29sLmJ1Z3MuYWRkX2NjX3RvX2J1Zyhi
dWdfaWQsIHdrYmlfZW1haWwpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvYWRkcmFkYXJfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL2FkZHJhZGFyX3VuaXR0ZXN0LnB5CShub25leGlzdGVudCkKKysrIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRyYWRhcl91bml0dGVzdC5weQkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDExMCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDksIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRl
c3QKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91
dHB1dENhcHR1cmUKK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlv
bnMsIE1vY2tUb29sCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWRkcmFkYXIgaW1wb3J0IEFk
ZFJhZGFyCisKKworY2xhc3MgQWRkUmFkYXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBk
ZWYgdGVzdF9nZXRfcmFkYXJfbGlua19mcm9tX2RpZmZfMShzZWxmKToKKyAgICAgICAgY2FwdHVy
ZSA9IE91dHB1dENhcHR1cmUoKQorICAgICAgICBvcHRpb25zID0gTW9ja09wdGlvbnMoKQorICAg
ICAgICBzdGVwID0gQWRkUmFkYXIoTW9ja1Rvb2woKSwgb3B0aW9ucykKKyAgICAgICAgb3B0aW9u
cy5kaWZmID0gIiIiCisgICAgICAgICAgICAyMDE4LTA3LTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgICAgICAgICAgICAgIEJlIG1vcmUgY29uc2Vy
dmF0aXZlIHdpdGggY29tcG9zaXRpbmcgbGF5ZXIgY3JlYXRpb24gd2hlbiBtZW1vcnkgaXMgbG93
CisgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODc4NjYKKyAgICAgICAgICAgICAgICAgICAgcmRhcjovL3Byb2JsZW0vNDIzNjYzNDUK
KworICAgICAgICAgICAgICAgICAgICBSZXZpZXdlZCBieSBaYWxhbiBCdWp0YXMuCisKKyAgICAg
ICAgICAgICAgICAgICAgV2hlbiBwcm9jZXNzIHBoeXNpY2FsIGZvb3RwcmludCBpcyBhYm92ZSBh
IGZyYWN0aW9uIG9mIHRoZSBqZXRzYW0gbGltaXQsIGJlIG1vcmUgY29uc2VydmF0aXZlIGluIG1h
a2luZworICAgICAgICAgICAgICAgICAgICBjb21wb3NpdGluZyBsYXllcnMuIFdlIGF2b2lkIGNv
bXBvc2l0aW5nIGZvciB0aGVzZSBzaXR1YXRpb25zOgorICAgICAgICAgICAgICAgICAgICAxLiBM
YXllcnMgd2l0aCAzRCB0cmFuc2Zvcm1zIHdoaWNoIGFyZSBhZmZpbmUgKGxpa2UgdHJhbnNsYXRl
WigwKSkuCisgICAgICAgICAgICAgICAgICAgIDIuIExheWVycyB3aXRoIHdpbGwtY2hhbmdlCisg
ICAgICAgICAgICAgICAgICAgIDMuIExheWVycyBmb3IgY2FudmFzZXMgKG90aGVyIHRoYW4gV2Vi
R0wvV2ViR1BVKQorCisgICAgICAgICAgICAgICAgICAgIFdlIHJldXNlIHNvbWUgbWFjT1MgY29k
ZSBpbiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKSBidXQgY2hvb3NlIGRpZmZlcmVudCB0aHJlc2hv
bGRzIGZvciBpT1MsCisgICAgICAgICAgICAgICAgICAgIGZhbGxpbmcgaW50byAiY29uc2VydmF0
aXZlIG1vZGUiIGF0IDUwJSBvZiBqZXRzYW0gbGltaXQsIGFuZCAic3RyaWN0IG1vZGUiIGF0IDY1
JS4KKyAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRpbmcgY2hvb3NlcyB0byBiZSBtb3JlIGNv
bnNlcnZhdGl2ZSBpbiBlaXRoZXIgImNvbnNlcnZhdGl2ZSIgb3IgInN0cmljdCIgbWVtb3J5IG1v
ZGVzLgorCisgICAgICAgICAgICAgICAgICAgIFBsdW1iIHRocm91Z2ggYSAiY29tcG9zaXRpbmdQ
b2xpY3lPdmVycmlkZSIgYm90aCBzbyB0aGF0IG9uLWRldmljZSB0ZXN0aW5nIGlzbid0CisgICAg
ICAgICAgICAgICAgICAgIGZsYWtpbHkgZmFsbGluZyBpbnRvIGEgZGlmZmVyZW50IG1vZGUsIGFu
ZCBzbyB0aGF0IHdlIGNhbiBpbXBvc2UgdGhlIGNvbnNlcnZhdGl2ZQorICAgICAgICAgICAgICAg
ICAgICBtb2RlIGZvciB0ZXN0aW5nLgorCisgICAgICAgICAgICAgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAg
ICAgICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnByZXBhcmUpOgorICAgICAgICAg
ICAgIiIiCisKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICI8cmRhcjovL3Byb2JsZW0vNDIzNjYz
NDU+XG4iCisgICAgICAgIGNhcHR1cmUuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5fZ2V0X3Jh
ZGFyX2xpbmtfZnJvbV9kaWZmLCBbb3B0aW9ucy5kaWZmXSwgZXhwZWN0ZWRfbG9ncz1leHBlY3Rl
ZF9sb2dzKQorCisgICAgZGVmIHRlc3RfZ2V0X3JhZGFyX2xpbmtfZnJvbV9kaWZmXzIoc2VsZik6
CisgICAgICAgIGNhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKKyAgICAgICAgb3B0aW9ucyA9IE1v
Y2tPcHRpb25zKCkKKyAgICAgICAgc3RlcCA9IEFkZFJhZGFyKE1vY2tUb29sKCksIG9wdGlvbnMp
CisgICAgICAgIG9wdGlvbnMuZGlmZiA9ICIiIgorICAgICAgICAyMDE4LTA3LTMwICBMdWNhcyBG
b3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxlLmNvbT4KKworICAgICAgICAgICAgICAgIEFkZCBS
YWRhciBpbmZvIHRvIGJ1Z3ppbGxhIHdoZW4gZm91bmQgaW4gQ2hhbmdlTG9nCisgICAgICAgICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODE4NgorICAg
ICAgICAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjM0NTY3PgorCisgICAgICAgICAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgICAgICAgICAqIFNjcmlwdHMv
d2Via2l0LXBhdGNoOgorICAgICAgICAgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5OgorICAgICAgICAgICAgICAgIChCdWd6aWxsYS5hZGRf
a2V5d29yZF90b19idWcpOgorICAgICAgICAgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3VwbG9hZC5weToKKyAgICAgICAgICAgICAgICAoVXBsb2FkKToKKyAgICAgICAg
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weToKKyAgICAg
ICAgICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGR3a2JpLnB5OiBBZGRl
ZC4KKyAgICAgICAgICAgICAgICAoQWRkV0tCSSk6CisgICAgICAgICAgICAgICAgKEFkZFdLQkku
b3B0aW9ucyk6CisgICAgICAgICAgICAgICAgKEFkZFdLQkkuR2V0UmFkYXJMaW5rRnJvbURpZmYp
OgorICAgICAgICAgICAgICAgIChBZGRXS0JJLnJ1bik6CisgICAgICAgICIiIgorCisgICAgICAg
IGV4cGVjdGVkX2xvZ3MgPSAiPHJkYXI6Ly9wcm9ibGVtLzEyMzQ1Njc+XG4iCisgICAgICAgIGNh
cHR1cmUuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5fZ2V0X3JhZGFyX2xpbmtfZnJvbV9kaWZm
LCBbb3B0aW9ucy5kaWZmXSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVm
IHRlc3RfZ2V0X3JhZGFyX2xpbmtfZnJvbV9kaWZmXzMoc2VsZik6CisgICAgICAgIGNhcHR1cmUg
PSBPdXRwdXRDYXB0dXJlKCkKKyAgICAgICAgb3B0aW9ucyA9IE1vY2tPcHRpb25zKCkKKyAgICAg
ICAgc3RlcCA9IEFkZFJhZGFyKE1vY2tUb29sKCksIG9wdGlvbnMpCisgICAgICAgIG9wdGlvbnMu
ZGlmZiA9ICIiIgorICAgICAgICAyMDE4LTA3LTMwICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2No
bGVyQGFwcGxlLmNvbT4KKworICAgICAgICAgICAgICAgIEFkZCBSYWRhciBpbmZvIHRvIGJ1Z3pp
bGxhIHdoZW4gZm91bmQgaW4gQ2hhbmdlTG9nCisgICAgICAgICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODE4NgorICAgICAgICAgICAgICAgIChBZGRX
S0JJKToKKyAgICAgICAgICAgICAgICAoQWRkV0tCSS5vcHRpb25zKToKKyAgICAgICAgICAgICAg
ICAoQWRkV0tCSS5HZXRSYWRhckxpbmtGcm9tRGlmZik6CisgICAgICAgICAgICAgICAgKEFkZFdL
QkkucnVuKToKKyAgICAgICAgIiIiCisKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9IE5vbmUKKyAg
ICAgICAgY2FwdHVyZS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLl9nZXRfcmFkYXJfbGlua19m
cm9tX2RpZmYsIFtvcHRpb25zLmRpZmZdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY3JlYXRlYnVnLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jcmVhdGVidWcucHkJ
KHJldmlzaW9uIDIzNDQ2NikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9j
cmVhdGVidWcucHkJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgQ3JlYXRl
QnVnKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBibG9ja2VkX2J1Z3MgPSBzdGF0ZS5nZXQo
ImJ1Z19pZF9saXN0IiwgW10pCiAgICAgICAgIGJsb2NrcyA9ICIsICIuam9pbihzdHIoYnVnKSBm
b3IgYnVnIGluIGJsb2NrZWRfYnVncyBpZiBidWcpCiAgICAgICAgIHN0YXRlWyJidWdfaWQiXSA9
IHNlbGYuX3Rvb2wuYnVncy5jcmVhdGVfYnVnKHN0YXRlWyJidWdfdGl0bGUiXSwgc3RhdGVbImJ1
Z19kZXNjcmlwdGlvbiJdLCBibG9ja2VkPWJsb2NrcywgY29tcG9uZW50PXNlbGYuX29wdGlvbnMu
Y29tcG9uZW50LCBjYz1jYykKKyAgICAgICAgc3RhdGVbImNyZWF0ZWRfbmV3X2J1ZyJdID0gVHJ1
ZQogICAgICAgICBmb3IgYmxvY2tlZF9idWcgaW4gYmxvY2tlZF9idWdzOgogICAgICAgICAgICAg
aWYgYmxvY2tlZF9idWc6CiAgICAgICAgICAgICAgICAgc3RhdHVzID0gc2VsZi5fdG9vbC5idWdz
LmZldGNoX2J1ZyhibG9ja2VkX2J1Zykuc3RhdHVzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346420</attachid>
            <date>2018-08-02 14:43:53 -0700</date>
            <delta_ts>2018-08-02 15:22:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188235-20180802144353.patch</filename>
            <type>text/plain</type>
            <size>11101</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzNDUxNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE4LTA4LTAyICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBJZiB0aGVyZSdzIGEgcmFkYXIgaW4gdGhlIGNoYW5nZWxvZywgd2Vi
a2l0LXBhdGNoIHVwbG9hZC9jcmVhdGUtYnVnIHNob3VsZCBwdXQgdGhlIHJhZGFyIGluIHRoZSBi
dWcgYW5kIHNldCBJblJhZGFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODgyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZy5w
eTogCisgICAgICAgIChDaGFuZ2VMb2dFbnRyeSk6IFRlYWNoIHRoZSBDaGFuZ2VMb2cgdG9vbHMg
aG93IHRvIHBhcnNlIGEgcmFkYXJfaWQKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9jaGFuZ2Vsb2dfdW5pdHRlc3QucHk6IFRlc3Qgb3V0IHRoZSBuZXcgX3BhcnNl
X3JhZGFyX2lkIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHk6CisgICAgICAgIChCdWd6aWxsYS5hZGRfa2V5d29y
ZF90b19idWcpOiBBZGQgbG9naWMgdG8gYWRkIGtleXdvcmRzIHVzaW5nIHRoZSBjaGFuZ2Vmb3Jt
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weToKKyAg
ICAgICAgKFVwbG9hZCk6IFRlYWNoIHRoZSB1cGxvYWQgc3RlcCBob3cgdG8gYWRkIHJhZGFyIGlu
Zm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBuZXcgYnVnLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvYWRkcmFkYXIucHk6IEFkZGVkLgorICAgICAgICAoQWRkUmFkYXIpOgorICAg
ICAgICAoQWRkUmFkYXIucnVuKTogQ29udGFpbnMgdGhlIGxvZ2ljIHRvIGFkZCB0aGUgcmFkYXIg
aW5mb3JtYXRpb24gdG8gYnVnemlsbGEuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2NyZWF0ZWJ1Zy5weToKKyAgICAgICAgKENyZWF0ZUJ1Zy5ydW4pOiBzZXQgYSAiY3Jl
YXRlZF9uZXdfYnVnIiBzdGF0ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IGJ1Z3ppbGxhIGJ1Zy4KKwog
MjAxOC0wOC0wMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eGVkIFdlYktpdC5BdHRyU3R5bGUgdGltaW5nIG91dCBvbiBidWlsZC53ZWJraXQub3JnLgpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5n
ZWxvZy5weQkocmV2aXNpb24gMjM0NTA0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvY2hhbmdlbG9nLnB5CSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw4IEBA
IGNsYXNzIENoYW5nZUxvZ0VudHJ5KG9iamVjdCk6CiAgICAgIyBlLmcuIChDaGFuZ2VMb2dFbnRy
eS50b3VjaGVkX2Z1bmN0aW9ucyk6IEFkZGVkLgogICAgIHRvdWNoZWRfZnVuY3Rpb25zX3JlZ2V4
cCA9IHInXlxzKlwoKD9QPGZ1bmN0aW9uPlteKV0qKVwpOicKIAorICAgIHJhZGFyX2lkX3JlZ2V4
cCA9IHInKDw/cmRhcjpcL1wvcHJvYmxlbXM/XC8pPyg/UDxyYWRhcl9pZD4tP1xkezcsfSk+PycK
KwogICAgICMgZS5nLiBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KICAgICAjIChEaXNjYXJkIGV2
ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IHBlcmlvZCB0byBtYXRjaCBtb3JlIGludmFsaWQgbGlu
ZXMuKQogICAgIHJldmlld2VkX2J5X3JlZ2V4cCA9IHInXlxzKigoXHcrXHMrKSthbmRccyspPyhS
ZXZpZXd8UnViYmVyKFxzKnwtKXN0YW1wKShzfGVkKT9ccysoW2Etel0rXHMrKSo/YnlccysoP1A8
cmV2aWV3ZXI+Lio/KVtcLixdP1xzKiQnCkBAIC0xMTIsNiArMTE0LDE5IEBAIGNsYXNzIENoYW5n
ZUxvZ0VudHJ5KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3BhcnNlX2VudHJ5KCkKIAogICAgIEBj
bGFzc21ldGhvZAorICAgIGRlZiBfcGFyc2VfcmFkYXJfaWQoY2xzLCB0ZXh0KToKKyAgICAgICAg
aWYgbm90IHRleHQ6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBtYXRjaCA9IHJl
LnNlYXJjaChDaGFuZ2VMb2dFbnRyeS5yYWRhcl9pZF9yZWdleHAsIHRleHQsIHJlLk1VTFRJTElO
RSB8IHJlLklHTk9SRUNBU0UpCisgICAgICAgIGlmIG5vdCBtYXRjaDoKKyAgICAgICAgICAgIHJl
dHVybiBOb25lCisgICAgICAgIHJhZGFyX2lkID0gaW50KG1hdGNoLmdyb3VwKCdyYWRhcl9pZCcp
KQorICAgICAgICBpZiByYWRhcl9pZCA8IDA6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisg
ICAgICAgIHJldHVybiByYWRhcl9pZAorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIF9wYXJz
ZV9yZXZpZXdlcl90ZXh0KGNscywgdGV4dCk6CiAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKENo
YW5nZUxvZ0VudHJ5LnJldmlld2VkX2J5X3JlZ2V4cCwgdGV4dCwgcmUuTVVMVElMSU5FIHwgcmUu
SUdOT1JFQ0FTRSkKICAgICAgICAgaWYgbm90IG1hdGNoOgpJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZ191bml0
dGVzdC5weQkocmV2aXNpb24gMjM0NTA0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC00MDcs
NiArNDA3LDQzIEBAIGNsYXNzIENoYW5nZUxvZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
IGRlZiBfY29udHJpYnV0b3JzKHNlbGYsIG5hbWVzKToKICAgICAgICAgcmV0dXJuIFtDb21taXR0
ZXJMaXN0KCkuY29udHJpYnV0b3JfYnlfbmFtZShuYW1lKSBmb3IgbmFtZSBpbiBuYW1lc10KIAor
ICAgIGRlZiBfYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKHNlbGYsIHJhZGFyX3RleHQsIGV4cGVj
dGVkX3JhZGFyX2lkKToKKyAgICAgICAgcGFyc2VkX3JhZGFyX2lkID0gQ2hhbmdlTG9nRW50cnku
X3BhcnNlX3JhZGFyX2lkKHJhZGFyX3RleHQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFy
c2VkX3JhZGFyX2lkLCBleHBlY3RlZF9yYWRhcl9pZCkKKworICAgIGRlZiB0ZXN0X2Z1enp5X3Jh
ZGFyX21hdGNoX19ub25lKHNlbGYpOgorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJf
bWF0Y2goTm9uZSwgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNo
KCcnLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJ1RoZXJl
IGlzIG5vIHJkYXIgbGluayBoZXJlJywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5
X3JhZGFyX21hdGNoKCdUaGVyZSBpcyBubyByZGFyOi8vIGxpbmsgaGVyZScsIE5vbmUpCisgICAg
ICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnVGhlcmUgaXMgbm8gbWFsZm9ybWVk
IHJkYXI6Ly9hYmNkIGxpbmsgaGVyZScsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6
eV9yYWRhcl9tYXRjaCgnVGhlcmUgaXMgbm8gbWFsZm9ybWVkIHJkYXI6Ly9wcm9ibGVtIGxpbmsg
aGVyZScsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnVGhl
cmUgaXMgbm8gbWFsZm9ybWVkIHJkYXI6Ly9wcm9ibGVtL2FiY2RlZmdoIGxpbmsgaGVyZScsIE5v
bmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnVGhlcmUgaXMgbm8g
bWFsZm9ybWVkIHJkYXI6Ly9wcm9ibGVtLzEyMzQgbGluayBoZXJlJywgTm9uZSkKKworICAgIGRl
ZiB0ZXN0X2Z1enp5X3JhZGFyX21hdGNoX2Zvcm1hdF8xKHNlbGYpOgorICAgICAgICBzZWxmLl9h
c3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJzxyZGFyOi8vcHJvYmxlbS8xMjM0NTY3PicsIDEyMzQ1
NjcpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly9wcm9i
bGVtLzEyMzQ1Njc4PicsIDEyMzQ1Njc4KQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFk
YXJfbWF0Y2goJzxyZGFyOi8vMTIzNDU2Nz4nLCAxMjM0NTY3KQorICAgICAgICBzZWxmLl9hc3Nl
cnRfZnV6enlfcmFkYXJfbWF0Y2goJzxyZGFyOi8vMTIzNDU2Nzg+JywgMTIzNDU2NzgpCisKKyAg
ICBkZWYgdGVzdF9mdXp6eV9yYWRhcl9tYXRjaF9mb3JtYXRfMihzZWxmKToKKyAgICAgICAgc2Vs
Zi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCdyZGFyOi8vcHJvYmxlbS8yMzQ1Njc4JywgMjM0
NTY3OCkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCdyZGFyOi8vMzQ1
Njc4OScsIDM0NTY3ODkpCisKKyAgICBkZWYgdGVzdF9mdXp6eV9yYWRhcl9tYXRjaF9mb3JtYXRf
MyhzZWxmKToKKyAgICAgICAgY29udGVudHMgPSAiIiIKKyAgICAgICAgMjAxMS0wMy0yMyAgT2ph
biBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgICAgICAgICAgQWRkIGZhaWxp
bmcgcmVzdWx0IGZvciBXZWJLaXQyLiBBbGwgdGVzdHMgdGhhdCByZXF1aXJlCisgICAgICAgICAg
ICAgICAgZm9jdXMgZmFpbCBvbiBXZWJLaXQyLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU2OTg4LgorICAgICAgICAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
MjgyNDIyOD4KKworICAgICAgICAgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Nzcy9w
c2V1ZG8tYW55LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKKyAgICAgICAgICAgICAgICcnJyIiIgor
ICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goY29udGVudHMsIDQyODI0MjI4
KQorCiAgICAgZGVmIF9hc3NlcnRfZnV6enlfcmV2aWV3ZXJfbWF0Y2goc2VsZiwgcmV2aWV3ZXJf
dGV4dCwgZXhwZWN0ZWRfdGV4dF9saXN0LCBleHBlY3RlZF9jb250cmlidXRvcnMpOgogICAgICAg
ICB1bnVzZWQsIHJldmlld2VyX3RleHRfbGlzdCA9IENoYW5nZUxvZ0VudHJ5Ll9wYXJzZV9yZXZp
ZXdlcl90ZXh0KHJldmlld2VyX3RleHQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV2aWV3
ZXJfdGV4dF9saXN0LCBleHBlY3RlZF90ZXh0X2xpc3QpCkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5CShyZXZp
c2lvbiAyMzQ1MDQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemls
bGEvYnVnemlsbGEucHkJKHdvcmtpbmcgY29weSkKQEAgLTg1MSw2ICs4NTEsMTUgQEAgY2xhc3Mg
QnVnemlsbGEob2JqZWN0KToKICAgICAgICAgc2VsZi5icm93c2VyWyJuZXdjYyJdID0gIiwgIi5q
b2luKGVtYWlsX2FkZHJlc3NfbGlzdCkKICAgICAgICAgc2VsZi5icm93c2VyLnN1Ym1pdCgpCiAK
KyAgICBkZWYgYWRkX2tleXdvcmRfdG9fYnVnKHNlbGYsIGJ1Z19pZCwga2V5d29yZCk6CisgICAg
ICAgIHNlbGYuYXV0aGVudGljYXRlKCkKKworICAgICAgICBfbG9nLmluZm8oIkFkZGluZyAlcyB0
byB0aGUga2V5d29yZCBsaXN0IGZvciBidWcgJXMiICUgKGtleXdvcmQsIGJ1Z19pZCkpCisgICAg
ICAgIHNlbGYub3Blbl91cmwoc2VsZi5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKSkKKyAgICAg
ICAgc2VsZi5icm93c2VyLnNlbGVjdF9mb3JtKG5hbWU9ImNoYW5nZWZvcm0iKQorICAgICAgICBz
ZWxmLmJyb3dzZXJbImtleXdvcmRzIl0gPSBrZXl3b3JkCisgICAgICAgIHNlbGYuYnJvd3Nlci5z
dWJtaXQoKQorCiAgICAgZGVmIHBvc3RfY29tbWVudF90b19idWcoc2VsZiwgYnVnX2lkLCBjb21t
ZW50X3RleHQsIGNjPU5vbmUpOgogICAgICAgICBzZWxmLmF1dGhlbnRpY2F0ZSgpCiAKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weQkocmV2
aXNpb24gMjM0NTA0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3Vw
bG9hZC5weQkod29ya2luZyBjb3B5KQpAQCAtMjg1LDYgKzI4NSw3IEBAIGNsYXNzIFVwbG9hZChB
YnN0cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWEKICAgICAgICAgc3RlcHMuU3VnZ2VzdFJldmlld2Vy
cywKICAgICAgICAgc3RlcHMuRW5zdXJlQnVnSXNPcGVuQW5kQXNzaWduZWQsCiAgICAgICAgIHN0
ZXBzLlBvc3REaWZmLAorICAgICAgICBzdGVwcy5BZGRSYWRhciwKICAgICAgICAgc3RlcHMuU3Vi
bWl0VG9FV1MsCiAgICAgICAgIHN0ZXBzLldQVENoYW5nZUV4cG9ydCwKICAgICBdCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CShyZXZpc2lv
biAyMzQ1MDQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18u
cHkJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogIyBGSVhNRTogSXMgdGhpcyB0
aGUgcmlnaHQgd2F5IHRvIGRvIHRoaXM/CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWRkc3Zu
bWltZXR5cGVmb3JwbmcgaW1wb3J0IEFkZFN2bk1pbWV0eXBlRm9yUG5nCitmcm9tIHdlYmtpdHB5
LnRvb2wuc3RlcHMuYWRkcmFkYXIgaW1wb3J0IEFkZFJhZGFyCiBmcm9tIHdlYmtpdHB5LnRvb2wu
c3RlcHMuYXBwbHlwYXRjaCBpbXBvcnQgQXBwbHlQYXRjaAogZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLmFwcGx5cGF0Y2h3aXRobG9jYWxjb21taXQgaW1wb3J0IEFwcGx5UGF0Y2hXaXRoTG9jYWxD
b21taXQKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXdhdGNobGlzdCBpbXBvcnQgQXBw
bHlXYXRjaExpc3QKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRy
YWRhci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
YWRkcmFkYXIucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2FkZHJhZGFyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTMgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5jaGVja291dC5jaGFuZ2Vsb2cgaW1wb3J0ICoKKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBy
ZQorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgQWRkUmFk
YXIoQWJzdHJhY3RTdGVwKToKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAgICAgICAgYnVn
X2lkID0gc3RhdGVbImJ1Z19pZCJdCisgICAgICAgIGtleXdvcmQgPSAiSW5SYWRhciIKKyAgICAg
ICAgd2tiaV9lbWFpbCA9IFsid2Via2l0LWJ1Zy1pbXBvcnRlckBncm91cC5hcHBsZS5jb20iXQor
ICAgICAgICByYWRhcl9saW5rID0gTm9uZQorCisgICAgICAgICMgT25seSBhZGQgUmFkYXIgaW5m
b3JtYXRpb24gaWYgd2UgYXJlIG9wZXJhdGluZyBvbiBhIG5ld2x5IGNyZWF0ZWQgYnVnCisgICAg
ICAgIGlmIHN0YXRlLmdldCgiY3JlYXRlZF9uZXdfYnVnIikgIT0gVHJ1ZToKKyAgICAgICAgICAg
IHJldHVybgorCisgICAgICAgIGZvciBjaGFuZ2Vsb2dfcGF0aCBpbiBzZWxmLmNhY2hlZF9sb29r
dXAoc3RhdGUsICJjaGFuZ2Vsb2dzIik6CisgICAgICAgICAgICBjaGFuZ2Vsb2dfZW50cnkgPSBD
aGFuZ2VMb2coY2hhbmdlbG9nX3BhdGgpLmxhdGVzdF9lbnRyeSgpCisgICAgICAgICAgICByYWRh
cl9pZCA9IENoYW5nZUxvZ0VudHJ5Ll9wYXJzZV9yYWRhcl9pZChjaGFuZ2Vsb2dfZW50cnkuY29u
dGVudHMoKSkKKyAgICAgICAgICAgIGlmIHJhZGFyX2lkOgorICAgICAgICAgICAgICAgIHJhZGFy
X2xpbmsgPSAiPHJkYXI6Ly9wcm9ibGVtL3t9PiIuZm9ybWF0KHJhZGFyX2lkKQorICAgICAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgaWYgcmFkYXJfbGluazoKKyAgICAgICAgICAgIHNlbGYu
X3Rvb2wuYnVncy5hZGRfa2V5d29yZF90b19idWcoYnVnX2lkLCBrZXl3b3JkKQorICAgICAgICAg
ICAgc2VsZi5fdG9vbC5idWdzLnBvc3RfY29tbWVudF90b19idWcoYnVnX2lkLCByYWRhcl9saW5r
KQorICAgICAgICAgICAgc2VsZi5fdG9vbC5idWdzLmFkZF9jY190b19idWcoYnVnX2lkLCB3a2Jp
X2VtYWlsKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NyZWF0ZWJ1
Zy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY3Jl
YXRlYnVnLnB5CShyZXZpc2lvbiAyMzQ1MDQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvY3JlYXRlYnVnLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIGNs
YXNzIENyZWF0ZUJ1ZyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgYmxvY2tlZF9idWdzID0g
c3RhdGUuZ2V0KCJidWdfaWRfbGlzdCIsIFtdKQogICAgICAgICBibG9ja3MgPSAiLCAiLmpvaW4o
c3RyKGJ1ZykgZm9yIGJ1ZyBpbiBibG9ja2VkX2J1Z3MgaWYgYnVnKQogICAgICAgICBzdGF0ZVsi
YnVnX2lkIl0gPSBzZWxmLl90b29sLmJ1Z3MuY3JlYXRlX2J1ZyhzdGF0ZVsiYnVnX3RpdGxlIl0s
IHN0YXRlWyJidWdfZGVzY3JpcHRpb24iXSwgYmxvY2tlZD1ibG9ja3MsIGNvbXBvbmVudD1zZWxm
Ll9vcHRpb25zLmNvbXBvbmVudCwgY2M9Y2MpCisgICAgICAgIHN0YXRlWyJjcmVhdGVkX25ld19i
dWciXSA9IFRydWUKICAgICAgICAgZm9yIGJsb2NrZWRfYnVnIGluIGJsb2NrZWRfYnVnczoKICAg
ICAgICAgICAgIGlmIGJsb2NrZWRfYnVnOgogICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNlbGYu
X3Rvb2wuYnVncy5mZXRjaF9idWcoYmxvY2tlZF9idWcpLnN0YXR1cygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346422</attachid>
            <date>2018-08-02 15:22:50 -0700</date>
            <delta_ts>2018-08-07 10:14:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188235-20180802152249.patch</filename>
            <type>text/plain</type>
            <size>11098</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzNDUxNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE4LTA4LTAyICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBJZiB0aGVyZSdzIGEgcmFkYXIgaW4gdGhlIGNoYW5nZWxvZywgd2Vi
a2l0LXBhdGNoIHVwbG9hZC9jcmVhdGUtYnVnIHNob3VsZCBwdXQgdGhlIHJhZGFyIGluIHRoZSBi
dWcgYW5kIHNldCBJblJhZGFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODgyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZy5w
eTogCisgICAgICAgIChDaGFuZ2VMb2dFbnRyeSk6IFRlYWNoIHRoZSBDaGFuZ2VMb2cgdG9vbHMg
aG93IHRvIHBhcnNlIGEgcmFkYXJfaWQKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9jaGFuZ2Vsb2dfdW5pdHRlc3QucHk6IFRlc3Qgb3V0IHRoZSBuZXcgX3BhcnNl
X3JhZGFyX2lkIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHk6CisgICAgICAgIChCdWd6aWxsYS5hZGRfa2V5d29y
ZF90b19idWcpOiBBZGQgbG9naWMgdG8gYWRkIGtleXdvcmRzIHVzaW5nIHRoZSBjaGFuZ2Vmb3Jt
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weToKKyAg
ICAgICAgKFVwbG9hZCk6IFRlYWNoIHRoZSB1cGxvYWQgc3RlcCBob3cgdG8gYWRkIHJhZGFyIGlu
Zm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBuZXcgYnVnLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvYWRkcmFkYXIucHk6IEFkZGVkLgorICAgICAgICAoQWRkUmFkYXIpOgorICAg
ICAgICAoQWRkUmFkYXIucnVuKTogQ29udGFpbnMgdGhlIGxvZ2ljIHRvIGFkZCB0aGUgcmFkYXIg
aW5mb3JtYXRpb24gdG8gYnVnemlsbGEuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2NyZWF0ZWJ1Zy5weToKKyAgICAgICAgKENyZWF0ZUJ1Zy5ydW4pOiBzZXQgYSAiY3Jl
YXRlZF9uZXdfYnVnIiBzdGF0ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IGJ1Z3ppbGxhIGJ1Zy4KKwog
MjAxOC0wOC0wMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eGVkIFdlYktpdC5BdHRyU3R5bGUgdGltaW5nIG91dCBvbiBidWlsZC53ZWJraXQub3JnLgpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5n
ZWxvZy5weQkocmV2aXNpb24gMjM0NTA0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvY2hhbmdlbG9nLnB5CSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw4IEBA
IGNsYXNzIENoYW5nZUxvZ0VudHJ5KG9iamVjdCk6CiAgICAgIyBlLmcuIChDaGFuZ2VMb2dFbnRy
eS50b3VjaGVkX2Z1bmN0aW9ucyk6IEFkZGVkLgogICAgIHRvdWNoZWRfZnVuY3Rpb25zX3JlZ2V4
cCA9IHInXlxzKlwoKD9QPGZ1bmN0aW9uPlteKV0qKVwpOicKIAorICAgIHJhZGFyX2lkX3JlZ2V4
cCA9IHInKDw/cmRhcjovL3Byb2JsZW1zPy8pPyg/UDxyYWRhcl9pZD4tP1xkezcsfSk+PycKKwog
ICAgICMgZS5nLiBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KICAgICAjIChEaXNjYXJkIGV2ZXJ5
dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IHBlcmlvZCB0byBtYXRjaCBtb3JlIGludmFsaWQgbGluZXMu
KQogICAgIHJldmlld2VkX2J5X3JlZ2V4cCA9IHInXlxzKigoXHcrXHMrKSthbmRccyspPyhSZXZp
ZXd8UnViYmVyKFxzKnwtKXN0YW1wKShzfGVkKT9ccysoW2Etel0rXHMrKSo/YnlccysoP1A8cmV2
aWV3ZXI+Lio/KVtcLixdP1xzKiQnCkBAIC0xMTIsNiArMTE0LDE5IEBAIGNsYXNzIENoYW5nZUxv
Z0VudHJ5KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3BhcnNlX2VudHJ5KCkKIAogICAgIEBjbGFz
c21ldGhvZAorICAgIGRlZiBfcGFyc2VfcmFkYXJfaWQoY2xzLCB0ZXh0KToKKyAgICAgICAgaWYg
bm90IHRleHQ6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBtYXRjaCA9IHJlLnNl
YXJjaChDaGFuZ2VMb2dFbnRyeS5yYWRhcl9pZF9yZWdleHAsIHRleHQsIHJlLk1VTFRJTElORSB8
IHJlLklHTk9SRUNBU0UpCisgICAgICAgIGlmIG5vdCBtYXRjaDoKKyAgICAgICAgICAgIHJldHVy
biBOb25lCisgICAgICAgIHJhZGFyX2lkID0gaW50KG1hdGNoLmdyb3VwKCdyYWRhcl9pZCcpKQor
ICAgICAgICBpZiByYWRhcl9pZCA8IDA6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
ICAgIHJldHVybiByYWRhcl9pZAorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIF9wYXJzZV9y
ZXZpZXdlcl90ZXh0KGNscywgdGV4dCk6CiAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKENoYW5n
ZUxvZ0VudHJ5LnJldmlld2VkX2J5X3JlZ2V4cCwgdGV4dCwgcmUuTVVMVElMSU5FIHwgcmUuSUdO
T1JFQ0FTRSkKICAgICAgICAgaWYgbm90IG1hdGNoOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZ191bml0dGVz
dC5weQkocmV2aXNpb24gMjM0NTA0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC00MDcsNiAr
NDA3LDQzIEBAIGNsYXNzIENoYW5nZUxvZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRl
ZiBfY29udHJpYnV0b3JzKHNlbGYsIG5hbWVzKToKICAgICAgICAgcmV0dXJuIFtDb21taXR0ZXJM
aXN0KCkuY29udHJpYnV0b3JfYnlfbmFtZShuYW1lKSBmb3IgbmFtZSBpbiBuYW1lc10KIAorICAg
IGRlZiBfYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKHNlbGYsIHJhZGFyX3RleHQsIGV4cGVjdGVk
X3JhZGFyX2lkKToKKyAgICAgICAgcGFyc2VkX3JhZGFyX2lkID0gQ2hhbmdlTG9nRW50cnkuX3Bh
cnNlX3JhZGFyX2lkKHJhZGFyX3RleHQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyc2Vk
X3JhZGFyX2lkLCBleHBlY3RlZF9yYWRhcl9pZCkKKworICAgIGRlZiB0ZXN0X2Z1enp5X3JhZGFy
X21hdGNoX19ub25lKHNlbGYpOgorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0
Y2goTm9uZSwgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCcn
LCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJ1RoZXJlIGlz
IG5vIHJkYXIgbGluayBoZXJlJywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3Jh
ZGFyX21hdGNoKCdUaGVyZSBpcyBubyByZGFyOi8vIGxpbmsgaGVyZScsIE5vbmUpCisgICAgICAg
IHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnVGhlcmUgaXMgbm8gbWFsZm9ybWVkIHJk
YXI6Ly9hYmNkIGxpbmsgaGVyZScsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9y
YWRhcl9tYXRjaCgnVGhlcmUgaXMgbm8gbWFsZm9ybWVkIHJkYXI6Ly9wcm9ibGVtIGxpbmsgaGVy
ZScsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnVGhlcmUg
aXMgbm8gbWFsZm9ybWVkIHJkYXI6Ly9wcm9ibGVtL2FiY2RlZmdoIGxpbmsgaGVyZScsIE5vbmUp
CisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnVGhlcmUgaXMgbm8gbWFs
Zm9ybWVkIHJkYXI6Ly9wcm9ibGVtLzEyMzQgbGluayBoZXJlJywgTm9uZSkKKworICAgIGRlZiB0
ZXN0X2Z1enp5X3JhZGFyX21hdGNoX2Zvcm1hdF8xKHNlbGYpOgorICAgICAgICBzZWxmLl9hc3Nl
cnRfZnV6enlfcmFkYXJfbWF0Y2goJzxyZGFyOi8vcHJvYmxlbS8xMjM0NTY3PicsIDEyMzQ1Njcp
CisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly9wcm9ibGVt
LzEyMzQ1Njc4PicsIDEyMzQ1Njc4KQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJf
bWF0Y2goJzxyZGFyOi8vMTIzNDU2Nz4nLCAxMjM0NTY3KQorICAgICAgICBzZWxmLl9hc3NlcnRf
ZnV6enlfcmFkYXJfbWF0Y2goJzxyZGFyOi8vMTIzNDU2Nzg+JywgMTIzNDU2NzgpCisKKyAgICBk
ZWYgdGVzdF9mdXp6eV9yYWRhcl9tYXRjaF9mb3JtYXRfMihzZWxmKToKKyAgICAgICAgc2VsZi5f
YXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCdyZGFyOi8vcHJvYmxlbS8yMzQ1Njc4JywgMjM0NTY3
OCkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCdyZGFyOi8vMzQ1Njc4
OScsIDM0NTY3ODkpCisKKyAgICBkZWYgdGVzdF9mdXp6eV9yYWRhcl9tYXRjaF9mb3JtYXRfMyhz
ZWxmKToKKyAgICAgICAgY29udGVudHMgPSAiIiIKKyAgICAgICAgMjAxMS0wMy0yMyAgT2phbiBW
YWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgICAgICAgICAgQWRkIGZhaWxpbmcg
cmVzdWx0IGZvciBXZWJLaXQyLiBBbGwgdGVzdHMgdGhhdCByZXF1aXJlCisgICAgICAgICAgICAg
ICAgZm9jdXMgZmFpbCBvbiBXZWJLaXQyLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU2OTg4LgorICAgICAgICAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Mjgy
NDIyOD4KKworICAgICAgICAgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Nzcy9wc2V1
ZG8tYW55LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKKyAgICAgICAgICAgICAgICcnJyIiIgorICAg
ICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goY29udGVudHMsIDQyODI0MjI4KQor
CiAgICAgZGVmIF9hc3NlcnRfZnV6enlfcmV2aWV3ZXJfbWF0Y2goc2VsZiwgcmV2aWV3ZXJfdGV4
dCwgZXhwZWN0ZWRfdGV4dF9saXN0LCBleHBlY3RlZF9jb250cmlidXRvcnMpOgogICAgICAgICB1
bnVzZWQsIHJldmlld2VyX3RleHRfbGlzdCA9IENoYW5nZUxvZ0VudHJ5Ll9wYXJzZV9yZXZpZXdl
cl90ZXh0KHJldmlld2VyX3RleHQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV2aWV3ZXJf
dGV4dF9saXN0LCBleHBlY3RlZF90ZXh0X2xpc3QpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5CShyZXZpc2lv
biAyMzQ1MDQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEv
YnVnemlsbGEucHkJKHdvcmtpbmcgY29weSkKQEAgLTg1MSw2ICs4NTEsMTUgQEAgY2xhc3MgQnVn
emlsbGEob2JqZWN0KToKICAgICAgICAgc2VsZi5icm93c2VyWyJuZXdjYyJdID0gIiwgIi5qb2lu
KGVtYWlsX2FkZHJlc3NfbGlzdCkKICAgICAgICAgc2VsZi5icm93c2VyLnN1Ym1pdCgpCiAKKyAg
ICBkZWYgYWRkX2tleXdvcmRfdG9fYnVnKHNlbGYsIGJ1Z19pZCwga2V5d29yZCk6CisgICAgICAg
IHNlbGYuYXV0aGVudGljYXRlKCkKKworICAgICAgICBfbG9nLmluZm8oIkFkZGluZyAlcyB0byB0
aGUga2V5d29yZCBsaXN0IGZvciBidWcgJXMiICUgKGtleXdvcmQsIGJ1Z19pZCkpCisgICAgICAg
IHNlbGYub3Blbl91cmwoc2VsZi5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKSkKKyAgICAgICAg
c2VsZi5icm93c2VyLnNlbGVjdF9mb3JtKG5hbWU9ImNoYW5nZWZvcm0iKQorICAgICAgICBzZWxm
LmJyb3dzZXJbImtleXdvcmRzIl0gPSBrZXl3b3JkCisgICAgICAgIHNlbGYuYnJvd3Nlci5zdWJt
aXQoKQorCiAgICAgZGVmIHBvc3RfY29tbWVudF90b19idWcoc2VsZiwgYnVnX2lkLCBjb21tZW50
X3RleHQsIGNjPU5vbmUpOgogICAgICAgICBzZWxmLmF1dGhlbnRpY2F0ZSgpCiAKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weQkocmV2aXNp
b24gMjM0NTA0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9h
ZC5weQkod29ya2luZyBjb3B5KQpAQCAtMjg1LDYgKzI4NSw3IEBAIGNsYXNzIFVwbG9hZChBYnN0
cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWEKICAgICAgICAgc3RlcHMuU3VnZ2VzdFJldmlld2VycywK
ICAgICAgICAgc3RlcHMuRW5zdXJlQnVnSXNPcGVuQW5kQXNzaWduZWQsCiAgICAgICAgIHN0ZXBz
LlBvc3REaWZmLAorICAgICAgICBzdGVwcy5BZGRSYWRhciwKICAgICAgICAgc3RlcHMuU3VibWl0
VG9FV1MsCiAgICAgICAgIHN0ZXBzLldQVENoYW5nZUV4cG9ydCwKICAgICBdCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CShyZXZpc2lvbiAy
MzQ1MDQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogIyBGSVhNRTogSXMgdGhpcyB0aGUg
cmlnaHQgd2F5IHRvIGRvIHRoaXM/CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWRkc3ZubWlt
ZXR5cGVmb3JwbmcgaW1wb3J0IEFkZFN2bk1pbWV0eXBlRm9yUG5nCitmcm9tIHdlYmtpdHB5LnRv
b2wuc3RlcHMuYWRkcmFkYXIgaW1wb3J0IEFkZFJhZGFyCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3Rl
cHMuYXBwbHlwYXRjaCBpbXBvcnQgQXBwbHlQYXRjaAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBz
LmFwcGx5cGF0Y2h3aXRobG9jYWxjb21taXQgaW1wb3J0IEFwcGx5UGF0Y2hXaXRoTG9jYWxDb21t
aXQKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXdhdGNobGlzdCBpbXBvcnQgQXBwbHlX
YXRjaExpc3QKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRyYWRh
ci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRk
cmFkYXIucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL2FkZHJhZGFyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTMgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBz
LmFic3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5j
aGVja291dC5jaGFuZ2Vsb2cgaW1wb3J0ICoKKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCByZQor
CitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgQWRkUmFkYXIo
QWJzdHJhY3RTdGVwKToKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAgICAgICAgYnVnX2lk
ID0gc3RhdGVbImJ1Z19pZCJdCisgICAgICAgIGtleXdvcmQgPSAiSW5SYWRhciIKKyAgICAgICAg
d2tiaV9lbWFpbCA9IFsid2Via2l0LWJ1Zy1pbXBvcnRlckBncm91cC5hcHBsZS5jb20iXQorICAg
ICAgICByYWRhcl9saW5rID0gTm9uZQorCisgICAgICAgICMgT25seSBhZGQgUmFkYXIgaW5mb3Jt
YXRpb24gaWYgd2UgYXJlIG9wZXJhdGluZyBvbiBhIG5ld2x5IGNyZWF0ZWQgYnVnCisgICAgICAg
IGlmIHN0YXRlLmdldCgiY3JlYXRlZF9uZXdfYnVnIikgIT0gVHJ1ZToKKyAgICAgICAgICAgIHJl
dHVybgorCisgICAgICAgIGZvciBjaGFuZ2Vsb2dfcGF0aCBpbiBzZWxmLmNhY2hlZF9sb29rdXAo
c3RhdGUsICJjaGFuZ2Vsb2dzIik6CisgICAgICAgICAgICBjaGFuZ2Vsb2dfZW50cnkgPSBDaGFu
Z2VMb2coY2hhbmdlbG9nX3BhdGgpLmxhdGVzdF9lbnRyeSgpCisgICAgICAgICAgICByYWRhcl9p
ZCA9IENoYW5nZUxvZ0VudHJ5Ll9wYXJzZV9yYWRhcl9pZChjaGFuZ2Vsb2dfZW50cnkuY29udGVu
dHMoKSkKKyAgICAgICAgICAgIGlmIHJhZGFyX2lkOgorICAgICAgICAgICAgICAgIHJhZGFyX2xp
bmsgPSAiPHJkYXI6Ly9wcm9ibGVtL3t9PiIuZm9ybWF0KHJhZGFyX2lkKQorICAgICAgICAgICAg
ICAgIGJyZWFrCisKKyAgICAgICAgaWYgcmFkYXJfbGluazoKKyAgICAgICAgICAgIHNlbGYuX3Rv
b2wuYnVncy5hZGRfa2V5d29yZF90b19idWcoYnVnX2lkLCBrZXl3b3JkKQorICAgICAgICAgICAg
c2VsZi5fdG9vbC5idWdzLnBvc3RfY29tbWVudF90b19idWcoYnVnX2lkLCByYWRhcl9saW5rKQor
ICAgICAgICAgICAgc2VsZi5fdG9vbC5idWdzLmFkZF9jY190b19idWcoYnVnX2lkLCB3a2JpX2Vt
YWlsKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NyZWF0ZWJ1Zy5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY3JlYXRl
YnVnLnB5CShyZXZpc2lvbiAyMzQ1MDQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvY3JlYXRlYnVnLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNz
IENyZWF0ZUJ1ZyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgYmxvY2tlZF9idWdzID0gc3Rh
dGUuZ2V0KCJidWdfaWRfbGlzdCIsIFtdKQogICAgICAgICBibG9ja3MgPSAiLCAiLmpvaW4oc3Ry
KGJ1ZykgZm9yIGJ1ZyBpbiBibG9ja2VkX2J1Z3MgaWYgYnVnKQogICAgICAgICBzdGF0ZVsiYnVn
X2lkIl0gPSBzZWxmLl90b29sLmJ1Z3MuY3JlYXRlX2J1ZyhzdGF0ZVsiYnVnX3RpdGxlIl0sIHN0
YXRlWyJidWdfZGVzY3JpcHRpb24iXSwgYmxvY2tlZD1ibG9ja3MsIGNvbXBvbmVudD1zZWxmLl9v
cHRpb25zLmNvbXBvbmVudCwgY2M9Y2MpCisgICAgICAgIHN0YXRlWyJjcmVhdGVkX25ld19idWci
XSA9IFRydWUKICAgICAgICAgZm9yIGJsb2NrZWRfYnVnIGluIGJsb2NrZWRfYnVnczoKICAgICAg
ICAgICAgIGlmIGJsb2NrZWRfYnVnOgogICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNlbGYuX3Rv
b2wuYnVncy5mZXRjaF9idWcoYmxvY2tlZF9idWcpLnN0YXR1cygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346711</attachid>
            <date>2018-08-07 10:14:21 -0700</date>
            <delta_ts>2021-11-01 12:49:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188235-20180807101420.patch</filename>
            <type>text/plain</type>
            <size>15016</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzNDY1NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE4LTA4LTA3ICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBJZiB0aGVyZSdzIGEgUmFkYXIgaW4gdGhlIENoYW5nZUxvZywgd2Vi
a2l0LXBhdGNoIHVwbG9hZC9jcmVhdGUtYnVnIHNob3VsZCBwdXQgdGhlIHJhZGFyIGluIHRoZSBi
dWcgYW5kIHNldCBJblJhZGFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODgyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZy5w
eTogCisgICAgICAgIChDaGFuZ2VMb2dFbnRyeSk6IFRlYWNoIHRoZSBDaGFuZ2VMb2cgdG9vbHMg
aG93IHRvIHBhcnNlIGEgcmFkYXJfaWQKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9jaGFuZ2Vsb2dfdW5pdHRlc3QucHk6IFRlc3Qgb3V0IHRoZSBuZXcgX3BhcnNl
X3JhZGFyX2lkIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHk6CisgICAgICAgIChCdWd6aWxsYS5hZGRfa2V5d29y
ZF90b19idWcpOiBBZGQgbG9naWMgdG8gYWRkIGtleXdvcmRzIHVzaW5nIHRoZSBjaGFuZ2Vmb3Jt
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weToKKyAg
ICAgICAgKFVwbG9hZCk6IFRlYWNoIHRoZSB1cGxvYWQgc3RlcCBob3cgdG8gYWRkIHJhZGFyIGlu
Zm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBuZXcgYnVnLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvYWRkcmFkYXIucHk6IEFkZGVkLgorICAgICAgICAoQWRkUmFkYXIpOgorICAg
ICAgICAoQWRkUmFkYXIucnVuKTogQ29udGFpbnMgdGhlIGxvZ2ljIHRvIGFkZCB0aGUgcmFkYXIg
aW5mb3JtYXRpb24gdG8gYnVnemlsbGEuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2NyZWF0ZWJ1Zy5weToKKyAgICAgICAgKENyZWF0ZUJ1Zy5ydW4pOiBzZXQgYSAiY3Jl
YXRlZF9uZXdfYnVnIiBzdGF0ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IGJ1Z3ppbGxhIGJ1Zy4KKwog
MjAxOC0wOC0wNyAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAg
ICAgIFtNaW5pQnJvd3Nlcl1bV2luXSBBbGxvdyBzZWxlY3Rpb24gb2YgcmVjZW50IHVzZXIgYWdl
bnRzCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGFuZ2Vs
b2cucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvY2hhbmdlbG9nLnB5CShyZXZpc2lvbiAyMzQ2NTQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9jaGFuZ2Vsb2cucHkJKHdvcmtpbmcgY29weSkKQEAgLTY2LDYg
KzY2LDggQEAgY2xhc3MgQ2hhbmdlTG9nRW50cnkob2JqZWN0KToKICAgICAjIGUuZy4gKENoYW5n
ZUxvZ0VudHJ5LnRvdWNoZWRfZnVuY3Rpb25zKTogQWRkZWQuCiAgICAgdG91Y2hlZF9mdW5jdGlv
bnNfcmVnZXhwID0gcideXHMqXCgoP1A8ZnVuY3Rpb24+W14pXSopXCk6JwogCisgICAgcmFkYXJf
aWRfcmVnZXhwID0gcideXHMqKDw/cmRhcjovL3Byb2JsZW1zPy8pPyg/UDxyYWRhcl9pZD4tP1xk
ezcsfSk+PycKKwogICAgICMgZS5nLiBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KICAgICAjIChE
aXNjYXJkIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IHBlcmlvZCB0byBtYXRjaCBtb3JlIGlu
dmFsaWQgbGluZXMuKQogICAgIHJldmlld2VkX2J5X3JlZ2V4cCA9IHInXlxzKigoXHcrXHMrKSth
bmRccyspPyhSZXZpZXd8UnViYmVyKFxzKnwtKXN0YW1wKShzfGVkKT9ccysoW2Etel0rXHMrKSo/
YnlccysoP1A8cmV2aWV3ZXI+Lio/KVtcLixdP1xzKiQnCkBAIC0xMTIsNiArMTE0LDE5IEBAIGNs
YXNzIENoYW5nZUxvZ0VudHJ5KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3BhcnNlX2VudHJ5KCkK
IAogICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfcGFyc2VfcmFkYXJfaWQoY2xzLCB0ZXh0KToK
KyAgICAgICAgaWYgbm90IHRleHQ6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBt
YXRjaCA9IHJlLnNlYXJjaChDaGFuZ2VMb2dFbnRyeS5yYWRhcl9pZF9yZWdleHAsIHRleHQsIHJl
Lk1VTFRJTElORSB8IHJlLklHTk9SRUNBU0UpCisgICAgICAgIGlmIG5vdCBtYXRjaDoKKyAgICAg
ICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJhZGFyX2lkID0gaW50KG1hdGNoLmdyb3VwKCdy
YWRhcl9pZCcpKQorICAgICAgICBpZiByYWRhcl9pZCA8IDA6CisgICAgICAgICAgICByZXR1cm4g
Tm9uZQorCisgICAgICAgIHJldHVybiByYWRhcl9pZAorCisgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIF9wYXJzZV9yZXZpZXdlcl90ZXh0KGNscywgdGV4dCk6CiAgICAgICAgIG1hdGNoID0gcmUu
c2VhcmNoKENoYW5nZUxvZ0VudHJ5LnJldmlld2VkX2J5X3JlZ2V4cCwgdGV4dCwgcmUuTVVMVElM
SU5FIHwgcmUuSUdOT1JFQ0FTRSkKICAgICAgICAgaWYgbm90IG1hdGNoOgpJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5n
ZWxvZ191bml0dGVzdC5weQkocmV2aXNpb24gMjM0NjU0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkp
CkBAIC00MDcsNiArNDA3LDExNiBAQCBjbGFzcyBDaGFuZ2VMb2dUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICBkZWYgX2NvbnRyaWJ1dG9ycyhzZWxmLCBuYW1lcyk6CiAgICAgICAgIHJldHVy
biBbQ29tbWl0dGVyTGlzdCgpLmNvbnRyaWJ1dG9yX2J5X25hbWUobmFtZSkgZm9yIG5hbWUgaW4g
bmFtZXNdCiAKKyAgICBkZWYgX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaChzZWxmLCByYWRhcl90
ZXh0LCBleHBlY3RlZF9yYWRhcl9pZCk6CisgICAgICAgIHBhcnNlZF9yYWRhcl9pZCA9IENoYW5n
ZUxvZ0VudHJ5Ll9wYXJzZV9yYWRhcl9pZChyYWRhcl90ZXh0KQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBhcnNlZF9yYWRhcl9pZCwgZXhwZWN0ZWRfcmFkYXJfaWQpCisKKyAgICBkZWYgdGVz
dF9mdXp6eV9yYWRhcl9tYXRjaF9fbm9uZShzZWxmKToKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1
enp5X3JhZGFyX21hdGNoKE5vbmUsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9y
YWRhcl9tYXRjaCgnJywgTm9uZSkKKworICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJf
bWF0Y2goJ3JkYXI6Ly8xJywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFy
X21hdGNoKCdyZGFyOi8vMTInLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFk
YXJfbWF0Y2goJ3JkYXI6Ly8xMjMnLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlf
cmFkYXJfbWF0Y2goJ3JkYXI6Ly8xMjM0JywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1
enp5X3JhZGFyX21hdGNoKCdyZGFyOi8vMTIzNDUnLCBOb25lKQorICAgICAgICBzZWxmLl9hc3Nl
cnRfZnV6enlfcmFkYXJfbWF0Y2goJ3JkYXI6Ly8xMjM0NTYnLCBOb25lKQorICAgICAgICBzZWxm
Ll9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJ3JkYXI6Ly8xMjM0NTY3JywgTm9uZSkKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCdyZGFyOi8vMTIzNDU2NzgnLCBOb25l
KQorCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly8xPics
IE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly8x
Mj4nLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJzxyZGFy
Oi8vMTIzPicsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgn
PHJkYXI6Ly8xMjM0PicsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9t
YXRjaCgnPHJkYXI6Ly8xMjM0NT4nLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlf
cmFkYXJfbWF0Y2goJzxyZGFyOi8vMTIzNDU2PicsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2Vy
dF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly8xMjM0NTY3PicsIE5vbmUpCisgICAgICAgIHNl
bGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly8xMjM0NTY3OD4nLCBOb25lKQor
CisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly9wcm9ibGVt
LzE+JywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCc8cmRh
cjovL3Byb2JsZW0vMTI+JywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFy
X21hdGNoKCc8cmRhcjovL3Byb2JsZW0vMTIzPicsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2Vy
dF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly9wcm9ibGVtLzEyMzQ+JywgTm9uZSkKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCc8cmRhcjovL3Byb2JsZW0vMTIzNDU+
JywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCc8cmRhcjov
L3Byb2JsZW0vMTIzNDU2PicsIE5vbmUpCisKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3Jh
ZGFyX21hdGNoKCc8cmRhcjovL3Byb2JsZW1zLzE+JywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNz
ZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCc8cmRhcjovL3Byb2JsZW1zLzEyPicsIE5vbmUpCisgICAg
ICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly9wcm9ibGVtcy8xMjM+
JywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCc8cmRhcjov
L3Byb2JsZW1zLzEyMzQ+JywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFy
X21hdGNoKCc8cmRhcjovL3Byb2JsZW1zLzEyMzQ1PicsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fz
c2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnPHJkYXI6Ly9wcm9ibGVtcy8xMjM0NTY+JywgTm9uZSkK
KworICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJ3JkYXI6Ly9wcm9ibGVt
LzEnLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJ3JkYXI6
Ly9wcm9ibGVtLzEyJywgTm9uZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21h
dGNoKCdyZGFyOi8vcHJvYmxlbS8xMjMnLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6
enlfcmFkYXJfbWF0Y2goJ3JkYXI6Ly9wcm9ibGVtLzEyMzQnLCBOb25lKQorICAgICAgICBzZWxm
Ll9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJ3JkYXI6Ly9wcm9ibGVtLzEyMzQ1JywgTm9uZSkK
KyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCdyZGFyOi8vcHJvYmxlbS8x
MjM0NTYnLCBOb25lKQorCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgn
cmRhcjovL3Byb2JsZW1zLzEnLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFk
YXJfbWF0Y2goJ3JkYXI6Ly9wcm9ibGVtcy8xMicsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2Vy
dF9mdXp6eV9yYWRhcl9tYXRjaCgncmRhcjovL3Byb2JsZW1zLzEyMycsIE5vbmUpCisgICAgICAg
IHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgncmRhcjovL3Byb2JsZW1zLzEyMzQnLCBO
b25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJ3JkYXI6Ly9wcm9i
bGVtcy8xMjM0NScsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRj
aCgncmRhcjovL3Byb2JsZW1zLzEyMzQ1NicsIE5vbmUpCisKKyAgICAgICAgc2VsZi5fYXNzZXJ0
X2Z1enp5X3JhZGFyX21hdGNoKCdUaGVyZSBpcyBubyByZGFyIGxpbmsgaGVyZScsIE5vbmUpCisg
ICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgnVGhlcmUgaXMgbm8gcmRhcjov
LyBsaW5rIGhlcmUnLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0
Y2goJ1RoZXJlIGlzIG5vIG1hbGZvcm1lZCA8cmRhcjovL2FiY2QgbGluayBoZXJlJywgTm9uZSkK
KyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCdUaGVyZSBpcyBubyBtYWxm
b3JtZWQgPHJkYXI6Ly9wcm9ibGVtPiBsaW5rIGhlcmUnLCBOb25lKQorICAgICAgICBzZWxmLl9h
c3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJ1RoZXJlIGlzIG5vIG1hbGZvcm1lZCA8cmRhcjovL3By
b2JsZW0vYWJjZGVmZ2g+IGxpbmsgaGVyZScsIE5vbmUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9m
dXp6eV9yYWRhcl9tYXRjaCgnVGhlcmUgaXMgbm8gbWFsZm9ybWVkIDxyZGFyOi8vcHJvYmxlbS8x
MjM0PiBsaW5rIGhlcmUnLCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJf
bWF0Y2goJyAgICAgICAgICAgICAgICBmaXhlZCBpbiA8cmRhcjovL3Byb2JsZW0vMjM0NTY3OD4n
LCBOb25lKQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJyAgICAgICAg
ICAgICAgICB3aGl0ZXNwYWNlIGhlcmUgPHJkYXI6Ly9wcm9ibGVtLzEyMzQ1Njc4PicsIE5vbmUp
CisKKyAgICBkZWYgdGVzdF9mdXp6eV9yYWRhcl9tYXRjaF9mb3JtYXRfMShzZWxmKToKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNoKCc8cmRhcjovL3Byb2JsZW0vMTIzNDU2
Nz4nLCAxMjM0NTY3KQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJzxy
ZGFyOi8vcHJvYmxlbS8xMjM0NTY3OD4nLCAxMjM0NTY3OCkKKworICAgICAgICBzZWxmLl9hc3Nl
cnRfZnV6enlfcmFkYXJfbWF0Y2goJzxyZGFyOi8vcHJvYmxlbXMvMTIzNDU2Nz4nLCAxMjM0NTY3
KQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0Y2goJzxyZGFyOi8vcHJvYmxl
bXMvMTIzNDU2Nzg+JywgMTIzNDU2NzgpCisKKyAgICBkZWYgdGVzdF9mdXp6eV9yYWRhcl9tYXRj
aF9mb3JtYXRfMihzZWxmKToKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFyX21hdGNo
KCdyZGFyOi8vcHJvYmxlbS8xMjM0NTY3JywgMTIzNDU2NykKKyAgICAgICAgc2VsZi5fYXNzZXJ0
X2Z1enp5X3JhZGFyX21hdGNoKCdyZGFyOi8vcHJvYmxlbS8xMjM0NTY3OCcsIDEyMzQ1Njc4KQor
CisgICAgICAgIHNlbGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaCgncmRhcjovL3Byb2JsZW1z
LzEyMzQ1NjcnLCAxMjM0NTY3KQorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0
Y2goJ3JkYXI6Ly9wcm9ibGVtcy8xMjM0NTY3OCcsIDEyMzQ1Njc4KQorCisgICAgZGVmIHRlc3Rf
ZnV6enlfcmFkYXJfbWF0Y2hfZm9ybWF0XzMoc2VsZik6CisgICAgICAgIGNvbnRlbnRzID0gIiIi
CisgICAgICAgIDIwMTEtMDMtMjMgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICAgICAgICAgIEFkZCBmYWlsaW5nIHJlc3VsdCBmb3IgV2ViS2l0Mi4gQWxsIHRlc3Rz
IHRoYXQgcmVxdWlyZQorICAgICAgICAgICAgICAgIGZvY3VzIGZhaWwgb24gV2ViS2l0Mi4gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njk4OC4KKyAgICAgICAg
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI4MjQyMjg+CisKKyAgICAgICAgICAgICAgICAqIHBs
YXRmb3JtL21hYy13azIvZmFzdC9jc3MvcHNldWRvLWFueS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
CisgICAgICAgICAgICAgICAnJyciIiIKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Z1enp5X3JhZGFy
X21hdGNoKGNvbnRlbnRzLCA0MjgyNDIyOCkKKworICAgICAgICBjb250ZW50cyA9ICIiIgorICAg
ICAgICAyMDE4LTA4LTAyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgICAgICAgICAgW2lPU10gS2V5Ym9hcmQgYmVjb21lcyB1bnJlc3BvbnNpdmUgYWZ0
ZXIgcHJlc3NpbmcgZGVsZXRlIHdoaWxlIHByZXNzaW5nIGRvd24gb24gYSBjaGFyYWN0ZXIga2V5
IHdpdGggYWNjZW50cworICAgICAgICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODgyNTEKKyAgICAgICAgICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc4
NDIxMDg+CisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9hc3NlcnRfZnV6enlfcmFkYXJfbWF0
Y2goY29udGVudHMsIDM3ODQyMTA4KQorCisgICAgICAgIGNvbnRlbnRzID0gIiIiCisgICAgICAg
IDIwMTctMDYtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgICAgICAgICBSZWZhY3RvciBkcmFnIHN0YXJ0IGNvZGVwYXRocyB0byBwbHVtYiBhIERy
YWdJdGVtIHRvIGNsaWVudCBsYXllcnMKKyAgICAgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczODMyCisgICAgICAgICAgICAgICAgV29yayB0b3dh
cmRzIDxyZGFyOi8vcHJvYmxlbS8zMjIzNjgyNz4KKworICAgICAgICAgICAgICAgIFJldmlld2Vk
IGJ5IFJ5b3N1a2UgTml3YSBhbmQgVGltIEhvcnRvbi4KKyAgICAgICAgIiIiCisgICAgICAgIHNl
bGYuX2Fzc2VydF9mdXp6eV9yYWRhcl9tYXRjaChjb250ZW50cywgTm9uZSkKKwogICAgIGRlZiBf
YXNzZXJ0X2Z1enp5X3Jldmlld2VyX21hdGNoKHNlbGYsIHJldmlld2VyX3RleHQsIGV4cGVjdGVk
X3RleHRfbGlzdCwgZXhwZWN0ZWRfY29udHJpYnV0b3JzKToKICAgICAgICAgdW51c2VkLCByZXZp
ZXdlcl90ZXh0X2xpc3QgPSBDaGFuZ2VMb2dFbnRyeS5fcGFyc2VfcmV2aWV3ZXJfdGV4dChyZXZp
ZXdlcl90ZXh0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldmlld2VyX3RleHRfbGlzdCwg
ZXhwZWN0ZWRfdGV4dF9saXN0KQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxsYS5weQkocmV2aXNpb24gMjM0NjU0KQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC04NTEsNiArODUxLDE1IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVj
dCk6CiAgICAgICAgIHNlbGYuYnJvd3NlclsibmV3Y2MiXSA9ICIsICIuam9pbihlbWFpbF9hZGRy
ZXNzX2xpc3QpCiAgICAgICAgIHNlbGYuYnJvd3Nlci5zdWJtaXQoKQogCisgICAgZGVmIGFkZF9r
ZXl3b3JkX3RvX2J1ZyhzZWxmLCBidWdfaWQsIGtleXdvcmQpOgorICAgICAgICBzZWxmLmF1dGhl
bnRpY2F0ZSgpCisKKyAgICAgICAgX2xvZy5pbmZvKCJBZGRpbmcgJXMgdG8gdGhlIGtleXdvcmQg
bGlzdCBmb3IgYnVnICVzIiAlIChrZXl3b3JkLCBidWdfaWQpKQorICAgICAgICBzZWxmLm9wZW5f
dXJsKHNlbGYuYnVnX3VybF9mb3JfYnVnX2lkKGJ1Z19pZCkpCisgICAgICAgIHNlbGYuYnJvd3Nl
ci5zZWxlY3RfZm9ybShuYW1lPSJjaGFuZ2Vmb3JtIikKKyAgICAgICAgc2VsZi5icm93c2VyWyJr
ZXl3b3JkcyJdID0ga2V5d29yZAorICAgICAgICBzZWxmLmJyb3dzZXIuc3VibWl0KCkKKwogICAg
IGRlZiBwb3N0X2NvbW1lbnRfdG9fYnVnKHNlbGYsIGJ1Z19pZCwgY29tbWVudF90ZXh0LCBjYz1O
b25lKToKICAgICAgICAgc2VsZi5hdXRoZW50aWNhdGUoKQogCkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkJKHJldmlzaW9uIDIzNDY1NCkK
KysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkJKHdvcmtp
bmcgY29weSkKQEAgLTI4NSw2ICsyODUsNyBAQCBjbGFzcyBVcGxvYWQoQWJzdHJhY3RQYXRjaFVw
bG9hZGluZ0NvbW1hCiAgICAgICAgIHN0ZXBzLlN1Z2dlc3RSZXZpZXdlcnMsCiAgICAgICAgIHN0
ZXBzLkVuc3VyZUJ1Z0lzT3BlbkFuZEFzc2lnbmVkLAogICAgICAgICBzdGVwcy5Qb3N0RGlmZiwK
KyAgICAgICAgc3RlcHMuQWRkUmFkYXIsCiAgICAgICAgIHN0ZXBzLlN1Ym1pdFRvRVdTLAogICAg
ICAgICBzdGVwcy5XUFRDaGFuZ2VFeHBvcnQsCiAgICAgXQpJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQkocmV2aXNpb24gMjM0NjU0KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICMgRklYTUU6IElzIHRoaXMgdGhlIHJpZ2h0IHdheSB0
byBkbyB0aGlzPwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFkZHN2bm1pbWV0eXBlZm9ycG5n
IGltcG9ydCBBZGRTdm5NaW1ldHlwZUZvclBuZworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFk
ZHJhZGFyIGltcG9ydCBBZGRSYWRhcgogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5cGF0
Y2ggaW1wb3J0IEFwcGx5UGF0Y2gKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXBhdGNo
d2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNoV2l0aExvY2FsQ29tbWl0CiBmcm9tIHdl
YmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1wb3J0IEFwcGx5V2F0Y2hMaXN0Cklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkcmFkYXIucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHJhZGFyLnB5CShu
b25leGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRyYWRh
ci5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUzIEBACisjIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hYnN0cmFjdHN0
ZXAgaW1wb3J0IEFic3RyYWN0U3RlcAorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuY2hh
bmdlbG9nIGltcG9ydCAqCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgcmUKKworX2xvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEFkZFJhZGFyKEFic3RyYWN0U3Rl
cCk6CisgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIGJ1Z19pZCA9IHN0YXRlWyJi
dWdfaWQiXQorICAgICAgICBrZXl3b3JkID0gIkluUmFkYXIiCisgICAgICAgIHdrYmlfZW1haWwg
PSBbIndlYmtpdC1idWctaW1wb3J0ZXJAZ3JvdXAuYXBwbGUuY29tIl0KKyAgICAgICAgcmFkYXJf
bGluayA9IE5vbmUKKworICAgICAgICAjIE9ubHkgYWRkIFJhZGFyIGluZm9ybWF0aW9uIGlmIHdl
IGFyZSBvcGVyYXRpbmcgb24gYSBuZXdseSBjcmVhdGVkIGJ1ZworICAgICAgICBpZiBub3Qgc3Rh
dGUuZ2V0KCJjcmVhdGVkX25ld19idWciKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAg
IGZvciBjaGFuZ2Vsb2dfcGF0aCBpbiBzZWxmLmNhY2hlZF9sb29rdXAoc3RhdGUsICJjaGFuZ2Vs
b2dzIik6CisgICAgICAgICAgICBjaGFuZ2Vsb2dfZW50cnkgPSBDaGFuZ2VMb2coY2hhbmdlbG9n
X3BhdGgpLmxhdGVzdF9lbnRyeSgpCisgICAgICAgICAgICByYWRhcl9pZCA9IENoYW5nZUxvZ0Vu
dHJ5Ll9wYXJzZV9yYWRhcl9pZChjaGFuZ2Vsb2dfZW50cnkuY29udGVudHMoKSkKKyAgICAgICAg
ICAgIGlmIHJhZGFyX2lkOgorICAgICAgICAgICAgICAgIHJhZGFyX2xpbmsgPSAiPHJkYXI6Ly9w
cm9ibGVtL3t9PiIuZm9ybWF0KHJhZGFyX2lkKQorICAgICAgICAgICAgICAgIGJyZWFrCisKKyAg
ICAgICAgaWYgcmFkYXJfbGluazoKKyAgICAgICAgICAgIHNlbGYuX3Rvb2wuYnVncy5hZGRfa2V5
d29yZF90b19idWcoYnVnX2lkLCBrZXl3b3JkKQorICAgICAgICAgICAgc2VsZi5fdG9vbC5idWdz
LnBvc3RfY29tbWVudF90b19idWcoYnVnX2lkLCByYWRhcl9saW5rKQorICAgICAgICAgICAgc2Vs
Zi5fdG9vbC5idWdzLmFkZF9jY190b19idWcoYnVnX2lkLCB3a2JpX2VtYWlsKQpJbmRleDogVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NyZWF0ZWJ1Zy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY3JlYXRlYnVnLnB5CShyZXZpc2lv
biAyMzQ2NTQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY3JlYXRlYnVn
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIENyZWF0ZUJ1ZyhBYnN0
cmFjdFN0ZXApOgogICAgICAgICAgICAgYmxvY2tlZF9idWdzID0gc3RhdGUuZ2V0KCJidWdfaWRf
bGlzdCIsIFtdKQogICAgICAgICBibG9ja3MgPSAiLCAiLmpvaW4oc3RyKGJ1ZykgZm9yIGJ1ZyBp
biBibG9ja2VkX2J1Z3MgaWYgYnVnKQogICAgICAgICBzdGF0ZVsiYnVnX2lkIl0gPSBzZWxmLl90
b29sLmJ1Z3MuY3JlYXRlX2J1ZyhzdGF0ZVsiYnVnX3RpdGxlIl0sIHN0YXRlWyJidWdfZGVzY3Jp
cHRpb24iXSwgYmxvY2tlZD1ibG9ja3MsIGNvbXBvbmVudD1zZWxmLl9vcHRpb25zLmNvbXBvbmVu
dCwgY2M9Y2MpCisgICAgICAgIHN0YXRlWyJjcmVhdGVkX25ld19idWciXSA9IFRydWUKICAgICAg
ICAgZm9yIGJsb2NrZWRfYnVnIGluIGJsb2NrZWRfYnVnczoKICAgICAgICAgICAgIGlmIGJsb2Nr
ZWRfYnVnOgogICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNlbGYuX3Rvb2wuYnVncy5mZXRjaF9i
dWcoYmxvY2tlZF9idWcpLnN0YXR1cygpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>