<?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>183184</bug_id>
          
          <creation_ts>2018-02-27 15:01:29 -0800</creation_ts>
          <short_desc>[webkitpy] Remove concept of &apos;future&apos; versions</short_desc>
          <delta_ts>2018-02-28 18:09:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1402436</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-27 15:01:29 -0800</bug_when>
    <thetext>Remove the idea of &apos;future&apos; from Mac and iOS versions. Instead, use decrementing version numbers and inserted apple_additions() to handle this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402440</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-27 15:03:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/37958594&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402442</commentid>
    <comment_count>2</comment_count>
      <attachid>334709</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-27 15:07:02 -0800</bug_when>
    <thetext>Created attachment 334709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402476</commentid>
    <comment_count>3</comment_count>
      <attachid>334715</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-27 16:58:36 -0800</bug_when>
    <thetext>Created attachment 334715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402479</commentid>
    <comment_count>4</comment_count>
      <attachid>334715</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-02-27 17:21:42 -0800</bug_when>
    <thetext>Comment on attachment 334715
Patch

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

&gt; Tools/Scripts/webkitpy/port/mac.py:78
&gt; +            while temp_version != self.CURRENT_VERSION:

This will become infinite loop if someone incorrectly set self._os_version.major to anything other than 10. Please add an assert to make sure that for macos major version is always 10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402485</commentid>
    <comment_count>5</comment_count>
      <attachid>334715</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-02-27 17:27:29 -0800</bug_when>
    <thetext>Comment on attachment 334715
Patch

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

Looks good.

&gt; Tools/ChangeLog:3
&gt; +        Remove concept of &apos;future&apos;

Can make the bug title more descriptive, like &quot;Remove concept of &apos;future&apos; from TestExpectations&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402486</commentid>
    <comment_count>6</comment_count>
      <attachid>334718</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-27 17:28:44 -0800</bug_when>
    <thetext>Created attachment 334718
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402497</commentid>
    <comment_count>7</comment_count>
      <attachid>334718</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-27 18:06:03 -0800</bug_when>
    <thetext>Comment on attachment 334718
Patch for landing

Clearing flags on attachment: 334718

Committed r229085: &lt;https://trac.webkit.org/changeset/229085&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402498</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-27 18:06:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402499</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-02-27 18:20:32 -0800</bug_when>
    <thetext>This bug could have had a more descriptive title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402521</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-27 21:07:49 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #9)
&gt; This bug could have had a more descriptive title.

You’re not the only one to point this out. It was pointed out in comment 5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402603</commentid>
    <comment_count>11</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-02-28 07:43:17 -0800</bug_when>
    <thetext>I think it was my oversight. I was doing over the shoulder code review with Jonathan and he incorporated all my verbal review comments. I commented about bug title here but forgot to tell Jonathan. He was using webkit-patch command to upload patch so probably didn&apos;t notice my bugzilla comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402672</commentid>
    <comment_count>12</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-28 11:26:05 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402673</commentid>
    <comment_count>13</comment_count>
      <attachid>334753</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-28 11:26:06 -0800</bug_when>
    <thetext>Created attachment 334753
Follow-up fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402674</commentid>
    <comment_count>14</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-28 11:27:16 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #13)
&gt; Created attachment 334753 [details]
&gt; Follow-up fix

Missed a non-obvious dependency on future in the factory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402675</commentid>
    <comment_count>15</comment_count>
      <attachid>334753</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-02-28 11:30:40 -0800</bug_when>
    <thetext>Comment on attachment 334753
Follow-up fix

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

r=me

&gt; Tools/ChangeLog:9
&gt; +        The factory also relies off of future in a non-obvious way.

Nit:  &quot;off of&quot; =&gt; &quot;on&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402677</commentid>
    <comment_count>16</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-28 11:35:41 -0800</bug_when>
    <thetext>Follow-up fix committed &lt;https://trac.webkit.org/changeset/229099&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402786</commentid>
    <comment_count>17</comment_count>
      <attachid>334787</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-28 17:09:55 -0800</bug_when>
    <thetext>Created attachment 334787
Follow-up fix 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402794</commentid>
    <comment_count>18</comment_count>
      <attachid>334789</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-02-28 17:29:40 -0800</bug_when>
    <thetext>Created attachment 334789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402803</commentid>
    <comment_count>19</comment_count>
      <attachid>334789</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-28 18:09:44 -0800</bug_when>
    <thetext>Comment on attachment 334789
Patch

Clearing flags on attachment: 334789

Committed r229116: &lt;https://trac.webkit.org/changeset/229116&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402804</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-28 18:09:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334709</attachid>
            <date>2018-02-27 15:07:02 -0800</date>
            <delta_ts>2018-02-27 16:58:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183184-20180227150701.patch</filename>
            <type>text/plain</type>
            <size>17370</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyOTA2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUzIEBACisyMDE4LTAyLTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW1vdmUgY29uY2VwdCBvZiAnZnV0dXJlJworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMTg0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zNzk1ODU5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdmUgY29uY2VwdCBvZiAnZnV0dXJlJyBmcm9tIGV4cGVjdGF0aW9ucyBh
bmQgaW5zdGVhZAorICAgICAgICB1c2UgYSBzeXN0ZW0gb2YgaW5oZXJpdGFuY2UgY2VudGVyZWQg
YXJvdW5kIHRoZSBjdXJyZW50IHZlcnNpb24KKyAgICAgICAgb2YgYW4gT1MgZm9yIE1hYyBhbmQg
aU9TLgorCisgICAgICAgIEluaGVyaXRhbmNlIHdvcmtzIGxpa2Ugc286CisKKyAgICAgICAgfCAu
Li4uCisgICAgICAgIFYgRnV0dXJlCisgICAgICAgID4gSGlnaCBTaWVycmEgKG1hYykKKyAgICAg
ICAgXiBtYWMtc2llcnJhCisgICAgICAgIHwgbWFjLWVsY2FwaXRhbgorICAgICAgICB8IC4uLi4K
KworICAgICAgICBUaGlzIGRvZXMgbm90IGNoYW5nZSBleHBlY3RhdGlvbiBpbmhlcml0YW5jZSBm
b3IgYW55IGN1cnJlbnRseSBydW5uaW5nCisgICAgICAgIGNvbmZpZ3VyYXRpb25zLCBpdCBnZW5l
cmFsaXplcyB0aGUgbG9naWMgYWxyZWFkeSB1c2VkLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vdmVyc2lvbl9uYW1lX21hcC5weToKKyAgICAgICAgKFZlcnNpb25OYW1lTWFw
Ll9faW5pdF9fKTogUmVtb3ZlIGFsbCBmdXR1cmUgdmVyc2lvbnMuCisgICAgICAgIChWZXJzaW9u
TmFtZU1hcC5tYXBwaW5nX2Zvcl9wbGF0Zm9ybSk6IFJldHVybiBlbXB0eSBkaWN0cyBpbnN0ZWFk
IG9mCisgICAgICAgIGFzc2VydGluZy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
YXBwbGUucHk6CisgICAgICAgIChBcHBsZVBvcnQpOgorICAgICAgICAoQXBwbGVQb3J0Ll9hbGxv
d2VkX3ZlcnNpb25zKTogUmV0dXJuIGFsbCBhdmFpbGFibGUgdmVyc2lvbnMuCisgICAgICAgIChB
cHBsZVBvcnQuX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKTogSW5zdGVhZCBvZiBw
aWNraW5nIGZyb20gYSBzZXQKKyAgICAgICAgb2YgYWxsb3dlZCB2ZXJzaW9ucywgYXNzdW1lIHRo
YXQgZXZlcnkgc3BlY2lmaWVkIHZlcnNpb24gaXMgYWxsb3dlZC4KKyAgICAgICAgKEFwcGxlUG9y
dC5fcG9ydF9uYW1lX3dpdGhfdmVyc2lvbik6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9wb3J0L2Rhcndpbi5weTogQWRkIENVUlJFTlRfVkVSU0lPTiBvdmVycmlkZGVuIGJ5
IHN1YmNsYXNzZXMuCisgICAgICAgIChEYXJ3aW5Qb3J0KToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvaW9zLnB5OgorICAgICAgICAoSU9TUG9ydCk6CisgICAgICAgIChJT1NQb3J0
LmRlZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgpOiBVc2Ugc3lzdGVtIG9mIGluaGVyaXRhbmNl
IGNlbnRlcmVkIGFyb3VuZAorICAgICAgICB0aGUgY3VycmVudCB2ZXJzaW9uLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHk6CisgICAgICAgIChNYWNQb3J0KToKKyAgICAg
ICAgKE1hY1BvcnQuX19pbml0X18pOiBVc2UgY3VycmVudCB2ZXJzaW9uIGJ5IGRlZmF1bHQuCisg
ICAgICAgIChNYWNQb3J0LmRlZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgpOiBVc2Ugc3lzdGVt
IG9mIGluaGVyaXRhbmNlIGNlbnRlcmVkIGFyb3VuZAorICAgICAgICB0aGUgY3VycmVudCB2ZXJz
aW9uLgorICAgICAgICAoTWFjUG9ydC5jb25maWd1cmF0aW9uX3NwZWNpZmllcl9tYWNyb3MpOiBV
c2UgdGhlIHNhbWUgc2V0IG9mIHZlcnNpb24gbmFtZXMKKyAgICAgICAgc3VwcG9ydGVkIGluIGRl
ZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGguCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9w
b3J0L21hY191bml0dGVzdC5weToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF92ZXJzaW9ucyk6IFJl
bW92ZSAnZnV0dXJlJyB0ZXN0cy4KKwogMjAxOC0wMi0yNyAgQWFrYXNoIEphaW4gIDxhYWthc2hf
amFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHkgQnVnemlsbGEgdHJhbnNhY3Rpb25z
IHNob3VsZCByZXRyeSBvbiBVUkxFcnJvcgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vdmVyc2lvbl9uYW1lX21hcC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5CShyZXZpc2lvbiAyMjkwMjgpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC01OCwxMSArNTgsMTAgQEAgY2xhc3MgVmVyc2lvbk5hbWVNYXAob2JqZWN0KToK
ICAgICAgICAgICAgICAgICAnRWwgQ2FwaXRhbic6IFZlcnNpb24oMTAsIDExKSwKICAgICAgICAg
ICAgICAgICAnU2llcnJhJzogVmVyc2lvbigxMCwgMTIpLAogICAgICAgICAgICAgICAgICdIaWdo
IFNpZXJyYSc6IFZlcnNpb24oMTAsIDEzKSwKLSAgICAgICAgICAgICAgICAnRnV0dXJlJzogVmVy
c2lvbigxMCwgMTQpLAogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICdpb3MnOiBzZWxmLl9h
dXRvbWFwX3RvX21ham9yX3ZlcnNpb24oJ2lPUycsIG1pbmltdW09VmVyc2lvbigxMCksIG1heGlt
dW09VmVyc2lvbigxMikpLAotICAgICAgICAgICAgJ3R2b3MnOiBzZWxmLl9hdXRvbWFwX3RvX21h
am9yX3ZlcnNpb24oJ3R2T1MnLCBtaW5pbXVtPVZlcnNpb24oMTApLCBtYXhpbXVtPVZlcnNpb24o
MTIpKSwKLSAgICAgICAgICAgICd3YXRjaG9zJzogc2VsZi5fYXV0b21hcF90b19tYWpvcl92ZXJz
aW9uKCd3YXRjaE9TJywgbWluaW11bT1WZXJzaW9uKDEpLCBtYXhpbXVtPVZlcnNpb24oNSkpLAor
ICAgICAgICAgICAgJ2lvcyc6IHNlbGYuX2F1dG9tYXBfdG9fbWFqb3JfdmVyc2lvbignaU9TJywg
bWluaW11bT1WZXJzaW9uKDEwKSwgbWF4aW11bT1WZXJzaW9uKDExKSksCisgICAgICAgICAgICAn
dHZvcyc6IHNlbGYuX2F1dG9tYXBfdG9fbWFqb3JfdmVyc2lvbigndHZPUycsIG1pbmltdW09VmVy
c2lvbigxMCksIG1heGltdW09VmVyc2lvbigxMSkpLAorICAgICAgICAgICAgJ3dhdGNob3MnOiBz
ZWxmLl9hdXRvbWFwX3RvX21ham9yX3ZlcnNpb24oJ3dhdGNoT1MnLCBtaW5pbXVtPVZlcnNpb24o
MSksIG1heGltdW09VmVyc2lvbig0KSksCiAgICAgICAgICAgICAnd2luJzogewogICAgICAgICAg
ICAgICAgICdXaW4xMCc6IFZlcnNpb24oMTApLAogICAgICAgICAgICAgICAgICc4LjEnOiBWZXJz
aW9uKDYsIDMpLApAQCAtMTQzLDYgKzE0Miw0IEBAIGNsYXNzIFZlcnNpb25OYW1lTWFwKG9iamVj
dCk6CiAgICAgZGVmIG1hcHBpbmdfZm9yX3BsYXRmb3JtKHNlbGYsIHBsYXRmb3JtPU5vbmUsIHRh
YmxlPVBVQkxJQ19UQUJMRSk6CiAgICAgICAgICIiInJldHVybiBwcm9wZXIgb3NfbmFtZTogb3Nf
dmVyc2lvbiBtYXBwaW5nIGZvciBwbGF0Zm9ybSIiIgogICAgICAgICBwbGF0Zm9ybSA9IHNlbGYu
ZGVmYXVsdF9zeXN0ZW1fcGxhdGZvcm0gaWYgcGxhdGZvcm0gaXMgTm9uZSBlbHNlIHBsYXRmb3Jt
Ci0gICAgICAgIGFzc2VydCB0YWJsZSBpbiBzZWxmLm1hcHBpbmcKLSAgICAgICAgYXNzZXJ0IHBs
YXRmb3JtIGluIHNlbGYubWFwcGluZ1t0YWJsZV0KLSAgICAgICAgcmV0dXJuIHNlbGYubWFwcGlu
Z1t0YWJsZV1bcGxhdGZvcm1dCisgICAgICAgIHJldHVybiBzZWxmLm1hcHBpbmcuZ2V0KHRhYmxl
LCB7fSkuZ2V0KHBsYXRmb3JtLCB7fSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9hcHBsZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYXBw
bGUucHkJKHJldmlzaW9uIDIyOTAyOCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9h
cHBsZS5weQkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQCBmcm9tIHdlYmtpdHB5LmNv
bW1vbi52ZXJzaW9uX25hbWVfbWFwIGltCiBmcm9tIHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQg
UG9ydAogZnJvbSB3ZWJraXRweS5wb3J0LmNvbmZpZyBpbXBvcnQgYXBwbGVfYWRkaXRpb25zCiBm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9jb25maWd1cmF0aW9uIGltcG9y
dCBUZXN0Q29uZmlndXJhdGlvbgorZnJvbSB3ZWJraXRweS5jb21tb24udmVyc2lvbl9uYW1lX21h
cCBpbXBvcnQgUFVCTElDX1RBQkxFCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQpAQCAtNDIsOCArNDMsNiBAQCBjbGFzcyBBcHBsZVBvcnQoUG9ydCk6CiAgICAgIiIiU2hh
cmVkIGxvZ2ljIGJldHdlZW4gYWxsIG9mIEFwcGxlJ3MgcG9ydHMuIiIiCiAKICAgICAjIG92ZXJy
aWRkZW4gaW4gc3ViY2xhc3NlcwotICAgIFZFUlNJT05fTUlOID0gTm9uZQotICAgIFZFUlNJT05f
TUFYID0gTm9uZQogICAgIEFSQ0hJVEVDVFVSRVMgPSBbXQogICAgIF9jcmFzaF9sb2dzX3RvX3Nr
aXBfZm9yX2hvc3QgPSB7fQogCkBAIC05NCwyNSArOTMsMjMgQEAgY2xhc3MgQXBwbGVQb3J0KFBv
cnQpOgogICAgIGRlZiBzaG91bGRfcmV0cnlfY3Jhc2hlcyhzZWxmKToKICAgICAgICAgcmV0dXJu
IFRydWUKIAotICAgICMgRklYTUU6IEEgbW9yZSBzb3BoaXN0aWNhdGVkIHZlcnNpb24gb2YgdGhp
cyBmdW5jdGlvbiBzaG91bGQgbW92ZSB0byBXZWJLaXRQb3J0IGFuZCByZXBsYWNlIGFsbCBjYWxs
cyB0byBuYW1lKCkuCi0gICAgIyBUaGlzIGlzIGFsc28gYSBtaXNsZWFkaW5nIG5hbWUsIHNpbmNl
ICdtYWMtZnV0dXJlJyBnZXRzIHJlbWFwcGVkIHRvICdtYWMnLgotICAgIGRlZiBfcG9ydF9uYW1l
X3dpdGhfdmVyc2lvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYubmFtZSgpLnJlcGxhY2Uo
Jy1mdXR1cmUnLCAnJykucmVwbGFjZSgnLXdrMicsICcnKQotCiAgICAgQG1lbW9pemVkCiAgICAg
ZGVmIF9hbGxvd2VkX3ZlcnNpb25zKHNlbGYpOgotICAgICAgICBpZiBzZWxmLlZFUlNJT05fTUlO
IGlzIE5vbmUgb3Igc2VsZi5WRVJTSU9OX01BWCBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJu
IFtdCi0gICAgICAgIHNvcnRlZF92ZXJzaW9ucyA9IHNvcnRlZChWZXJzaW9uTmFtZU1hcC5tYXAo
c2VsZi5ob3N0LnBsYXRmb3JtKS5tYXBwaW5nX2Zvcl9wbGF0Zm9ybShwbGF0Zm9ybT1zZWxmLnBv
cnRfbmFtZS5zcGxpdCgnLScpWzBdKS52YWx1ZXMoKSkKLSAgICAgICAgcmV0dXJuIHNvcnRlZF92
ZXJzaW9uc1tzb3J0ZWRfdmVyc2lvbnMuaW5kZXgoc2VsZi5WRVJTSU9OX01JTik6c29ydGVkX3Zl
cnNpb25zLmluZGV4KHNlbGYuVkVSU0lPTl9NQVgpICsgMV0KKyAgICAgICAgdmVyc2lvbnMgPSBz
ZXQoKQorICAgICAgICBmb3IgdGFibGUgaW4gW1BVQkxJQ19UQUJMRSwgJ2ludGVybmFsJ106Cisg
ICAgICAgICAgICBmb3IgZWxtIGluIFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZv
cm0pLm1hcHBpbmdfZm9yX3BsYXRmb3JtKHBsYXRmb3JtPXNlbGYucG9ydF9uYW1lLnNwbGl0KCct
JylbMF0sIHRhYmxlPXRhYmxlKS52YWx1ZXMoKToKKyAgICAgICAgICAgICAgICB2ZXJzaW9ucy5h
ZGQoZWxtKQorICAgICAgICByZXR1cm4gc29ydGVkKHZlcnNpb25zKQogCiAgICAgZGVmIF9nZW5l
cmF0ZV9hbGxfdGVzdF9jb25maWd1cmF0aW9ucyhzZWxmKToKICAgICAgICAgY29uZmlndXJhdGlv
bnMgPSBbXQogICAgICAgICBmb3IgdmVyc2lvbiBpbiBzZWxmLl9hbGxvd2VkX3ZlcnNpb25zKCk6
CiAgICAgICAgICAgICBmb3IgYnVpbGRfdHlwZSBpbiBzZWxmLkFMTF9CVUlMRF9UWVBFUzoKICAg
ICAgICAgICAgICAgICBmb3IgYXJjaGl0ZWN0dXJlIGluIHNlbGYuQVJDSElURUNUVVJFUzoKLSAg
ICAgICAgICAgICAgICAgICAgdmVyc2lvbl9uYW1lID0gVmVyc2lvbk5hbWVNYXAubWFwKHNlbGYu
aG9zdC5wbGF0Zm9ybSkudG9fbmFtZSh2ZXJzaW9uLCBwbGF0Zm9ybT1zZWxmLnBvcnRfbmFtZS5z
cGxpdCgnLScpWzBdKQotICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9ucy5hcHBlbmQo
VGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj12ZXJzaW9uX25hbWUsIGFyY2hpdGVjdHVyZT1hcmNo
aXRlY3R1cmUsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgICAgICAgICAgICAgIGZv
ciB0YWJsZSBpbiBbUFVCTElDX1RBQkxFLCAnaW50ZXJuYWwnXToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHZlcnNpb25fbmFtZSA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZv
cm0pLnRvX25hbWUodmVyc2lvbiwgcGxhdGZvcm09c2VsZi5wb3J0X25hbWUuc3BsaXQoJy0nKVsw
XSwgdGFibGU9dGFibGUpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB2ZXJzaW9uX25hbWU6
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuYXBwZW5kKFRlc3RD
b25maWd1cmF0aW9uKHZlcnNpb249dmVyc2lvbl9uYW1lLCBhcmNoaXRlY3R1cmU9YXJjaGl0ZWN0
dXJlLCBidWlsZF90eXBlPWJ1aWxkX3R5cGUpKQogICAgICAgICByZXR1cm4gY29uZmlndXJhdGlv
bnMKIAogICAgIGRlZiBfYXBwbGVfYmFzZWxpbmVfcGF0aChzZWxmLCBwbGF0Zm9ybSk6CkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGFyd2luLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHkJKHJldmlzaW9uIDIyOTAyOCkKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHkJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDYgKzM2LDcgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBjbGFz
cyBEYXJ3aW5Qb3J0KEFwcGxlUG9ydCk6CiAKKyAgICBDVVJSRU5UX1ZFUlNJT04gPSBOb25lCiAg
ICAgU0RLID0gTm9uZQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnRfbmFtZSwg
Kiprd2FyZ3MpOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CShyZXZpc2lvbiAy
MjkwMjgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw4ICszNyw3IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykK
IGNsYXNzIElPU1BvcnQoRGFyd2luUG9ydCk6CiAgICAgcG9ydF9uYW1lID0gImlvcyIKIAotICAg
IFZFUlNJT05fTUlOID0gVmVyc2lvbigxMSkKLSAgICBWRVJTSU9OX01BWCA9IFZlcnNpb24oMTIp
CisgICAgQ1VSUkVOVF9WRVJTSU9OID0gVmVyc2lvbigxMSkKIAogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBob3N0LCBwb3J0X25hbWUsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoSU9TUG9ydCwg
c2VsZikuX19pbml0X18oaG9zdCwgcG9ydF9uYW1lLCAqKmt3YXJncykKQEAgLTk1LDE5ICs5NCwy
NiBAQCBjbGFzcyBJT1NQb3J0KERhcndpblBvcnQpOgogICAgICAgICB3a19zdHJpbmcgPSAnd2sx
JwogICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpOgogICAg
ICAgICAgICAgd2tfc3RyaW5nID0gJ3drMicKLSAgICAgICAgIyBJZiB3ZSBkb24ndCBoYXZlIGEg
c3BlY2lmaWVkIHZlcnNpb24sIHRoYXQgbWVhbnMgd2UgdXNpbmcgdGhlIHBvcnQgd2l0aG91dCBh
biBTREsuCi0gICAgICAgICMgVGhpcyB1c3VhbGx5IG1lYW5zIHdlJ3JlIGRvaW5nIHNvbWUgdHlw
ZSBvZiB0ZXN0aW5nLkluIHRoaXMgY2FzZSwgZG9uJ3QgYWRkIHZlcnNpb24gZmFsbGJhY2tzCi0g
ICAgICAgIGV4cGVjdGF0aW9ucyA9IFtdCi0gICAgICAgIGlmIGFwcGxlX2FkZGl0aW9ucygpIGFu
ZCBzZWxmLmlvc192ZXJzaW9uKCk6Ci0gICAgICAgICAgICBhcHBsZV9uYW1lID0gVmVyc2lvbk5h
bWVNYXAubWFwKHNlbGYuaG9zdC5wbGF0Zm9ybSkudG9fbmFtZShzZWxmLmlvc192ZXJzaW9uKCks
IHBsYXRmb3JtPUlPU1BvcnQucG9ydF9uYW1lLCB0YWJsZT0naW50ZXJuYWwnKS5sb3dlcigpLnJl
cGxhY2UoJyAnLCAnJykKKworICAgICAgICB2ZXJzaW9uX2ZhbGxiYWNrID0gW10KKyAgICAgICAg
aWYgc2VsZi5pb3NfdmVyc2lvbigpID09IHNlbGYuQ1VSUkVOVF9WRVJTSU9OOgorICAgICAgICAg
ICAgdmVyc2lvbl9mYWxsYmFjayA9IFtzZWxmLmlvc192ZXJzaW9uKCldCiAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBhcHBsZV9uYW1lID0gTm9uZQotICAgICAgICBpZiBzZWxmLmlvc192ZXJz
aW9uKCk6CisgICAgICAgICAgICB0ZW1wX3ZlcnNpb24gPSBWZXJzaW9uKHNlbGYuaW9zX3ZlcnNp
b24oKS5tYWpvcikKKyAgICAgICAgICAgIGluY3JlbWVudCA9ICgtMSkgaWYgc2VsZi5pb3NfdmVy
c2lvbigpID4gc2VsZi5DVVJSRU5UX1ZFUlNJT04gZWxzZSAxCisgICAgICAgICAgICB3aGlsZSB0
ZW1wX3ZlcnNpb24gIT0gc2VsZi5DVVJSRU5UX1ZFUlNJT046CisgICAgICAgICAgICAgICAgdmVy
c2lvbl9mYWxsYmFjay5hcHBlbmQodGVtcF92ZXJzaW9uKQorICAgICAgICAgICAgICAgIHRlbXBf
dmVyc2lvbiA9IFZlcnNpb24uZnJvbV9pdGVyYWJsZSh0ZW1wX3ZlcnNpb24pCisgICAgICAgICAg
ICAgICAgdGVtcF92ZXJzaW9uLm1ham9yICs9IGluY3JlbWVudAorCisgICAgICAgIGV4cGVjdGF0
aW9ucyA9IFtdCisgICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25fZmFsbGJhY2s6CisgICAg
ICAgICAgICBhcHBsZV9uYW1lID0gVmVyc2lvbk5hbWVNYXAubWFwKHNlbGYuaG9zdC5wbGF0Zm9y
bSkudG9fbmFtZSh2ZXJzaW9uLCBwbGF0Zm9ybT1JT1NQb3J0LnBvcnRfbmFtZSwgdGFibGU9J2lu
dGVybmFsJykgaWYgYXBwbGVfYWRkaXRpb25zKCkgZWxzZSBOb25lCiAgICAgICAgICAgICBpZiBh
cHBsZV9uYW1lOgotICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fYXBw
bGVfYmFzZWxpbmVfcGF0aCgne30te30te30nLmZvcm1hdChzZWxmLnBvcnRfbmFtZSwgYXBwbGVf
bmFtZSwgd2tfc3RyaW5nKSkpCisgICAgICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChz
ZWxmLl9hcHBsZV9iYXNlbGluZV9wYXRoKCd7fS17fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1l
LCBhcHBsZV9uYW1lLmxvd2VyKCkucmVwbGFjZSgnICcsICcnKSwgd2tfc3RyaW5nKSkpCiAgICAg
ICAgICAgICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCd7
fS17fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCBzZWxmLmlvc192ZXJzaW9uKCkubWFqb3Is
IHdrX3N0cmluZykpKQogICAgICAgICAgICAgaWYgYXBwbGVfbmFtZToKLSAgICAgICAgICAgICAg
ICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX2FwcGxlX2Jhc2VsaW5lX3BhdGgoJ3t9LXt9Jy5m
b3JtYXQoc2VsZi5wb3J0X25hbWUsIGFwcGxlX25hbWUpKSkKKyAgICAgICAgICAgICAgICBleHBl
Y3RhdGlvbnMuYXBwZW5kKHNlbGYuX2FwcGxlX2Jhc2VsaW5lX3BhdGgoJ3t9LXt9Jy5mb3JtYXQo
c2VsZi5wb3J0X25hbWUsIGFwcGxlX25hbWUubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpKSkpCiAg
ICAgICAgICAgICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRo
KCd7fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCBzZWxmLmlvc192ZXJzaW9uKCkubWFqb3Ip
KSkKIAogICAgICAgICBpZiBhcHBsZV9hZGRpdGlvbnMoKToKQEAgLTExNyw5ICsxMjMsMTAgQEAg
Y2xhc3MgSU9TUG9ydChEYXJ3aW5Qb3J0KToKICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBl
bmQoc2VsZi5fYXBwbGVfYmFzZWxpbmVfcGF0aChzZWxmLnBvcnRfbmFtZSkpCiAgICAgICAgIGV4
cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoc2VsZi5wb3J0X25h
bWUpKQogCi0gICAgICAgIGlmIHNlbGYuaW9zX3ZlcnNpb24oKToKKyAgICAgICAgZm9yIHZlcnNp
b24gaW4gdmVyc2lvbl9mYWxsYmFjazoKKyAgICAgICAgICAgIGFwcGxlX25hbWUgPSBWZXJzaW9u
TmFtZU1hcC5tYXAoc2VsZi5ob3N0LnBsYXRmb3JtKS50b19uYW1lKHZlcnNpb24sIHBsYXRmb3Jt
PUlPU1BvcnQucG9ydF9uYW1lLCB0YWJsZT0naW50ZXJuYWwnKSBpZiBhcHBsZV9hZGRpdGlvbnMo
KSBlbHNlIE5vbmUKICAgICAgICAgICAgIGlmIGFwcGxlX25hbWU6Ci0gICAgICAgICAgICAgICAg
ZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNlbGluZV9wYXRoKCd7fS17fScuZm9y
bWF0KElPU1BvcnQucG9ydF9uYW1lLCBhcHBsZV9uYW1lKSkpCisgICAgICAgICAgICAgICAgZXhw
ZWN0YXRpb25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNlbGluZV9wYXRoKCd7fS17fScuZm9ybWF0
KElPU1BvcnQucG9ydF9uYW1lLCBhcHBsZV9uYW1lLmxvd2VyKCkucmVwbGFjZSgnICcsICcnKSkp
KQogICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl93ZWJraXRfYmFzZWxpbmVf
cGF0aCgne30te30nLmZvcm1hdChJT1NQb3J0LnBvcnRfbmFtZSwgc2VsZi5pb3NfdmVyc2lvbigp
Lm1ham9yKSkpCiAKICAgICAgICAgaWYgYXBwbGVfYWRkaXRpb25zKCk6CkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9tYWMucHkJKHJldmlzaW9uIDIyOTAyOCkKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9tYWMucHkJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAgaW1w
b3J0IHJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCitmcm9tIHdlYmtpdHB5
LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBQVUJMSUNfVEFCTEUKIGZyb20gd2Via2l0
cHkuY29tbW9uLnZlcnNpb25fbmFtZV9tYXAgaW1wb3J0IFZlcnNpb25OYW1lTWFwCiBmcm9tIHdl
YmtpdHB5LnBvcnQuY29uZmlnIGltcG9ydCBhcHBsZV9hZGRpdGlvbnMKIGZyb20gd2Via2l0cHku
cG9ydC5kYXJ3aW4gaW1wb3J0IERhcndpblBvcnQKQEAgLTQ0LDggKzQ1LDcgQEAgX2xvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogY2xhc3MgTWFjUG9ydChEYXJ3aW5Qb3J0KToKICAg
ICBwb3J0X25hbWUgPSAibWFjIgogCi0gICAgVkVSU0lPTl9NSU4gPSBWZXJzaW9uKDEwLCA2KQot
ICAgIFZFUlNJT05fTUFYID0gVmVyc2lvbigxMCwgMTQpCisgICAgQ1VSUkVOVF9WRVJTSU9OID0g
VmVyc2lvbigxMCwgMTMpCiAKICAgICBTREsgPSAnbWFjb3N4JwogCkBAIC02MSwzNyArNjEsNDMg
QEAgY2xhc3MgTWFjUG9ydChEYXJ3aW5Qb3J0KToKICAgICAgICAgZWxpZiBzZWxmLmhvc3QucGxh
dGZvcm0uaXNfbWFjKCk6CiAgICAgICAgICAgICBzZWxmLl9vc192ZXJzaW9uID0gc2VsZi5ob3N0
LnBsYXRmb3JtLm9zX3ZlcnNpb24KICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNvcnRlZF92
ZXJzaW9ucyA9IHNvcnRlZCh2ZXJzaW9uX25hbWVfbWFwLm1hcHBpbmdfZm9yX3BsYXRmb3JtKHBs
YXRmb3JtPXNlbGYucG9ydF9uYW1lKS52YWx1ZXMoKSkKLSAgICAgICAgICAgIHNlbGYuX29zX3Zl
cnNpb24gPSBzb3J0ZWRfdmVyc2lvbnNbc29ydGVkX3ZlcnNpb25zLmluZGV4KHNlbGYuVkVSU0lP
Tl9NQVgpIC0gMV0KKyAgICAgICAgICAgIHNlbGYuX29zX3ZlcnNpb24gPSBNYWNQb3J0LkNVUlJF
TlRfVkVSU0lPTgogCiAgICAgZGVmIF9idWlsZF9kcml2ZXJfZmxhZ3Moc2VsZik6CiAgICAgICAg
IHJldHVybiBbJ0FSQ0hTPWkzODYnXSBpZiBzZWxmLmFyY2hpdGVjdHVyZSgpID09ICd4ODYnIGVs
c2UgW10KIAogICAgIEBtZW1vaXplZAogICAgIGRlZiBkZWZhdWx0X2Jhc2VsaW5lX3NlYXJjaF9w
YXRoKHNlbGYpOgorICAgICAgICB2ZXJzaW9uX2ZhbGxiYWNrID0gW10KICAgICAgICAgdmVyc2lv
bl9uYW1lX21hcCA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0pCi0gICAg
ICAgIGlmIHNlbGYuX29zX3ZlcnNpb24gPCBzZWxmLlZFUlNJT05fTUlOIG9yIHNlbGYuX29zX3Zl
cnNpb24gPj0gc2VsZi5WRVJTSU9OX01BWDoKKworICAgICAgICBpZiBzZWxmLl9vc192ZXJzaW9u
ID09IHNlbGYuQ1VSUkVOVF9WRVJTSU9OOgogICAgICAgICAgICAgdmVyc2lvbl9mYWxsYmFjayA9
IFtzZWxmLl9vc192ZXJzaW9uXQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc29ydGVkX3Zl
cnNpb25zID0gc29ydGVkKHZlcnNpb25fbmFtZV9tYXAubWFwcGluZ19mb3JfcGxhdGZvcm0ocGxh
dGZvcm09c2VsZi5wb3J0X25hbWUpLnZhbHVlcygpKQotICAgICAgICAgICAgdmVyc2lvbl9mYWxs
YmFjayA9IHNvcnRlZF92ZXJzaW9uc1tzb3J0ZWRfdmVyc2lvbnMuaW5kZXgoc2VsZi5fb3NfdmVy
c2lvbik6LTFdCisgICAgICAgICAgICB0ZW1wX3ZlcnNpb24gPSBWZXJzaW9uKHNlbGYuX29zX3Zl
cnNpb24ubWFqb3IsIHNlbGYuX29zX3ZlcnNpb24ubWlub3IpCisgICAgICAgICAgICBpbmNyZW1l
bnQgPSAoLTEpIGlmIHNlbGYuX29zX3ZlcnNpb24gPiBzZWxmLkNVUlJFTlRfVkVSU0lPTiBlbHNl
IDEKKyAgICAgICAgICAgIHdoaWxlIHRlbXBfdmVyc2lvbiAhPSBzZWxmLkNVUlJFTlRfVkVSU0lP
TjoKKyAgICAgICAgICAgICAgICB2ZXJzaW9uX2ZhbGxiYWNrLmFwcGVuZCh0ZW1wX3ZlcnNpb24p
CisgICAgICAgICAgICAgICAgdGVtcF92ZXJzaW9uID0gVmVyc2lvbi5mcm9tX2l0ZXJhYmxlKHRl
bXBfdmVyc2lvbikKKyAgICAgICAgICAgICAgICB0ZW1wX3ZlcnNpb24ubWlub3IgKz0gaW5jcmVt
ZW50CiAgICAgICAgIHdrX3N0cmluZyA9ICd3azEnCiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlv
bignd2Via2l0X3Rlc3RfcnVubmVyJyk6CiAgICAgICAgICAgICB3a19zdHJpbmcgPSAnd2syJwog
CiAgICAgICAgIGV4cGVjdGF0aW9ucyA9IFtdCiAgICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNp
b25fZmFsbGJhY2s6Ci0gICAgICAgICAgICB2ZXJzaW9uX25hbWUgPSB2ZXJzaW9uX25hbWVfbWFw
LnRvX25hbWUodmVyc2lvbiwgcGxhdGZvcm09c2VsZi5wb3J0X25hbWUpLmxvd2VyKCkucmVwbGFj
ZSgnICcsICcnKQotICAgICAgICAgICAgaWYgYXBwbGVfYWRkaXRpb25zKCk6Ci0gICAgICAgICAg
ICAgICAgYXBwbGVfbmFtZSA9IHZlcnNpb25fbmFtZV9tYXAudG9fbmFtZSh2ZXJzaW9uLCBwbGF0
Zm9ybT1zZWxmLnBvcnRfbmFtZSwgdGFibGU9J2ludGVybmFsJykKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgYXBwbGVfbmFtZSA9IE5vbmUKKyAgICAgICAgICAgIHZlcnNpb25f
bmFtZSA9IHZlcnNpb25fbmFtZV9tYXAudG9fbmFtZSh2ZXJzaW9uLCBwbGF0Zm9ybT1zZWxmLnBv
cnRfbmFtZSkKKyAgICAgICAgICAgIGlmIHZlcnNpb25fbmFtZToKKyAgICAgICAgICAgICAgICBz
dGFuZGFyZGl6ZWRfdmVyc2lvbl9uYW1lID0gdmVyc2lvbl9uYW1lLmxvd2VyKCkucmVwbGFjZSgn
ICcsICcnKQorICAgICAgICAgICAgYXBwbGVfbmFtZSA9IHZlcnNpb25fbmFtZV9tYXAudG9fbmFt
ZSh2ZXJzaW9uLCBwbGF0Zm9ybT1zZWxmLnBvcnRfbmFtZSwgdGFibGU9J2ludGVybmFsJykgaWYg
YXBwbGVfYWRkaXRpb25zKCkgZWxzZSBOb25lCiAgICAgICAgICAgICBpZiBhcHBsZV9uYW1lOgog
ICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fYXBwbGVfYmFzZWxpbmVf
cGF0aCgnbWFjLXt9LXt9Jy5mb3JtYXQoYXBwbGVfbmFtZS5sb3dlcigpLnJlcGxhY2UoJyAnLCAn
JyksIHdrX3N0cmluZykpKQotICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl93
ZWJraXRfYmFzZWxpbmVfcGF0aCgnbWFjLXt9LXt9Jy5mb3JtYXQodmVyc2lvbl9uYW1lLCB3a19z
dHJpbmcpKSkKKyAgICAgICAgICAgIGlmIHZlcnNpb25fbmFtZToKKyAgICAgICAgICAgICAgICBl
eHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdtYWMte30te30n
LmZvcm1hdChzdGFuZGFyZGl6ZWRfdmVyc2lvbl9uYW1lLCB3a19zdHJpbmcpKSkKICAgICAgICAg
ICAgIGlmIGFwcGxlX25hbWU6CiAgICAgICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChz
ZWxmLl9hcHBsZV9iYXNlbGluZV9wYXRoKCdtYWMte30nLmZvcm1hdChhcHBsZV9uYW1lLmxvd2Vy
KCkucmVwbGFjZSgnICcsICcnKSkpKQotICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChz
ZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgnbWFjLXt9Jy5mb3JtYXQodmVyc2lvbl9uYW1lKSkp
CisgICAgICAgICAgICBpZiB2ZXJzaW9uX25hbWU6CisgICAgICAgICAgICAgICAgZXhwZWN0YXRp
b25zLmFwcGVuZChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgnbWFjLXt9Jy5mb3JtYXQoc3Rh
bmRhcmRpemVkX3ZlcnNpb25fbmFtZSkpKQogCiAgICAgICAgIGlmIGFwcGxlX2FkZGl0aW9ucygp
OgogICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNlbGluZV9w
YXRoKCd7fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCB3a19zdHJpbmcpKSkKQEAgLTEwOCwx
MiArMTE0LDE4IEBAIGNsYXNzIE1hY1BvcnQoRGFyd2luUG9ydCk6CiAgICAgZGVmIGNvbmZpZ3Vy
YXRpb25fc3BlY2lmaWVyX21hY3JvcyhzZWxmKToKICAgICAgICAgbWFwID0ge30KICAgICAgICAg
dmVyc2lvbl9uYW1lX21hcCA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0p
Ci0gICAgICAgIHNvcnRlZF92ZXJzaW9ucyA9IHNvcnRlZCh2ZXJzaW9uX25hbWVfbWFwLm1hcHBp
bmdfZm9yX3BsYXRmb3JtKHBsYXRmb3JtPXNlbGYucG9ydF9uYW1lKS52YWx1ZXMoKSkKLSAgICAg
ICAgZm9yIHZlcnNpb24gaW4gc29ydGVkX3ZlcnNpb25zOgorICAgICAgICBmb3IgdmVyc2lvbiBp
biBzZWxmLl9hbGxvd2VkX3ZlcnNpb25zKCk6CiAgICAgICAgICAgICBsaXN0ID0gW10KLSAgICAg
ICAgICAgIGZvciBuZXdlciBpbiBzb3J0ZWRfdmVyc2lvbnNbc29ydGVkX3ZlcnNpb25zLmluZGV4
KHZlcnNpb24pOl06Ci0gICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQodmVyc2lvbl9uYW1lX21h
cC50b19uYW1lKG5ld2VyLCBwbGF0Zm9ybT1zZWxmLnBvcnRfbmFtZSkubG93ZXIoKS5yZXBsYWNl
KCcgJywgJycpKQotICAgICAgICAgICAgbWFwW3ZlcnNpb25fbmFtZV9tYXAudG9fbmFtZSh2ZXJz
aW9uLCBwbGF0Zm9ybT1zZWxmLnBvcnRfbmFtZSkubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpICsg
JysnXSA9IGxpc3QKKyAgICAgICAgICAgIGZvciBuZXdlciBpbiBzZWxmLl9hbGxvd2VkX3ZlcnNp
b25zKClbc2VsZi5fYWxsb3dlZF92ZXJzaW9ucygpLmluZGV4KHZlcnNpb24pOl06CisgICAgICAg
ICAgICAgICAgbmFtZSA9IHZlcnNpb25fbmFtZV9tYXAudG9fbmFtZShuZXdlciwgcGxhdGZvcm09
c2VsZi5wb3J0X25hbWUpCisgICAgICAgICAgICAgICAgaWYgbm90IG5hbWU6CisgICAgICAgICAg
ICAgICAgICAgIG5hbWUgPSB2ZXJzaW9uX25hbWVfbWFwLnRvX25hbWUobmV3ZXIsIHBsYXRmb3Jt
PXNlbGYucG9ydF9uYW1lLCB0YWJsZT0naW50ZXJuYWwnKQorICAgICAgICAgICAgICAgIGxpc3Qu
YXBwZW5kKG5hbWUubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpKQorICAgICAgICAgICAgZm9yIHRh
YmxlIGluIFtQVUJMSUNfVEFCTEUsICdpbnRlcm5hbCddOgorICAgICAgICAgICAgICAgIG5hbWUg
PSB2ZXJzaW9uX25hbWVfbWFwLnRvX25hbWUodmVyc2lvbiwgcGxhdGZvcm09c2VsZi5wb3J0X25h
bWUsIHRhYmxlPXRhYmxlKQorICAgICAgICAgICAgICAgIGlmIG5vdCBuYW1lOgorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIG1hcFtuYW1lLmxvd2VyKCkucmVw
bGFjZSgnICcsICcnKSArICcrJ10gPSBsaXN0CiAgICAgICAgIHJldHVybiBtYXAKIAogICAgIGRl
ZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZiwgc2VydmVyX25hbWU9Tm9uZSk6CkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkJKHJldmlzaW9u
IDIyOTAyOCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTY4LDggKzY4LDYgQEAgY2xhc3MgTWFjVGVzdChkYXJ3aW5fdGVz
dGNhc2UuRGFyd2luVGVzdAogICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdtYWMnLCAnaGlnaHNp
ZXJyYScsICdtYWMtaGlnaHNpZXJyYScpCiAgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ21hYy1o
aWdoc2llcnJhJywgJ2VsY2FwaXRhbicsICdtYWMtaGlnaHNpZXJyYScpCiAgICAgICAgIHNlbGYu
YXNzZXJ0X25hbWUoJ21hYy1oaWdoc2llcnJhJywgJ3NpZXJyYScsICdtYWMtaGlnaHNpZXJyYScp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ21hYycsICdmdXR1cmUnLCAnbWFjLWZ1dHVyZScp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ21hYy1mdXR1cmUnLCAnZnV0dXJlJywgJ21hYy1m
dXR1cmUnKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgc2VsZi5h
c3NlcnRfbmFtZSwgJ21hYy10aWdlcicsICdsZW9wYXJkJywgJ21hYy1sZW9wYXJkJykKIAogICAg
IGRlZiB0ZXN0X3NldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334715</attachid>
            <date>2018-02-27 16:58:36 -0800</date>
            <delta_ts>2018-02-27 17:28:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183184-20180227165835.patch</filename>
            <type>text/plain</type>
            <size>20530</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyOTA2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUzIEBACisyMDE4LTAyLTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW1vdmUgY29uY2VwdCBvZiAnZnV0dXJlJworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMTg0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zNzk1ODU5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdmUgY29uY2VwdCBvZiAnZnV0dXJlJyBmcm9tIGV4cGVjdGF0aW9ucyBh
bmQgaW5zdGVhZAorICAgICAgICB1c2UgYSBzeXN0ZW0gb2YgaW5oZXJpdGFuY2UgY2VudGVyZWQg
YXJvdW5kIHRoZSBjdXJyZW50IHZlcnNpb24KKyAgICAgICAgb2YgYW4gT1MgZm9yIE1hYyBhbmQg
aU9TLgorCisgICAgICAgIEluaGVyaXRhbmNlIHdvcmtzIGxpa2Ugc286CisKKyAgICAgICAgfCAu
Li4uCisgICAgICAgIFYgRnV0dXJlCisgICAgICAgID4gSGlnaCBTaWVycmEgKG1hYykKKyAgICAg
ICAgXiBtYWMtc2llcnJhCisgICAgICAgIHwgbWFjLWVsY2FwaXRhbgorICAgICAgICB8IC4uLi4K
KworICAgICAgICBUaGlzIGRvZXMgbm90IGNoYW5nZSBleHBlY3RhdGlvbiBpbmhlcml0YW5jZSBm
b3IgYW55IGN1cnJlbnRseSBydW5uaW5nCisgICAgICAgIGNvbmZpZ3VyYXRpb25zLCBpdCBnZW5l
cmFsaXplcyB0aGUgbG9naWMgYWxyZWFkeSB1c2VkLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vdmVyc2lvbl9uYW1lX21hcC5weToKKyAgICAgICAgKFZlcnNpb25OYW1lTWFw
Ll9faW5pdF9fKTogUmVtb3ZlIGFsbCBmdXR1cmUgdmVyc2lvbnMuCisgICAgICAgIChWZXJzaW9u
TmFtZU1hcC5tYXBwaW5nX2Zvcl9wbGF0Zm9ybSk6IFJldHVybiBlbXB0eSBkaWN0cyBpbnN0ZWFk
IG9mCisgICAgICAgIGFzc2VydGluZy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
YXBwbGUucHk6CisgICAgICAgIChBcHBsZVBvcnQpOgorICAgICAgICAoQXBwbGVQb3J0Ll9hbGxv
d2VkX3ZlcnNpb25zKTogUmV0dXJuIGFsbCBhdmFpbGFibGUgdmVyc2lvbnMuCisgICAgICAgIChB
cHBsZVBvcnQuX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKTogSW5zdGVhZCBvZiBw
aWNraW5nIGZyb20gYSBzZXQKKyAgICAgICAgb2YgYWxsb3dlZCB2ZXJzaW9ucywgYXNzdW1lIHRo
YXQgZXZlcnkgc3BlY2lmaWVkIHZlcnNpb24gaXMgYWxsb3dlZC4KKyAgICAgICAgKEFwcGxlUG9y
dC5fcG9ydF9uYW1lX3dpdGhfdmVyc2lvbik6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9wb3J0L2Rhcndpbi5weTogQWRkIENVUlJFTlRfVkVSU0lPTiBvdmVycmlkZGVuIGJ5
IHN1YmNsYXNzZXMuCisgICAgICAgIChEYXJ3aW5Qb3J0KToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvaW9zLnB5OgorICAgICAgICAoSU9TUG9ydCk6CisgICAgICAgIChJT1NQb3J0
LmRlZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgpOiBVc2Ugc3lzdGVtIG9mIGluaGVyaXRhbmNl
IGNlbnRlcmVkIGFyb3VuZAorICAgICAgICB0aGUgY3VycmVudCB2ZXJzaW9uLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHk6CisgICAgICAgIChNYWNQb3J0KToKKyAgICAg
ICAgKE1hY1BvcnQuX19pbml0X18pOiBVc2UgY3VycmVudCB2ZXJzaW9uIGJ5IGRlZmF1bHQuCisg
ICAgICAgIChNYWNQb3J0LmRlZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgpOiBVc2Ugc3lzdGVt
IG9mIGluaGVyaXRhbmNlIGNlbnRlcmVkIGFyb3VuZAorICAgICAgICB0aGUgY3VycmVudCB2ZXJz
aW9uLgorICAgICAgICAoTWFjUG9ydC5jb25maWd1cmF0aW9uX3NwZWNpZmllcl9tYWNyb3MpOiBV
c2UgdGhlIHNhbWUgc2V0IG9mIHZlcnNpb24gbmFtZXMKKyAgICAgICAgc3VwcG9ydGVkIGluIGRl
ZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGguCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9w
b3J0L21hY191bml0dGVzdC5weToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF92ZXJzaW9ucyk6IFJl
bW92ZSAnZnV0dXJlJyB0ZXN0cy4KKwogMjAxOC0wMi0yNyAgQWFrYXNoIEphaW4gIDxhYWthc2hf
amFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHkgQnVnemlsbGEgdHJhbnNhY3Rpb25z
IHNob3VsZCByZXRyeSBvbiBVUkxFcnJvcgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vdmVyc2lvbl9uYW1lX21hcC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5CShyZXZpc2lvbiAyMjkwMjgpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNpb24gaW1w
b3J0IFZlcnMKIAogCiBQVUJMSUNfVEFCTEUgPSAncHVibGljJworSU5URVJOQUxfVEFCTEUgPSAn
aW50ZXJuYWwnCiAKIAogY2xhc3MgVmVyc2lvbk5hbWVNYXAob2JqZWN0KToKQEAgLTU4LDExICs1
OSwxMCBAQCBjbGFzcyBWZXJzaW9uTmFtZU1hcChvYmplY3QpOgogICAgICAgICAgICAgICAgICdF
bCBDYXBpdGFuJzogVmVyc2lvbigxMCwgMTEpLAogICAgICAgICAgICAgICAgICdTaWVycmEnOiBW
ZXJzaW9uKDEwLCAxMiksCiAgICAgICAgICAgICAgICAgJ0hpZ2ggU2llcnJhJzogVmVyc2lvbigx
MCwgMTMpLAotICAgICAgICAgICAgICAgICdGdXR1cmUnOiBWZXJzaW9uKDEwLCAxNCksCiAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgJ2lvcyc6IHNlbGYuX2F1dG9tYXBfdG9fbWFqb3JfdmVy
c2lvbignaU9TJywgbWluaW11bT1WZXJzaW9uKDEwKSwgbWF4aW11bT1WZXJzaW9uKDEyKSksCi0g
ICAgICAgICAgICAndHZvcyc6IHNlbGYuX2F1dG9tYXBfdG9fbWFqb3JfdmVyc2lvbigndHZPUycs
IG1pbmltdW09VmVyc2lvbigxMCksIG1heGltdW09VmVyc2lvbigxMikpLAotICAgICAgICAgICAg
J3dhdGNob3MnOiBzZWxmLl9hdXRvbWFwX3RvX21ham9yX3ZlcnNpb24oJ3dhdGNoT1MnLCBtaW5p
bXVtPVZlcnNpb24oMSksIG1heGltdW09VmVyc2lvbig1KSksCisgICAgICAgICAgICAnaW9zJzog
c2VsZi5fYXV0b21hcF90b19tYWpvcl92ZXJzaW9uKCdpT1MnLCBtaW5pbXVtPVZlcnNpb24oMTAp
LCBtYXhpbXVtPVZlcnNpb24oMTEpKSwKKyAgICAgICAgICAgICd0dm9zJzogc2VsZi5fYXV0b21h
cF90b19tYWpvcl92ZXJzaW9uKCd0dk9TJywgbWluaW11bT1WZXJzaW9uKDEwKSwgbWF4aW11bT1W
ZXJzaW9uKDExKSksCisgICAgICAgICAgICAnd2F0Y2hvcyc6IHNlbGYuX2F1dG9tYXBfdG9fbWFq
b3JfdmVyc2lvbignd2F0Y2hPUycsIG1pbmltdW09VmVyc2lvbigxKSwgbWF4aW11bT1WZXJzaW9u
KDQpKSwKICAgICAgICAgICAgICd3aW4nOiB7CiAgICAgICAgICAgICAgICAgJ1dpbjEwJzogVmVy
c2lvbigxMCksCiAgICAgICAgICAgICAgICAgJzguMSc6IFZlcnNpb24oNiwgMyksCkBAIC0xNDMs
NiArMTQzLDQgQEAgY2xhc3MgVmVyc2lvbk5hbWVNYXAob2JqZWN0KToKICAgICBkZWYgbWFwcGlu
Z19mb3JfcGxhdGZvcm0oc2VsZiwgcGxhdGZvcm09Tm9uZSwgdGFibGU9UFVCTElDX1RBQkxFKToK
ICAgICAgICAgIiIicmV0dXJuIHByb3BlciBvc19uYW1lOiBvc192ZXJzaW9uIG1hcHBpbmcgZm9y
IHBsYXRmb3JtIiIiCiAgICAgICAgIHBsYXRmb3JtID0gc2VsZi5kZWZhdWx0X3N5c3RlbV9wbGF0
Zm9ybSBpZiBwbGF0Zm9ybSBpcyBOb25lIGVsc2UgcGxhdGZvcm0KLSAgICAgICAgYXNzZXJ0IHRh
YmxlIGluIHNlbGYubWFwcGluZwotICAgICAgICBhc3NlcnQgcGxhdGZvcm0gaW4gc2VsZi5tYXBw
aW5nW3RhYmxlXQotICAgICAgICByZXR1cm4gc2VsZi5tYXBwaW5nW3RhYmxlXVtwbGF0Zm9ybV0K
KyAgICAgICAgcmV0dXJuIHNlbGYubWFwcGluZy5nZXQodGFibGUsIHt9KS5nZXQocGxhdGZvcm0s
IHt9KQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2FwcGxlLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9hcHBsZS5weQkocmV2aXNpb24gMjI5
MDI4KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2FwcGxlLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMyw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNpb25fbmFtZV9t
YXAgaW0KIGZyb20gd2Via2l0cHkucG9ydC5iYXNlIGltcG9ydCBQb3J0CiBmcm9tIHdlYmtpdHB5
LnBvcnQuY29uZmlnIGltcG9ydCBhcHBsZV9hZGRpdGlvbnMKIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9u
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBQVUJMSUNfVEFC
TEUsIElOVEVSTkFMX1RBQkxFCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQpAQCAtNDIsOCArNDMsNiBAQCBjbGFzcyBBcHBsZVBvcnQoUG9ydCk6CiAgICAgIiIiU2hhcmVk
IGxvZ2ljIGJldHdlZW4gYWxsIG9mIEFwcGxlJ3MgcG9ydHMuIiIiCiAKICAgICAjIG92ZXJyaWRk
ZW4gaW4gc3ViY2xhc3NlcwotICAgIFZFUlNJT05fTUlOID0gTm9uZQotICAgIFZFUlNJT05fTUFY
ID0gTm9uZQogICAgIEFSQ0hJVEVDVFVSRVMgPSBbXQogICAgIF9jcmFzaF9sb2dzX3RvX3NraXBf
Zm9yX2hvc3QgPSB7fQogCkBAIC05NCwyNSArOTMsMjIgQEAgY2xhc3MgQXBwbGVQb3J0KFBvcnQp
OgogICAgIGRlZiBzaG91bGRfcmV0cnlfY3Jhc2hlcyhzZWxmKToKICAgICAgICAgcmV0dXJuIFRy
dWUKIAotICAgICMgRklYTUU6IEEgbW9yZSBzb3BoaXN0aWNhdGVkIHZlcnNpb24gb2YgdGhpcyBm
dW5jdGlvbiBzaG91bGQgbW92ZSB0byBXZWJLaXRQb3J0IGFuZCByZXBsYWNlIGFsbCBjYWxscyB0
byBuYW1lKCkuCi0gICAgIyBUaGlzIGlzIGFsc28gYSBtaXNsZWFkaW5nIG5hbWUsIHNpbmNlICdt
YWMtZnV0dXJlJyBnZXRzIHJlbWFwcGVkIHRvICdtYWMnLgotICAgIGRlZiBfcG9ydF9uYW1lX3dp
dGhfdmVyc2lvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYubmFtZSgpLnJlcGxhY2UoJy1m
dXR1cmUnLCAnJykucmVwbGFjZSgnLXdrMicsICcnKQotCiAgICAgQG1lbW9pemVkCiAgICAgZGVm
IF9hbGxvd2VkX3ZlcnNpb25zKHNlbGYpOgotICAgICAgICBpZiBzZWxmLlZFUlNJT05fTUlOIGlz
IE5vbmUgb3Igc2VsZi5WRVJTSU9OX01BWCBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIFtd
Ci0gICAgICAgIHNvcnRlZF92ZXJzaW9ucyA9IHNvcnRlZChWZXJzaW9uTmFtZU1hcC5tYXAoc2Vs
Zi5ob3N0LnBsYXRmb3JtKS5tYXBwaW5nX2Zvcl9wbGF0Zm9ybShwbGF0Zm9ybT1zZWxmLnBvcnRf
bmFtZS5zcGxpdCgnLScpWzBdKS52YWx1ZXMoKSkKLSAgICAgICAgcmV0dXJuIHNvcnRlZF92ZXJz
aW9uc1tzb3J0ZWRfdmVyc2lvbnMuaW5kZXgoc2VsZi5WRVJTSU9OX01JTik6c29ydGVkX3ZlcnNp
b25zLmluZGV4KHNlbGYuVkVSU0lPTl9NQVgpICsgMV0KKyAgICAgICAgdmVyc2lvbnMgPSBzZXQo
KQorICAgICAgICBmb3IgdGFibGUgaW4gW1BVQkxJQ19UQUJMRSwgSU5URVJOQUxfVEFCTEVdOgor
ICAgICAgICAgICAgdmVyc2lvbnMudXBkYXRlKFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3Qu
cGxhdGZvcm0pLm1hcHBpbmdfZm9yX3BsYXRmb3JtKHBsYXRmb3JtPXNlbGYucG9ydF9uYW1lLnNw
bGl0KCctJylbMF0sIHRhYmxlPXRhYmxlKS52YWx1ZXMoKSkKKyAgICAgICAgcmV0dXJuIHNvcnRl
ZCh2ZXJzaW9ucykKIAogICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMo
c2VsZik6CiAgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KICAgICAgICAgZm9yIHZlcnNpb24g
aW4gc2VsZi5fYWxsb3dlZF92ZXJzaW9ucygpOgogICAgICAgICAgICAgZm9yIGJ1aWxkX3R5cGUg
aW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CiAgICAgICAgICAgICAgICAgZm9yIGFyY2hpdGVjdHVy
ZSBpbiBzZWxmLkFSQ0hJVEVDVFVSRVM6Ci0gICAgICAgICAgICAgICAgICAgIHZlcnNpb25fbmFt
ZSA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0pLnRvX25hbWUodmVyc2lv
biwgcGxhdGZvcm09c2VsZi5wb3J0X25hbWUuc3BsaXQoJy0nKVswXSkKLSAgICAgICAgICAgICAg
ICAgICAgY29uZmlndXJhdGlvbnMuYXBwZW5kKFRlc3RDb25maWd1cmF0aW9uKHZlcnNpb249dmVy
c2lvbl9uYW1lLCBhcmNoaXRlY3R1cmU9YXJjaGl0ZWN0dXJlLCBidWlsZF90eXBlPWJ1aWxkX3R5
cGUpKQorICAgICAgICAgICAgICAgICAgICBmb3IgdGFibGUgaW4gW1BVQkxJQ19UQUJMRSwgSU5U
RVJOQUxfVEFCTEVdOgorICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbl9uYW1lID0gVmVy
c2lvbk5hbWVNYXAubWFwKHNlbGYuaG9zdC5wbGF0Zm9ybSkudG9fbmFtZSh2ZXJzaW9uLCBwbGF0
Zm9ybT1zZWxmLnBvcnRfbmFtZS5zcGxpdCgnLScpWzBdLCB0YWJsZT10YWJsZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIHZlcnNpb25fbmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25maWd1cmF0aW9ucy5hcHBlbmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj12ZXJz
aW9uX25hbWUsIGFyY2hpdGVjdHVyZT1hcmNoaXRlY3R1cmUsIGJ1aWxkX3R5cGU9YnVpbGRfdHlw
ZSkpCiAgICAgICAgIHJldHVybiBjb25maWd1cmF0aW9ucwogCiAgICAgZGVmIF9hcHBsZV9iYXNl
bGluZV9wYXRoKHNlbGYsIHBsYXRmb3JtKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9kYXJ3aW4ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2Rhcndpbi5weQkocmV2aXNpb24gMjI5MDI4KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2Rhcndpbi5weQkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIERhcndpblBvcnQoQXBwbGVQb3J0KToK
IAorICAgIENVUlJFTlRfVkVSU0lPTiA9IE5vbmUKICAgICBTREsgPSBOb25lCiAKICAgICBkZWYg
X19pbml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lLCAqKmt3YXJncyk6CkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9pb3MucHkJKHJldmlzaW9uIDIyOTAyOCkKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9pb3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAgaW1w
b3J0IHRyYWNlYmFjawogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVt
b2l6ZWQKIGZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNpb24gaW1wb3J0IFZlcnNpb24KLWZyb20g
d2Via2l0cHkuY29tbW9uLnZlcnNpb25fbmFtZV9tYXAgaW1wb3J0IFZlcnNpb25OYW1lTWFwCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBWZXJzaW9uTmFtZU1h
cCwgSU5URVJOQUxfVEFCTEUKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0
X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCiBmcm9tIHdlYmtpdHB5LnBv
cnQuY29uZmlnIGltcG9ydCBhcHBsZV9hZGRpdGlvbnMKIGZyb20gd2Via2l0cHkucG9ydC5kYXJ3
aW4gaW1wb3J0IERhcndpblBvcnQKQEAgLTM3LDggKzM3LDcgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQogY2xhc3MgSU9TUG9ydChEYXJ3aW5Qb3J0KToKICAgICBwb3J0X25h
bWUgPSAiaW9zIgogCi0gICAgVkVSU0lPTl9NSU4gPSBWZXJzaW9uKDExKQotICAgIFZFUlNJT05f
TUFYID0gVmVyc2lvbigxMikKKyAgICBDVVJSRU5UX1ZFUlNJT04gPSBWZXJzaW9uKDExKQogCiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnRfbmFtZSwgKiprd2FyZ3MpOgogICAgICAg
ICBzdXBlcihJT1NQb3J0LCBzZWxmKS5fX2luaXRfXyhob3N0LCBwb3J0X25hbWUsICoqa3dhcmdz
KQpAQCAtOTUsMjAgKzk0LDMxIEBAIGNsYXNzIElPU1BvcnQoRGFyd2luUG9ydCk6CiAgICAgICAg
IHdrX3N0cmluZyA9ICd3azEnCiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbignd2Via2l0X3Rl
c3RfcnVubmVyJyk6CiAgICAgICAgICAgICB3a19zdHJpbmcgPSAnd2syJwotICAgICAgICAjIElm
IHdlIGRvbid0IGhhdmUgYSBzcGVjaWZpZWQgdmVyc2lvbiwgdGhhdCBtZWFucyB3ZSB1c2luZyB0
aGUgcG9ydCB3aXRob3V0IGFuIFNESy4KLSAgICAgICAgIyBUaGlzIHVzdWFsbHkgbWVhbnMgd2Un
cmUgZG9pbmcgc29tZSB0eXBlIG9mIHRlc3RpbmcuSW4gdGhpcyBjYXNlLCBkb24ndCBhZGQgdmVy
c2lvbiBmYWxsYmFja3MKKworICAgICAgICB2ZXJzaW9uc190b19mYWxsYmFjayA9IFtdCisgICAg
ICAgIGlmIHNlbGYuaW9zX3ZlcnNpb24oKSA9PSBzZWxmLkNVUlJFTlRfVkVSU0lPTjoKKyAgICAg
ICAgICAgIHZlcnNpb25zX3RvX2ZhbGxiYWNrID0gW3NlbGYuQ1VSUkVOVF9WRVJTSU9OXQorICAg
ICAgICBlbGlmIHNlbGYuaW9zX3ZlcnNpb24oKToKKyAgICAgICAgICAgIHRlbXBfdmVyc2lvbiA9
IFZlcnNpb24oc2VsZi5pb3NfdmVyc2lvbigpLm1ham9yKQorICAgICAgICAgICAgd2hpbGUgdGVt
cF92ZXJzaW9uICE9IHNlbGYuQ1VSUkVOVF9WRVJTSU9OOgorICAgICAgICAgICAgICAgIHZlcnNp
b25zX3RvX2ZhbGxiYWNrLmFwcGVuZChWZXJzaW9uLmZyb21faXRlcmFibGUodGVtcF92ZXJzaW9u
KSkKKyAgICAgICAgICAgICAgICBpZiB0ZW1wX3ZlcnNpb24gPCBzZWxmLkNVUlJFTlRfVkVSU0lP
TjoKKyAgICAgICAgICAgICAgICAgICAgdGVtcF92ZXJzaW9uLm1ham9yICs9IDEKKyAgICAgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB0ZW1wX3ZlcnNpb24ubWFqb3IgLT0g
MQorCiAgICAgICAgIGV4cGVjdGF0aW9ucyA9IFtdCi0gICAgICAgIGlmIGFwcGxlX2FkZGl0aW9u
cygpIGFuZCBzZWxmLmlvc192ZXJzaW9uKCk6Ci0gICAgICAgICAgICBhcHBsZV9uYW1lID0gVmVy
c2lvbk5hbWVNYXAubWFwKHNlbGYuaG9zdC5wbGF0Zm9ybSkudG9fbmFtZShzZWxmLmlvc192ZXJz
aW9uKCksIHBsYXRmb3JtPUlPU1BvcnQucG9ydF9uYW1lLCB0YWJsZT0naW50ZXJuYWwnKS5sb3dl
cigpLnJlcGxhY2UoJyAnLCAnJykKLSAgICAgICAgZWxzZToKKyAgICAgICAgZm9yIHZlcnNpb24g
aW4gdmVyc2lvbnNfdG9fZmFsbGJhY2s6CiAgICAgICAgICAgICBhcHBsZV9uYW1lID0gTm9uZQot
ICAgICAgICBpZiBzZWxmLmlvc192ZXJzaW9uKCk6CisgICAgICAgICAgICBpZiBhcHBsZV9hZGRp
dGlvbnMoKToKKyAgICAgICAgICAgICAgICBhcHBsZV9uYW1lID0gVmVyc2lvbk5hbWVNYXAubWFw
KHNlbGYuaG9zdC5wbGF0Zm9ybSkudG9fbmFtZSh2ZXJzaW9uLCBwbGF0Zm9ybT1JT1NQb3J0LnBv
cnRfbmFtZSwgdGFibGU9SU5URVJOQUxfVEFCTEUpCisKICAgICAgICAgICAgIGlmIGFwcGxlX25h
bWU6Ci0gICAgICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNl
bGluZV9wYXRoKCd7fS17fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCBhcHBsZV9uYW1lLCB3
a19zdHJpbmcpKSkKLSAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fd2Via2l0
X2Jhc2VsaW5lX3BhdGgoJ3t9LXt9LXt9Jy5mb3JtYXQoc2VsZi5wb3J0X25hbWUsIHNlbGYuaW9z
X3ZlcnNpb24oKS5tYWpvciwgd2tfc3RyaW5nKSkpCisgICAgICAgICAgICAgICAgZXhwZWN0YXRp
b25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNlbGluZV9wYXRoKCd7fS17fS17fScuZm9ybWF0KHNl
bGYucG9ydF9uYW1lLCBhcHBsZV9uYW1lLmxvd2VyKCkucmVwbGFjZSgnICcsICcnKSwgd2tfc3Ry
aW5nKSkpCisgICAgICAgICAgICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNl
bGluZV9wYXRoKCd7fS17fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCB2ZXJzaW9uLm1ham9y
LCB3a19zdHJpbmcpKSkKICAgICAgICAgICAgIGlmIGFwcGxlX25hbWU6Ci0gICAgICAgICAgICAg
ICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNlbGluZV9wYXRoKCd7fS17fScu
Zm9ybWF0KHNlbGYucG9ydF9uYW1lLCBhcHBsZV9uYW1lKSkpCi0gICAgICAgICAgICBleHBlY3Rh
dGlvbnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCd7fS17fScuZm9ybWF0KHNl
bGYucG9ydF9uYW1lLCBzZWxmLmlvc192ZXJzaW9uKCkubWFqb3IpKSkKKyAgICAgICAgICAgICAg
ICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX2FwcGxlX2Jhc2VsaW5lX3BhdGgoJ3t9LXt9Jy5m
b3JtYXQoc2VsZi5wb3J0X25hbWUsIGFwcGxlX25hbWUubG93ZXIoKS5yZXBsYWNlKCcgJywgJycp
KSkpCisgICAgICAgICAgICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGlu
ZV9wYXRoKCd7fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCB2ZXJzaW9uLm1ham9yKSkpCiAK
ICAgICAgICAgaWYgYXBwbGVfYWRkaXRpb25zKCk6CiAgICAgICAgICAgICBleHBlY3RhdGlvbnMu
YXBwZW5kKHNlbGYuX2FwcGxlX2Jhc2VsaW5lX3BhdGgoJ3t9LXt9Jy5mb3JtYXQoc2VsZi5wb3J0
X25hbWUsIHdrX3N0cmluZykpKQpAQCAtMTE3LDEwICsxMjcsMTMgQEAgY2xhc3MgSU9TUG9ydChE
YXJ3aW5Qb3J0KToKICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fYXBwbGVf
YmFzZWxpbmVfcGF0aChzZWxmLnBvcnRfbmFtZSkpCiAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBl
bmQoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoc2VsZi5wb3J0X25hbWUpKQogCi0gICAgICAg
IGlmIHNlbGYuaW9zX3ZlcnNpb24oKToKKyAgICAgICAgZm9yIHZlcnNpb24gaW4gdmVyc2lvbnNf
dG9fZmFsbGJhY2s6CisgICAgICAgICAgICBhcHBsZV9uYW1lID0gTm9uZQorICAgICAgICAgICAg
aWYgYXBwbGVfYWRkaXRpb25zKCk6CisgICAgICAgICAgICAgICAgYXBwbGVfbmFtZSA9IFZlcnNp
b25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0pLnRvX25hbWUodmVyc2lvbiwgcGxhdGZv
cm09SU9TUG9ydC5wb3J0X25hbWUsIHRhYmxlPUlOVEVSTkFMX1RBQkxFKQogICAgICAgICAgICAg
aWYgYXBwbGVfbmFtZToKLSAgICAgICAgICAgICAgICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYu
X2FwcGxlX2Jhc2VsaW5lX3BhdGgoJ3t9LXt9Jy5mb3JtYXQoSU9TUG9ydC5wb3J0X25hbWUsIGFw
cGxlX25hbWUpKSkKLSAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fd2Via2l0
X2Jhc2VsaW5lX3BhdGgoJ3t9LXt9Jy5mb3JtYXQoSU9TUG9ydC5wb3J0X25hbWUsIHNlbGYuaW9z
X3ZlcnNpb24oKS5tYWpvcikpKQorICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQo
c2VsZi5fYXBwbGVfYmFzZWxpbmVfcGF0aCgne30te30nLmZvcm1hdChJT1NQb3J0LnBvcnRfbmFt
ZSwgYXBwbGVfbmFtZS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykpKSkKKyAgICAgICAgICAgIGV4
cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ3t9LXt9Jy5mb3Jt
YXQoSU9TUG9ydC5wb3J0X25hbWUsIHZlcnNpb24ubWFqb3IpKSkKIAogICAgICAgICBpZiBhcHBs
ZV9hZGRpdGlvbnMoKToKICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fYXBw
bGVfYmFzZWxpbmVfcGF0aCgne30te30nLmZvcm1hdChJT1NQb3J0LnBvcnRfbmFtZSwgd2tfc3Ry
aW5nKSkpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHkJKHJldmlzaW9uIDIyOTAy
OCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHkJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDYgKzM0LDcgQEAgaW1wb3J0IHJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXpl
ZCBpbXBvcnQgbWVtb2l6ZWQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUg
aW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9ydCBW
ZXJzaW9uCitmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBQVUJM
SUNfVEFCTEUsIElOVEVSTkFMX1RBQkxFCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25h
bWVfbWFwIGltcG9ydCBWZXJzaW9uTmFtZU1hcAogZnJvbSB3ZWJraXRweS5wb3J0LmNvbmZpZyBp
bXBvcnQgYXBwbGVfYWRkaXRpb25zCiBmcm9tIHdlYmtpdHB5LnBvcnQuZGFyd2luIGltcG9ydCBE
YXJ3aW5Qb3J0CkBAIC00NCw4ICs0NSw3IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKIGNsYXNzIE1hY1BvcnQoRGFyd2luUG9ydCk6CiAgICAgcG9ydF9uYW1lID0gIm1hYyIK
IAotICAgIFZFUlNJT05fTUlOID0gVmVyc2lvbigxMCwgNikKLSAgICBWRVJTSU9OX01BWCA9IFZl
cnNpb24oMTAsIDE0KQorICAgIENVUlJFTlRfVkVSU0lPTiA9IFZlcnNpb24oMTAsIDEzKQogCiAg
ICAgU0RLID0gJ21hY29zeCcKIApAQCAtNjEsMzcgKzYxLDQ3IEBAIGNsYXNzIE1hY1BvcnQoRGFy
d2luUG9ydCk6CiAgICAgICAgIGVsaWYgc2VsZi5ob3N0LnBsYXRmb3JtLmlzX21hYygpOgogICAg
ICAgICAgICAgc2VsZi5fb3NfdmVyc2lvbiA9IHNlbGYuaG9zdC5wbGF0Zm9ybS5vc192ZXJzaW9u
CiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzb3J0ZWRfdmVyc2lvbnMgPSBzb3J0ZWQodmVy
c2lvbl9uYW1lX21hcC5tYXBwaW5nX2Zvcl9wbGF0Zm9ybShwbGF0Zm9ybT1zZWxmLnBvcnRfbmFt
ZSkudmFsdWVzKCkpCi0gICAgICAgICAgICBzZWxmLl9vc192ZXJzaW9uID0gc29ydGVkX3ZlcnNp
b25zW3NvcnRlZF92ZXJzaW9ucy5pbmRleChzZWxmLlZFUlNJT05fTUFYKSAtIDFdCisgICAgICAg
ICAgICBzZWxmLl9vc192ZXJzaW9uID0gTWFjUG9ydC5DVVJSRU5UX1ZFUlNJT04KIAogICAgIGRl
ZiBfYnVpbGRfZHJpdmVyX2ZsYWdzKHNlbGYpOgogICAgICAgICByZXR1cm4gWydBUkNIUz1pMzg2
J10gaWYgc2VsZi5hcmNoaXRlY3R1cmUoKSA9PSAneDg2JyBlbHNlIFtdCiAKICAgICBAbWVtb2l6
ZWQKICAgICBkZWYgZGVmYXVsdF9iYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKKyAgICAgICAg
dmVyc2lvbnNfdG9fZmFsbGJhY2sgPSBbXQogICAgICAgICB2ZXJzaW9uX25hbWVfbWFwID0gVmVy
c2lvbk5hbWVNYXAubWFwKHNlbGYuaG9zdC5wbGF0Zm9ybSkKLSAgICAgICAgaWYgc2VsZi5fb3Nf
dmVyc2lvbiA8IHNlbGYuVkVSU0lPTl9NSU4gb3Igc2VsZi5fb3NfdmVyc2lvbiA+PSBzZWxmLlZF
UlNJT05fTUFYOgotICAgICAgICAgICAgdmVyc2lvbl9mYWxsYmFjayA9IFtzZWxmLl9vc192ZXJz
aW9uXQorCisgICAgICAgIGlmIHNlbGYuX29zX3ZlcnNpb24gPT0gc2VsZi5DVVJSRU5UX1ZFUlNJ
T046CisgICAgICAgICAgICB2ZXJzaW9uc190b19mYWxsYmFjayA9IFtzZWxmLkNVUlJFTlRfVkVS
U0lPTl0KICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNvcnRlZF92ZXJzaW9ucyA9IHNvcnRl
ZCh2ZXJzaW9uX25hbWVfbWFwLm1hcHBpbmdfZm9yX3BsYXRmb3JtKHBsYXRmb3JtPXNlbGYucG9y
dF9uYW1lKS52YWx1ZXMoKSkKLSAgICAgICAgICAgIHZlcnNpb25fZmFsbGJhY2sgPSBzb3J0ZWRf
dmVyc2lvbnNbc29ydGVkX3ZlcnNpb25zLmluZGV4KHNlbGYuX29zX3ZlcnNpb24pOi0xXQorICAg
ICAgICAgICAgdGVtcF92ZXJzaW9uID0gVmVyc2lvbihzZWxmLl9vc192ZXJzaW9uLm1ham9yLCBz
ZWxmLl9vc192ZXJzaW9uLm1pbm9yKQorICAgICAgICAgICAgd2hpbGUgdGVtcF92ZXJzaW9uICE9
IHNlbGYuQ1VSUkVOVF9WRVJTSU9OOgorICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX2ZhbGxi
YWNrLmFwcGVuZChWZXJzaW9uLmZyb21faXRlcmFibGUodGVtcF92ZXJzaW9uKSkKKyAgICAgICAg
ICAgICAgICBpZiB0ZW1wX3ZlcnNpb24gPCBzZWxmLkNVUlJFTlRfVkVSU0lPTjoKKyAgICAgICAg
ICAgICAgICAgICAgdGVtcF92ZXJzaW9uLm1pbm9yICs9IDEKKyAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICB0ZW1wX3ZlcnNpb24ubWlub3IgLT0gMQogICAgICAgICB3
a19zdHJpbmcgPSAnd2sxJwogICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0
X3J1bm5lcicpOgogICAgICAgICAgICAgd2tfc3RyaW5nID0gJ3drMicKIAogICAgICAgICBleHBl
Y3RhdGlvbnMgPSBbXQotICAgICAgICBmb3IgdmVyc2lvbiBpbiB2ZXJzaW9uX2ZhbGxiYWNrOgot
ICAgICAgICAgICAgdmVyc2lvbl9uYW1lID0gdmVyc2lvbl9uYW1lX21hcC50b19uYW1lKHZlcnNp
b24sIHBsYXRmb3JtPXNlbGYucG9ydF9uYW1lKS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykKKyAg
ICAgICAgZm9yIHZlcnNpb24gaW4gdmVyc2lvbnNfdG9fZmFsbGJhY2s6CisgICAgICAgICAgICB2
ZXJzaW9uX25hbWUgPSB2ZXJzaW9uX25hbWVfbWFwLnRvX25hbWUodmVyc2lvbiwgcGxhdGZvcm09
c2VsZi5wb3J0X25hbWUpCisgICAgICAgICAgICBpZiB2ZXJzaW9uX25hbWU6CisgICAgICAgICAg
ICAgICAgc3RhbmRhcmRpemVkX3ZlcnNpb25fbmFtZSA9IHZlcnNpb25fbmFtZS5sb3dlcigpLnJl
cGxhY2UoJyAnLCAnJykKKyAgICAgICAgICAgIGFwcGxlX25hbWUgPSBOb25lCiAgICAgICAgICAg
ICBpZiBhcHBsZV9hZGRpdGlvbnMoKToKLSAgICAgICAgICAgICAgICBhcHBsZV9uYW1lID0gdmVy
c2lvbl9uYW1lX21hcC50b19uYW1lKHZlcnNpb24sIHBsYXRmb3JtPXNlbGYucG9ydF9uYW1lLCB0
YWJsZT0naW50ZXJuYWwnKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBhcHBs
ZV9uYW1lID0gTm9uZQorICAgICAgICAgICAgICAgIGFwcGxlX25hbWUgPSB2ZXJzaW9uX25hbWVf
bWFwLnRvX25hbWUodmVyc2lvbiwgcGxhdGZvcm09c2VsZi5wb3J0X25hbWUsIHRhYmxlPUlOVEVS
TkFMX1RBQkxFKQorCiAgICAgICAgICAgICBpZiBhcHBsZV9uYW1lOgogICAgICAgICAgICAgICAg
IGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fYXBwbGVfYmFzZWxpbmVfcGF0aCgnbWFjLXt9LXt9
Jy5mb3JtYXQoYXBwbGVfbmFtZS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJyksIHdrX3N0cmluZykp
KQotICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl93ZWJraXRfYmFzZWxpbmVf
cGF0aCgnbWFjLXt9LXt9Jy5mb3JtYXQodmVyc2lvbl9uYW1lLCB3a19zdHJpbmcpKSkKKyAgICAg
ICAgICAgIGlmIHZlcnNpb25fbmFtZToKKyAgICAgICAgICAgICAgICBleHBlY3RhdGlvbnMuYXBw
ZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdtYWMte30te30nLmZvcm1hdChzdGFuZGFy
ZGl6ZWRfdmVyc2lvbl9uYW1lLCB3a19zdHJpbmcpKSkKICAgICAgICAgICAgIGlmIGFwcGxlX25h
bWU6CiAgICAgICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNl
bGluZV9wYXRoKCdtYWMte30nLmZvcm1hdChhcHBsZV9uYW1lLmxvd2VyKCkucmVwbGFjZSgnICcs
ICcnKSkpKQotICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl93ZWJraXRfYmFz
ZWxpbmVfcGF0aCgnbWFjLXt9Jy5mb3JtYXQodmVyc2lvbl9uYW1lKSkpCisgICAgICAgICAgICBp
ZiB2ZXJzaW9uX25hbWU6CisgICAgICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxm
Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgnbWFjLXt9Jy5mb3JtYXQoc3RhbmRhcmRpemVkX3ZlcnNp
b25fbmFtZSkpKQogCiAgICAgICAgIGlmIGFwcGxlX2FkZGl0aW9ucygpOgogICAgICAgICAgICAg
ZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNlbGluZV9wYXRoKCd7fS17fScuZm9y
bWF0KHNlbGYucG9ydF9uYW1lLCB3a19zdHJpbmcpKSkKQEAgLTEwNiwxNSArMTE2LDIxIEBAIGNs
YXNzIE1hY1BvcnQoRGFyd2luUG9ydCk6CiAKICAgICBAbWVtb2l6ZWQKICAgICBkZWYgY29uZmln
dXJhdGlvbl9zcGVjaWZpZXJfbWFjcm9zKHNlbGYpOgotICAgICAgICBtYXAgPSB7fQorICAgICAg
ICBjb25maWdfbWFwID0ge30KICAgICAgICAgdmVyc2lvbl9uYW1lX21hcCA9IFZlcnNpb25OYW1l
TWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0pCi0gICAgICAgIHNvcnRlZF92ZXJzaW9ucyA9IHNv
cnRlZCh2ZXJzaW9uX25hbWVfbWFwLm1hcHBpbmdfZm9yX3BsYXRmb3JtKHBsYXRmb3JtPXNlbGYu
cG9ydF9uYW1lKS52YWx1ZXMoKSkKLSAgICAgICAgZm9yIHZlcnNpb24gaW4gc29ydGVkX3ZlcnNp
b25zOgotICAgICAgICAgICAgbGlzdCA9IFtdCi0gICAgICAgICAgICBmb3IgbmV3ZXIgaW4gc29y
dGVkX3ZlcnNpb25zW3NvcnRlZF92ZXJzaW9ucy5pbmRleCh2ZXJzaW9uKTpdOgotICAgICAgICAg
ICAgICAgIGxpc3QuYXBwZW5kKHZlcnNpb25fbmFtZV9tYXAudG9fbmFtZShuZXdlciwgcGxhdGZv
cm09c2VsZi5wb3J0X25hbWUpLmxvd2VyKCkucmVwbGFjZSgnICcsICcnKSkKLSAgICAgICAgICAg
IG1hcFt2ZXJzaW9uX25hbWVfbWFwLnRvX25hbWUodmVyc2lvbiwgcGxhdGZvcm09c2VsZi5wb3J0
X25hbWUpLmxvd2VyKCkucmVwbGFjZSgnICcsICcnKSArICcrJ10gPSBsaXN0Ci0gICAgICAgIHJl
dHVybiBtYXAKKyAgICAgICAgZm9yIHZlcnNpb24gaW4gc2VsZi5fYWxsb3dlZF92ZXJzaW9ucygp
OgorICAgICAgICAgICAgdmVyc2lvbl9uYW1lcyA9IFtdCisgICAgICAgICAgICBmb3IgbmV3ZXIg
aW4gc2VsZi5fYWxsb3dlZF92ZXJzaW9ucygpW3NlbGYuX2FsbG93ZWRfdmVyc2lvbnMoKS5pbmRl
eCh2ZXJzaW9uKTpdOgorICAgICAgICAgICAgICAgIHZlcnNpb25fbmFtZSA9IHZlcnNpb25fbmFt
ZV9tYXAudG9fbmFtZShuZXdlciwgcGxhdGZvcm09c2VsZi5wb3J0X25hbWUpCisgICAgICAgICAg
ICAgICAgaWYgbm90IHZlcnNpb25fbmFtZToKKyAgICAgICAgICAgICAgICAgICAgdmVyc2lvbl9u
YW1lID0gdmVyc2lvbl9uYW1lX21hcC50b19uYW1lKG5ld2VyLCBwbGF0Zm9ybT1zZWxmLnBvcnRf
bmFtZSwgdGFibGU9SU5URVJOQUxfVEFCTEUpCisgICAgICAgICAgICAgICAgdmVyc2lvbl9uYW1l
cy5hcHBlbmQodmVyc2lvbl9uYW1lLmxvd2VyKCkucmVwbGFjZSgnICcsICcnKSkKKyAgICAgICAg
ICAgIGZvciB0YWJsZSBpbiBbUFVCTElDX1RBQkxFLCBJTlRFUk5BTF9UQUJMRV06CisgICAgICAg
ICAgICAgICAgdmVyc2lvbl9uYW1lID0gdmVyc2lvbl9uYW1lX21hcC50b19uYW1lKHZlcnNpb24s
IHBsYXRmb3JtPXNlbGYucG9ydF9uYW1lLCB0YWJsZT10YWJsZSkKKyAgICAgICAgICAgICAgICBp
ZiBub3QgdmVyc2lvbl9uYW1lOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAg
ICAgICAgICAgIGNvbmZpZ19tYXBbdmVyc2lvbl9uYW1lLmxvd2VyKCkucmVwbGFjZSgnICcsICcn
KSArICcrJ10gPSB2ZXJzaW9uX25hbWVzCisgICAgICAgIHJldHVybiBjb25maWdfbWFwCiAKICAg
ICBkZWYgc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYsIHNlcnZlcl9uYW1lPU5vbmUpOgog
ICAgICAgICBlbnYgPSBzdXBlcihNYWNQb3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2
ZXIoc2VydmVyX25hbWUpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjX3Vu
aXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWNf
dW5pdHRlc3QucHkJKHJldmlzaW9uIDIyOTAyOCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9tYWNfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTY4LDggKzY4LDYgQEAgY2xh
c3MgTWFjVGVzdChkYXJ3aW5fdGVzdGNhc2UuRGFyd2luVGVzdAogICAgICAgICBzZWxmLmFzc2Vy
dF9uYW1lKCdtYWMnLCAnaGlnaHNpZXJyYScsICdtYWMtaGlnaHNpZXJyYScpCiAgICAgICAgIHNl
bGYuYXNzZXJ0X25hbWUoJ21hYy1oaWdoc2llcnJhJywgJ2VsY2FwaXRhbicsICdtYWMtaGlnaHNp
ZXJyYScpCiAgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ21hYy1oaWdoc2llcnJhJywgJ3NpZXJy
YScsICdtYWMtaGlnaHNpZXJyYScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ21hYycsICdm
dXR1cmUnLCAnbWFjLWZ1dHVyZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ21hYy1mdXR1
cmUnLCAnZnV0dXJlJywgJ21hYy1mdXR1cmUnKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhB
c3NlcnRpb25FcnJvciwgc2VsZi5hc3NlcnRfbmFtZSwgJ21hYy10aWdlcicsICdsZW9wYXJkJywg
J21hYy1sZW9wYXJkJykKIAogICAgIGRlZiB0ZXN0X3NldHVwX2Vudmlyb25fZm9yX3NlcnZlcihz
ZWxmKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNl
LnB5CShyZXZpc2lvbiAyMjkwMjgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9y
dF90ZXN0Y2FzZS5weQkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0
ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBJTlRFUk5BTF9U
QUJMRQogZnJvbSB3ZWJraXRweS5wb3J0LmJhc2UgaW1wb3J0IFBvcnQKIGZyb20gd2Via2l0cHku
cG9ydC5jb25maWcgaW1wb3J0IGFwcGxlX2FkZGl0aW9ucwogZnJvbSB3ZWJraXRweS5wb3J0Lmlt
YWdlX2RpZmYgaW1wb3J0IEltYWdlRGlmZmVyCkBAIC05NywxMSArOTgsMTEgQEAgZGVmIGJpbmRf
bW9ja19hcHBsZV9hZGRpdGlvbnMoKToKICAgICAgICAgQHN0YXRpY21ldGhvZAogICAgICAgICBk
ZWYgdmVyc2lvbl9uYW1lX21hcHBpbmcocGxhdGZvcm09Tm9uZSk6CiAgICAgICAgICAgICByZXN1
bHQgPSBWZXJzaW9uTmFtZU1hcChwbGF0Zm9ybSkKLSAgICAgICAgICAgIHJlc3VsdC5tYXBwaW5n
WydpbnRlcm5hbCddID0ge30KKyAgICAgICAgICAgIHJlc3VsdC5tYXBwaW5nW0lOVEVSTkFMX1RB
QkxFXSA9IHt9CiAgICAgICAgICAgICBmb3IgcGxhdGZvcm0gaW4gcmVzdWx0Lm1hcHBpbmdbUFVC
TElDX1RBQkxFXToKLSAgICAgICAgICAgICAgICByZXN1bHQubWFwcGluZ1snaW50ZXJuYWwnXVtw
bGF0Zm9ybV0gPSB7fQorICAgICAgICAgICAgICAgIHJlc3VsdC5tYXBwaW5nW0lOVEVSTkFMX1RB
QkxFXVtwbGF0Zm9ybV0gPSB7fQogICAgICAgICAgICAgICAgIGZvciBuYW1lLCB2ZXJzaW9uIGlu
IHJlc3VsdC5tYXBwaW5nW1BVQkxJQ19UQUJMRV1bcGxhdGZvcm1dLml0ZXJpdGVtcygpOgotICAg
ICAgICAgICAgICAgICAgICByZXN1bHQubWFwcGluZ1snaW50ZXJuYWwnXVtwbGF0Zm9ybV1bJ2Fk
ZC0nICsgbmFtZV0gPSB2ZXJzaW9uCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5tYXBwaW5n
W0lOVEVSTkFMX1RBQkxFXVtwbGF0Zm9ybV1bJ2FkZC0nICsgbmFtZV0gPSB2ZXJzaW9uCiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0CiAKICAgICAjIGFwcGxlX2FkZGl0aW9ucyBpcyBhIG1lbW9p
emVkIGZ1bmN0aW9uLiBUYWtlIGFkdmFudGFnZSBvZiB0aGlzIGZhY3QgYW5kIG1hbmlwdWxhdGUg
dGhlIGNhY2hlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334718</attachid>
            <date>2018-02-27 17:28:44 -0800</date>
            <delta_ts>2018-02-28 17:29:37 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-183184-20180227172843.patch</filename>
            <type>text/plain</type>
            <size>20585</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyOTA4MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUzIEBACisyMDE4LTAyLTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW1vdmUgY29uY2VwdCBvZiAnZnV0dXJlJworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMTg0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zNzk1ODU5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBBYWthc2ggSmFpbi4KKwor
ICAgICAgICBSZW1vdmUgY29uY2VwdCBvZiAnZnV0dXJlJyBmcm9tIGV4cGVjdGF0aW9ucyBhbmQg
aW5zdGVhZAorICAgICAgICB1c2UgYSBzeXN0ZW0gb2YgaW5oZXJpdGFuY2UgY2VudGVyZWQgYXJv
dW5kIHRoZSBjdXJyZW50IHZlcnNpb24KKyAgICAgICAgb2YgYW4gT1MgZm9yIE1hYyBhbmQgaU9T
LgorCisgICAgICAgIEluaGVyaXRhbmNlIHdvcmtzIGxpa2Ugc286CisKKyAgICAgICAgfCAuLi4u
CisgICAgICAgIFYgRnV0dXJlCisgICAgICAgID4gSGlnaCBTaWVycmEgKG1hYykKKyAgICAgICAg
XiBtYWMtc2llcnJhCisgICAgICAgIHwgbWFjLWVsY2FwaXRhbgorICAgICAgICB8IC4uLi4KKwor
ICAgICAgICBUaGlzIGRvZXMgbm90IGNoYW5nZSBleHBlY3RhdGlvbiBpbmhlcml0YW5jZSBmb3Ig
YW55IGN1cnJlbnRseSBydW5uaW5nCisgICAgICAgIGNvbmZpZ3VyYXRpb25zLCBpdCBnZW5lcmFs
aXplcyB0aGUgbG9naWMgYWxyZWFkeSB1c2VkLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vdmVyc2lvbl9uYW1lX21hcC5weToKKyAgICAgICAgKFZlcnNpb25OYW1lTWFwLl9f
aW5pdF9fKTogUmVtb3ZlIGFsbCBmdXR1cmUgdmVyc2lvbnMuCisgICAgICAgIChWZXJzaW9uTmFt
ZU1hcC5tYXBwaW5nX2Zvcl9wbGF0Zm9ybSk6IFJldHVybiBlbXB0eSBkaWN0cyBpbnN0ZWFkIG9m
CisgICAgICAgIGFzc2VydGluZy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvYXBw
bGUucHk6CisgICAgICAgIChBcHBsZVBvcnQpOgorICAgICAgICAoQXBwbGVQb3J0Ll9hbGxvd2Vk
X3ZlcnNpb25zKTogUmV0dXJuIGFsbCBhdmFpbGFibGUgdmVyc2lvbnMuCisgICAgICAgIChBcHBs
ZVBvcnQuX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKTogSW5zdGVhZCBvZiBwaWNr
aW5nIGZyb20gYSBzZXQKKyAgICAgICAgb2YgYWxsb3dlZCB2ZXJzaW9ucywgYXNzdW1lIHRoYXQg
ZXZlcnkgc3BlY2lmaWVkIHZlcnNpb24gaXMgYWxsb3dlZC4KKyAgICAgICAgKEFwcGxlUG9ydC5f
cG9ydF9uYW1lX3dpdGhfdmVyc2lvbik6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2Rhcndpbi5weTogQWRkIENVUlJFTlRfVkVSU0lPTiBvdmVycmlkZGVuIGJ5IHN1
YmNsYXNzZXMuCisgICAgICAgIChEYXJ3aW5Qb3J0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3BvcnQvaW9zLnB5OgorICAgICAgICAoSU9TUG9ydCk6CisgICAgICAgIChJT1NQb3J0LmRl
ZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgpOiBVc2Ugc3lzdGVtIG9mIGluaGVyaXRhbmNlIGNl
bnRlcmVkIGFyb3VuZAorICAgICAgICB0aGUgY3VycmVudCB2ZXJzaW9uLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHk6CisgICAgICAgIChNYWNQb3J0KToKKyAgICAgICAg
KE1hY1BvcnQuX19pbml0X18pOiBVc2UgY3VycmVudCB2ZXJzaW9uIGJ5IGRlZmF1bHQuCisgICAg
ICAgIChNYWNQb3J0LmRlZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgpOiBVc2Ugc3lzdGVtIG9m
IGluaGVyaXRhbmNlIGNlbnRlcmVkIGFyb3VuZAorICAgICAgICB0aGUgY3VycmVudCB2ZXJzaW9u
LgorICAgICAgICAoTWFjUG9ydC5jb25maWd1cmF0aW9uX3NwZWNpZmllcl9tYWNyb3MpOiBVc2Ug
dGhlIHNhbWUgc2V0IG9mIHZlcnNpb24gbmFtZXMKKyAgICAgICAgc3VwcG9ydGVkIGluIGRlZmF1
bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGguCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0
L21hY191bml0dGVzdC5weToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF92ZXJzaW9ucyk6IFJlbW92
ZSAnZnV0dXJlJyB0ZXN0cy4KKwogMjAxOC0wMi0yNyAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0
YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgdGVzdCBnYXJkZW5p
bmcKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3ZlcnNpb25fbmFtZV9tYXAu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdmVyc2lvbl9u
YW1lX21hcC5weQkocmV2aXNpb24gMjI5MDgyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vdmVyc2lvbl9uYW1lX21hcC5weQkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QCBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9ydCBWZXJzCiAKIAogUFVCTElDX1RB
QkxFID0gJ3B1YmxpYycKK0lOVEVSTkFMX1RBQkxFID0gJ2ludGVybmFsJwogCiAKIGNsYXNzIFZl
cnNpb25OYW1lTWFwKG9iamVjdCk6CkBAIC01OCwxMSArNTksMTAgQEAgY2xhc3MgVmVyc2lvbk5h
bWVNYXAob2JqZWN0KToKICAgICAgICAgICAgICAgICAnRWwgQ2FwaXRhbic6IFZlcnNpb24oMTAs
IDExKSwKICAgICAgICAgICAgICAgICAnU2llcnJhJzogVmVyc2lvbigxMCwgMTIpLAogICAgICAg
ICAgICAgICAgICdIaWdoIFNpZXJyYSc6IFZlcnNpb24oMTAsIDEzKSwKLSAgICAgICAgICAgICAg
ICAnRnV0dXJlJzogVmVyc2lvbigxMCwgMTQpLAogICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICdpb3MnOiBzZWxmLl9hdXRvbWFwX3RvX21ham9yX3ZlcnNpb24oJ2lPUycsIG1pbmltdW09VmVy
c2lvbigxMCksIG1heGltdW09VmVyc2lvbigxMikpLAotICAgICAgICAgICAgJ3R2b3MnOiBzZWxm
Ll9hdXRvbWFwX3RvX21ham9yX3ZlcnNpb24oJ3R2T1MnLCBtaW5pbXVtPVZlcnNpb24oMTApLCBt
YXhpbXVtPVZlcnNpb24oMTIpKSwKLSAgICAgICAgICAgICd3YXRjaG9zJzogc2VsZi5fYXV0b21h
cF90b19tYWpvcl92ZXJzaW9uKCd3YXRjaE9TJywgbWluaW11bT1WZXJzaW9uKDEpLCBtYXhpbXVt
PVZlcnNpb24oNSkpLAorICAgICAgICAgICAgJ2lvcyc6IHNlbGYuX2F1dG9tYXBfdG9fbWFqb3Jf
dmVyc2lvbignaU9TJywgbWluaW11bT1WZXJzaW9uKDEwKSwgbWF4aW11bT1WZXJzaW9uKDExKSks
CisgICAgICAgICAgICAndHZvcyc6IHNlbGYuX2F1dG9tYXBfdG9fbWFqb3JfdmVyc2lvbigndHZP
UycsIG1pbmltdW09VmVyc2lvbigxMCksIG1heGltdW09VmVyc2lvbigxMSkpLAorICAgICAgICAg
ICAgJ3dhdGNob3MnOiBzZWxmLl9hdXRvbWFwX3RvX21ham9yX3ZlcnNpb24oJ3dhdGNoT1MnLCBt
aW5pbXVtPVZlcnNpb24oMSksIG1heGltdW09VmVyc2lvbig0KSksCiAgICAgICAgICAgICAnd2lu
JzogewogICAgICAgICAgICAgICAgICdXaW4xMCc6IFZlcnNpb24oMTApLAogICAgICAgICAgICAg
ICAgICc4LjEnOiBWZXJzaW9uKDYsIDMpLApAQCAtMTQzLDYgKzE0Myw0IEBAIGNsYXNzIFZlcnNp
b25OYW1lTWFwKG9iamVjdCk6CiAgICAgZGVmIG1hcHBpbmdfZm9yX3BsYXRmb3JtKHNlbGYsIHBs
YXRmb3JtPU5vbmUsIHRhYmxlPVBVQkxJQ19UQUJMRSk6CiAgICAgICAgICIiInJldHVybiBwcm9w
ZXIgb3NfbmFtZTogb3NfdmVyc2lvbiBtYXBwaW5nIGZvciBwbGF0Zm9ybSIiIgogICAgICAgICBw
bGF0Zm9ybSA9IHNlbGYuZGVmYXVsdF9zeXN0ZW1fcGxhdGZvcm0gaWYgcGxhdGZvcm0gaXMgTm9u
ZSBlbHNlIHBsYXRmb3JtCi0gICAgICAgIGFzc2VydCB0YWJsZSBpbiBzZWxmLm1hcHBpbmcKLSAg
ICAgICAgYXNzZXJ0IHBsYXRmb3JtIGluIHNlbGYubWFwcGluZ1t0YWJsZV0KLSAgICAgICAgcmV0
dXJuIHNlbGYubWFwcGluZ1t0YWJsZV1bcGxhdGZvcm1dCisgICAgICAgIHJldHVybiBzZWxmLm1h
cHBpbmcuZ2V0KHRhYmxlLCB7fSkuZ2V0KHBsYXRmb3JtLCB7fSkKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9hcHBsZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvYXBwbGUucHkJKHJldmlzaW9uIDIyOTA4MikKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9hcHBsZS5weQkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQCBm
cm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltCiBmcm9tIHdlYmtpdHB5LnBv
cnQuYmFzZSBpbXBvcnQgUG9ydAogZnJvbSB3ZWJraXRweS5wb3J0LmNvbmZpZyBpbXBvcnQgYXBw
bGVfYWRkaXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9jb25m
aWd1cmF0aW9uIGltcG9ydCBUZXN0Q29uZmlndXJhdGlvbgorZnJvbSB3ZWJraXRweS5jb21tb24u
dmVyc2lvbl9uYW1lX21hcCBpbXBvcnQgUFVCTElDX1RBQkxFLCBJTlRFUk5BTF9UQUJMRQogCiAK
IF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKQEAgLTQyLDggKzQzLDYgQEAgY2xh
c3MgQXBwbGVQb3J0KFBvcnQpOgogICAgICIiIlNoYXJlZCBsb2dpYyBiZXR3ZWVuIGFsbCBvZiBB
cHBsZSdzIHBvcnRzLiIiIgogCiAgICAgIyBvdmVycmlkZGVuIGluIHN1YmNsYXNzZXMKLSAgICBW
RVJTSU9OX01JTiA9IE5vbmUKLSAgICBWRVJTSU9OX01BWCA9IE5vbmUKICAgICBBUkNISVRFQ1RV
UkVTID0gW10KICAgICBfY3Jhc2hfbG9nc190b19za2lwX2Zvcl9ob3N0ID0ge30KIApAQCAtOTQs
MjUgKzkzLDIyIEBAIGNsYXNzIEFwcGxlUG9ydChQb3J0KToKICAgICBkZWYgc2hvdWxkX3JldHJ5
X2NyYXNoZXMoc2VsZik6CiAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAjIEZJWE1FOiBBIG1v
cmUgc29waGlzdGljYXRlZCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gc2hvdWxkIG1vdmUgdG8g
V2ViS2l0UG9ydCBhbmQgcmVwbGFjZSBhbGwgY2FsbHMgdG8gbmFtZSgpLgotICAgICMgVGhpcyBp
cyBhbHNvIGEgbWlzbGVhZGluZyBuYW1lLCBzaW5jZSAnbWFjLWZ1dHVyZScgZ2V0cyByZW1hcHBl
ZCB0byAnbWFjJy4KLSAgICBkZWYgX3BvcnRfbmFtZV93aXRoX3ZlcnNpb24oc2VsZik6Ci0gICAg
ICAgIHJldHVybiBzZWxmLm5hbWUoKS5yZXBsYWNlKCctZnV0dXJlJywgJycpLnJlcGxhY2UoJy13
azInLCAnJykKLQogICAgIEBtZW1vaXplZAogICAgIGRlZiBfYWxsb3dlZF92ZXJzaW9ucyhzZWxm
KToKLSAgICAgICAgaWYgc2VsZi5WRVJTSU9OX01JTiBpcyBOb25lIG9yIHNlbGYuVkVSU0lPTl9N
QVggaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBbXQotICAgICAgICBzb3J0ZWRfdmVyc2lv
bnMgPSBzb3J0ZWQoVmVyc2lvbk5hbWVNYXAubWFwKHNlbGYuaG9zdC5wbGF0Zm9ybSkubWFwcGlu
Z19mb3JfcGxhdGZvcm0ocGxhdGZvcm09c2VsZi5wb3J0X25hbWUuc3BsaXQoJy0nKVswXSkudmFs
dWVzKCkpCi0gICAgICAgIHJldHVybiBzb3J0ZWRfdmVyc2lvbnNbc29ydGVkX3ZlcnNpb25zLmlu
ZGV4KHNlbGYuVkVSU0lPTl9NSU4pOnNvcnRlZF92ZXJzaW9ucy5pbmRleChzZWxmLlZFUlNJT05f
TUFYKSArIDFdCisgICAgICAgIHZlcnNpb25zID0gc2V0KCkKKyAgICAgICAgZm9yIHRhYmxlIGlu
IFtQVUJMSUNfVEFCTEUsIElOVEVSTkFMX1RBQkxFXToKKyAgICAgICAgICAgIHZlcnNpb25zLnVw
ZGF0ZShWZXJzaW9uTmFtZU1hcC5tYXAoc2VsZi5ob3N0LnBsYXRmb3JtKS5tYXBwaW5nX2Zvcl9w
bGF0Zm9ybShwbGF0Zm9ybT1zZWxmLnBvcnRfbmFtZS5zcGxpdCgnLScpWzBdLCB0YWJsZT10YWJs
ZSkudmFsdWVzKCkpCisgICAgICAgIHJldHVybiBzb3J0ZWQodmVyc2lvbnMpCiAKICAgICBkZWYg
X2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgogICAgICAgICBjb25maWd1
cmF0aW9ucyA9IFtdCiAgICAgICAgIGZvciB2ZXJzaW9uIGluIHNlbGYuX2FsbG93ZWRfdmVyc2lv
bnMoKToKICAgICAgICAgICAgIGZvciBidWlsZF90eXBlIGluIHNlbGYuQUxMX0JVSUxEX1RZUEVT
OgogICAgICAgICAgICAgICAgIGZvciBhcmNoaXRlY3R1cmUgaW4gc2VsZi5BUkNISVRFQ1RVUkVT
OgotICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uX25hbWUgPSBWZXJzaW9uTmFtZU1hcC5tYXAo
c2VsZi5ob3N0LnBsYXRmb3JtKS50b19uYW1lKHZlcnNpb24sIHBsYXRmb3JtPXNlbGYucG9ydF9u
YW1lLnNwbGl0KCctJylbMF0pCi0gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zLmFw
cGVuZChUZXN0Q29uZmlndXJhdGlvbih2ZXJzaW9uPXZlcnNpb25fbmFtZSwgYXJjaGl0ZWN0dXJl
PWFyY2hpdGVjdHVyZSwgYnVpbGRfdHlwZT1idWlsZF90eXBlKSkKKyAgICAgICAgICAgICAgICAg
ICAgZm9yIHRhYmxlIGluIFtQVUJMSUNfVEFCTEUsIElOVEVSTkFMX1RBQkxFXToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHZlcnNpb25fbmFtZSA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhv
c3QucGxhdGZvcm0pLnRvX25hbWUodmVyc2lvbiwgcGxhdGZvcm09c2VsZi5wb3J0X25hbWUuc3Bs
aXQoJy0nKVswXSwgdGFibGU9dGFibGUpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB2ZXJz
aW9uX25hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuYXBw
ZW5kKFRlc3RDb25maWd1cmF0aW9uKHZlcnNpb249dmVyc2lvbl9uYW1lLCBhcmNoaXRlY3R1cmU9
YXJjaGl0ZWN0dXJlLCBidWlsZF90eXBlPWJ1aWxkX3R5cGUpKQogICAgICAgICByZXR1cm4gY29u
ZmlndXJhdGlvbnMKIAogICAgIGRlZiBfYXBwbGVfYmFzZWxpbmVfcGF0aChzZWxmLCBwbGF0Zm9y
bSk6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGFyd2luLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHkJKHJldmlzaW9uIDIy
OTA4MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDYgKzM2LDcgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQogCiBjbGFzcyBEYXJ3aW5Qb3J0KEFwcGxlUG9ydCk6CiAKKyAgICBDVVJSRU5UX1ZFUlNJT04g
PSBOb25lCiAgICAgU0RLID0gTm9uZQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBv
cnRfbmFtZSwgKiprd2FyZ3MpOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lv
cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CShy
ZXZpc2lvbiAyMjkwODIpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBAIGltcG9ydCB0cmFjZWJhY2sKIAogZnJvbSB3
ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9u
X25hbWVfbWFwIGltcG9ydCBWZXJzaW9uTmFtZU1hcAorZnJvbSB3ZWJraXRweS5jb21tb24udmVy
c2lvbl9uYW1lX21hcCBpbXBvcnQgVmVyc2lvbk5hbWVNYXAsIElOVEVSTkFMX1RBQkxFCiBmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9jb25maWd1cmF0aW9uIGltcG9ydCBU
ZXN0Q29uZmlndXJhdGlvbgogZnJvbSB3ZWJraXRweS5wb3J0LmNvbmZpZyBpbXBvcnQgYXBwbGVf
YWRkaXRpb25zCiBmcm9tIHdlYmtpdHB5LnBvcnQuZGFyd2luIGltcG9ydCBEYXJ3aW5Qb3J0CkBA
IC0zNyw4ICszNyw3IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIGNsYXNz
IElPU1BvcnQoRGFyd2luUG9ydCk6CiAgICAgcG9ydF9uYW1lID0gImlvcyIKIAotICAgIFZFUlNJ
T05fTUlOID0gVmVyc2lvbigxMSkKLSAgICBWRVJTSU9OX01BWCA9IFZlcnNpb24oMTIpCisgICAg
Q1VSUkVOVF9WRVJTSU9OID0gVmVyc2lvbigxMSkKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBo
b3N0LCBwb3J0X25hbWUsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoSU9TUG9ydCwgc2VsZiku
X19pbml0X18oaG9zdCwgcG9ydF9uYW1lLCAqKmt3YXJncykKQEAgLTk1LDIwICs5NCwzMSBAQCBj
bGFzcyBJT1NQb3J0KERhcndpblBvcnQpOgogICAgICAgICB3a19zdHJpbmcgPSAnd2sxJwogICAg
ICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpOgogICAgICAgICAg
ICAgd2tfc3RyaW5nID0gJ3drMicKLSAgICAgICAgIyBJZiB3ZSBkb24ndCBoYXZlIGEgc3BlY2lm
aWVkIHZlcnNpb24sIHRoYXQgbWVhbnMgd2UgdXNpbmcgdGhlIHBvcnQgd2l0aG91dCBhbiBTREsu
Ci0gICAgICAgICMgVGhpcyB1c3VhbGx5IG1lYW5zIHdlJ3JlIGRvaW5nIHNvbWUgdHlwZSBvZiB0
ZXN0aW5nLkluIHRoaXMgY2FzZSwgZG9uJ3QgYWRkIHZlcnNpb24gZmFsbGJhY2tzCisKKyAgICAg
ICAgdmVyc2lvbnNfdG9fZmFsbGJhY2sgPSBbXQorICAgICAgICBpZiBzZWxmLmlvc192ZXJzaW9u
KCkgPT0gc2VsZi5DVVJSRU5UX1ZFUlNJT046CisgICAgICAgICAgICB2ZXJzaW9uc190b19mYWxs
YmFjayA9IFtzZWxmLkNVUlJFTlRfVkVSU0lPTl0KKyAgICAgICAgZWxpZiBzZWxmLmlvc192ZXJz
aW9uKCk6CisgICAgICAgICAgICB0ZW1wX3ZlcnNpb24gPSBWZXJzaW9uKHNlbGYuaW9zX3ZlcnNp
b24oKS5tYWpvcikKKyAgICAgICAgICAgIHdoaWxlIHRlbXBfdmVyc2lvbiAhPSBzZWxmLkNVUlJF
TlRfVkVSU0lPTjoKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b19mYWxsYmFjay5hcHBlbmQo
VmVyc2lvbi5mcm9tX2l0ZXJhYmxlKHRlbXBfdmVyc2lvbikpCisgICAgICAgICAgICAgICAgaWYg
dGVtcF92ZXJzaW9uIDwgc2VsZi5DVVJSRU5UX1ZFUlNJT046CisgICAgICAgICAgICAgICAgICAg
IHRlbXBfdmVyc2lvbi5tYWpvciArPSAxCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgdGVtcF92ZXJzaW9uLm1ham9yIC09IDEKKwogICAgICAgICBleHBlY3RhdGlv
bnMgPSBbXQotICAgICAgICBpZiBhcHBsZV9hZGRpdGlvbnMoKSBhbmQgc2VsZi5pb3NfdmVyc2lv
bigpOgotICAgICAgICAgICAgYXBwbGVfbmFtZSA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhv
c3QucGxhdGZvcm0pLnRvX25hbWUoc2VsZi5pb3NfdmVyc2lvbigpLCBwbGF0Zm9ybT1JT1NQb3J0
LnBvcnRfbmFtZSwgdGFibGU9J2ludGVybmFsJykubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpCi0g
ICAgICAgIGVsc2U6CisgICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25zX3RvX2ZhbGxiYWNr
OgogICAgICAgICAgICAgYXBwbGVfbmFtZSA9IE5vbmUKLSAgICAgICAgaWYgc2VsZi5pb3NfdmVy
c2lvbigpOgorICAgICAgICAgICAgaWYgYXBwbGVfYWRkaXRpb25zKCk6CisgICAgICAgICAgICAg
ICAgYXBwbGVfbmFtZSA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0pLnRv
X25hbWUodmVyc2lvbiwgcGxhdGZvcm09SU9TUG9ydC5wb3J0X25hbWUsIHRhYmxlPUlOVEVSTkFM
X1RBQkxFKQorCiAgICAgICAgICAgICBpZiBhcHBsZV9uYW1lOgotICAgICAgICAgICAgICAgIGV4
cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fYXBwbGVfYmFzZWxpbmVfcGF0aCgne30te30te30nLmZv
cm1hdChzZWxmLnBvcnRfbmFtZSwgYXBwbGVfbmFtZSwgd2tfc3RyaW5nKSkpCi0gICAgICAgICAg
ICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCd7fS17fS17
fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCBzZWxmLmlvc192ZXJzaW9uKCkubWFqb3IsIHdrX3N0
cmluZykpKQorICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fYXBwbGVf
YmFzZWxpbmVfcGF0aCgne30te30te30nLmZvcm1hdChzZWxmLnBvcnRfbmFtZSwgYXBwbGVfbmFt
ZS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJyksIHdrX3N0cmluZykpKQorICAgICAgICAgICAgZXhw
ZWN0YXRpb25zLmFwcGVuZChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgne30te30te30nLmZv
cm1hdChzZWxmLnBvcnRfbmFtZSwgdmVyc2lvbi5tYWpvciwgd2tfc3RyaW5nKSkpCiAgICAgICAg
ICAgICBpZiBhcHBsZV9uYW1lOgotICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQo
c2VsZi5fYXBwbGVfYmFzZWxpbmVfcGF0aCgne30te30nLmZvcm1hdChzZWxmLnBvcnRfbmFtZSwg
YXBwbGVfbmFtZSkpKQotICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl93ZWJr
aXRfYmFzZWxpbmVfcGF0aCgne30te30nLmZvcm1hdChzZWxmLnBvcnRfbmFtZSwgc2VsZi5pb3Nf
dmVyc2lvbigpLm1ham9yKSkpCisgICAgICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChz
ZWxmLl9hcHBsZV9iYXNlbGluZV9wYXRoKCd7fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCBh
cHBsZV9uYW1lLmxvd2VyKCkucmVwbGFjZSgnICcsICcnKSkpKQorICAgICAgICAgICAgZXhwZWN0
YXRpb25zLmFwcGVuZChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgne30te30nLmZvcm1hdChz
ZWxmLnBvcnRfbmFtZSwgdmVyc2lvbi5tYWpvcikpKQogCiAgICAgICAgIGlmIGFwcGxlX2FkZGl0
aW9ucygpOgogICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNl
bGluZV9wYXRoKCd7fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCB3a19zdHJpbmcpKSkKQEAg
LTExNywxMCArMTI3LDEzIEBAIGNsYXNzIElPU1BvcnQoRGFyd2luUG9ydCk6CiAgICAgICAgICAg
ICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX2FwcGxlX2Jhc2VsaW5lX3BhdGgoc2VsZi5wb3J0
X25hbWUpKQogICAgICAgICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGlu
ZV9wYXRoKHNlbGYucG9ydF9uYW1lKSkKIAotICAgICAgICBpZiBzZWxmLmlvc192ZXJzaW9uKCk6
CisgICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25zX3RvX2ZhbGxiYWNrOgorICAgICAgICAg
ICAgYXBwbGVfbmFtZSA9IE5vbmUKKyAgICAgICAgICAgIGlmIGFwcGxlX2FkZGl0aW9ucygpOgor
ICAgICAgICAgICAgICAgIGFwcGxlX25hbWUgPSBWZXJzaW9uTmFtZU1hcC5tYXAoc2VsZi5ob3N0
LnBsYXRmb3JtKS50b19uYW1lKHZlcnNpb24sIHBsYXRmb3JtPUlPU1BvcnQucG9ydF9uYW1lLCB0
YWJsZT1JTlRFUk5BTF9UQUJMRSkKICAgICAgICAgICAgIGlmIGFwcGxlX25hbWU6Ci0gICAgICAg
ICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVuZChzZWxmLl9hcHBsZV9iYXNlbGluZV9wYXRoKCd7
fS17fScuZm9ybWF0KElPU1BvcnQucG9ydF9uYW1lLCBhcHBsZV9uYW1lKSkpCi0gICAgICAgICAg
ICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCd7fS17fScu
Zm9ybWF0KElPU1BvcnQucG9ydF9uYW1lLCBzZWxmLmlvc192ZXJzaW9uKCkubWFqb3IpKSkKKyAg
ICAgICAgICAgICAgICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX2FwcGxlX2Jhc2VsaW5lX3Bh
dGgoJ3t9LXt9Jy5mb3JtYXQoSU9TUG9ydC5wb3J0X25hbWUsIGFwcGxlX25hbWUubG93ZXIoKS5y
ZXBsYWNlKCcgJywgJycpKSkpCisgICAgICAgICAgICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYu
X3dlYmtpdF9iYXNlbGluZV9wYXRoKCd7fS17fScuZm9ybWF0KElPU1BvcnQucG9ydF9uYW1lLCB2
ZXJzaW9uLm1ham9yKSkpCiAKICAgICAgICAgaWYgYXBwbGVfYWRkaXRpb25zKCk6CiAgICAgICAg
ICAgICBleHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX2FwcGxlX2Jhc2VsaW5lX3BhdGgoJ3t9LXt9
Jy5mb3JtYXQoSU9TUG9ydC5wb3J0X25hbWUsIHdrX3N0cmluZykpKQpJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L21hYy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvbWFjLnB5CShyZXZpc2lvbiAyMjkwODIpCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvbWFjLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBAIGltcG9y
dCByZQogZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJv
bSB3ZWJraXRweS5jb21tb24udmVyc2lvbiBpbXBvcnQgVmVyc2lvbgorZnJvbSB3ZWJraXRweS5j
b21tb24udmVyc2lvbl9uYW1lX21hcCBpbXBvcnQgUFVCTElDX1RBQkxFLCBJTlRFUk5BTF9UQUJM
RQogZnJvbSB3ZWJraXRweS5jb21tb24udmVyc2lvbl9uYW1lX21hcCBpbXBvcnQgVmVyc2lvbk5h
bWVNYXAKIGZyb20gd2Via2l0cHkucG9ydC5jb25maWcgaW1wb3J0IGFwcGxlX2FkZGl0aW9ucwog
ZnJvbSB3ZWJraXRweS5wb3J0LmRhcndpbiBpbXBvcnQgRGFyd2luUG9ydApAQCAtNDQsOCArNDUs
NyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiBjbGFzcyBNYWNQb3J0KERh
cndpblBvcnQpOgogICAgIHBvcnRfbmFtZSA9ICJtYWMiCiAKLSAgICBWRVJTSU9OX01JTiA9IFZl
cnNpb24oMTAsIDYpCi0gICAgVkVSU0lPTl9NQVggPSBWZXJzaW9uKDEwLCAxNCkKKyAgICBDVVJS
RU5UX1ZFUlNJT04gPSBWZXJzaW9uKDEwLCAxMykKIAogICAgIFNESyA9ICdtYWNvc3gnCiAKQEAg
LTYxLDM3ICs2MSw0OSBAQCBjbGFzcyBNYWNQb3J0KERhcndpblBvcnQpOgogICAgICAgICBlbGlm
IHNlbGYuaG9zdC5wbGF0Zm9ybS5pc19tYWMoKToKICAgICAgICAgICAgIHNlbGYuX29zX3ZlcnNp
b24gPSBzZWxmLmhvc3QucGxhdGZvcm0ub3NfdmVyc2lvbgogICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc29ydGVkX3ZlcnNpb25zID0gc29ydGVkKHZlcnNpb25fbmFtZV9tYXAubWFwcGluZ19m
b3JfcGxhdGZvcm0ocGxhdGZvcm09c2VsZi5wb3J0X25hbWUpLnZhbHVlcygpKQotICAgICAgICAg
ICAgc2VsZi5fb3NfdmVyc2lvbiA9IHNvcnRlZF92ZXJzaW9uc1tzb3J0ZWRfdmVyc2lvbnMuaW5k
ZXgoc2VsZi5WRVJTSU9OX01BWCkgLSAxXQorICAgICAgICAgICAgc2VsZi5fb3NfdmVyc2lvbiA9
IE1hY1BvcnQuQ1VSUkVOVF9WRVJTSU9OCisgICAgICAgIGFzc2VydCBzZWxmLl9vc192ZXJzaW9u
CisgICAgICAgIGFzc2VydCBzZWxmLl9vc192ZXJzaW9uLm1ham9yID09IDEwCiAKICAgICBkZWYg
X2J1aWxkX2RyaXZlcl9mbGFncyhzZWxmKToKICAgICAgICAgcmV0dXJuIFsnQVJDSFM9aTM4Nidd
IGlmIHNlbGYuYXJjaGl0ZWN0dXJlKCkgPT0gJ3g4NicgZWxzZSBbXQogCiAgICAgQG1lbW9pemVk
CiAgICAgZGVmIGRlZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CisgICAgICAgIHZl
cnNpb25zX3RvX2ZhbGxiYWNrID0gW10KICAgICAgICAgdmVyc2lvbl9uYW1lX21hcCA9IFZlcnNp
b25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0pCi0gICAgICAgIGlmIHNlbGYuX29zX3Zl
cnNpb24gPCBzZWxmLlZFUlNJT05fTUlOIG9yIHNlbGYuX29zX3ZlcnNpb24gPj0gc2VsZi5WRVJT
SU9OX01BWDoKLSAgICAgICAgICAgIHZlcnNpb25fZmFsbGJhY2sgPSBbc2VsZi5fb3NfdmVyc2lv
bl0KKworICAgICAgICBpZiBzZWxmLl9vc192ZXJzaW9uID09IHNlbGYuQ1VSUkVOVF9WRVJTSU9O
OgorICAgICAgICAgICAgdmVyc2lvbnNfdG9fZmFsbGJhY2sgPSBbc2VsZi5DVVJSRU5UX1ZFUlNJ
T05dCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzb3J0ZWRfdmVyc2lvbnMgPSBzb3J0ZWQo
dmVyc2lvbl9uYW1lX21hcC5tYXBwaW5nX2Zvcl9wbGF0Zm9ybShwbGF0Zm9ybT1zZWxmLnBvcnRf
bmFtZSkudmFsdWVzKCkpCi0gICAgICAgICAgICB2ZXJzaW9uX2ZhbGxiYWNrID0gc29ydGVkX3Zl
cnNpb25zW3NvcnRlZF92ZXJzaW9ucy5pbmRleChzZWxmLl9vc192ZXJzaW9uKTotMV0KKyAgICAg
ICAgICAgIHRlbXBfdmVyc2lvbiA9IFZlcnNpb24oc2VsZi5fb3NfdmVyc2lvbi5tYWpvciwgc2Vs
Zi5fb3NfdmVyc2lvbi5taW5vcikKKyAgICAgICAgICAgIHdoaWxlIHRlbXBfdmVyc2lvbiAhPSBz
ZWxmLkNVUlJFTlRfVkVSU0lPTjoKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b19mYWxsYmFj
ay5hcHBlbmQoVmVyc2lvbi5mcm9tX2l0ZXJhYmxlKHRlbXBfdmVyc2lvbikpCisgICAgICAgICAg
ICAgICAgaWYgdGVtcF92ZXJzaW9uIDwgc2VsZi5DVVJSRU5UX1ZFUlNJT046CisgICAgICAgICAg
ICAgICAgICAgIHRlbXBfdmVyc2lvbi5taW5vciArPSAxCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgdGVtcF92ZXJzaW9uLm1pbm9yIC09IDEKICAgICAgICAgd2tf
c3RyaW5nID0gJ3drMScKICAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9y
dW5uZXInKToKICAgICAgICAgICAgIHdrX3N0cmluZyA9ICd3azInCiAKICAgICAgICAgZXhwZWN0
YXRpb25zID0gW10KLSAgICAgICAgZm9yIHZlcnNpb24gaW4gdmVyc2lvbl9mYWxsYmFjazoKLSAg
ICAgICAgICAgIHZlcnNpb25fbmFtZSA9IHZlcnNpb25fbmFtZV9tYXAudG9fbmFtZSh2ZXJzaW9u
LCBwbGF0Zm9ybT1zZWxmLnBvcnRfbmFtZSkubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpCisgICAg
ICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25zX3RvX2ZhbGxiYWNrOgorICAgICAgICAgICAgdmVy
c2lvbl9uYW1lID0gdmVyc2lvbl9uYW1lX21hcC50b19uYW1lKHZlcnNpb24sIHBsYXRmb3JtPXNl
bGYucG9ydF9uYW1lKQorICAgICAgICAgICAgaWYgdmVyc2lvbl9uYW1lOgorICAgICAgICAgICAg
ICAgIHN0YW5kYXJkaXplZF92ZXJzaW9uX25hbWUgPSB2ZXJzaW9uX25hbWUubG93ZXIoKS5yZXBs
YWNlKCcgJywgJycpCisgICAgICAgICAgICBhcHBsZV9uYW1lID0gTm9uZQogICAgICAgICAgICAg
aWYgYXBwbGVfYWRkaXRpb25zKCk6Ci0gICAgICAgICAgICAgICAgYXBwbGVfbmFtZSA9IHZlcnNp
b25fbmFtZV9tYXAudG9fbmFtZSh2ZXJzaW9uLCBwbGF0Zm9ybT1zZWxmLnBvcnRfbmFtZSwgdGFi
bGU9J2ludGVybmFsJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgYXBwbGVf
bmFtZSA9IE5vbmUKKyAgICAgICAgICAgICAgICBhcHBsZV9uYW1lID0gdmVyc2lvbl9uYW1lX21h
cC50b19uYW1lKHZlcnNpb24sIHBsYXRmb3JtPXNlbGYucG9ydF9uYW1lLCB0YWJsZT1JTlRFUk5B
TF9UQUJMRSkKKwogICAgICAgICAgICAgaWYgYXBwbGVfbmFtZToKICAgICAgICAgICAgICAgICBl
eHBlY3RhdGlvbnMuYXBwZW5kKHNlbGYuX2FwcGxlX2Jhc2VsaW5lX3BhdGgoJ21hYy17fS17fScu
Zm9ybWF0KGFwcGxlX25hbWUubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpLCB3a19zdHJpbmcpKSkK
LSAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgoJ21hYy17fS17fScuZm9ybWF0KHZlcnNpb25fbmFtZSwgd2tfc3RyaW5nKSkpCisgICAgICAg
ICAgICBpZiB2ZXJzaW9uX25hbWU6CisgICAgICAgICAgICAgICAgZXhwZWN0YXRpb25zLmFwcGVu
ZChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgnbWFjLXt9LXt9Jy5mb3JtYXQoc3RhbmRhcmRp
emVkX3ZlcnNpb25fbmFtZSwgd2tfc3RyaW5nKSkpCiAgICAgICAgICAgICBpZiBhcHBsZV9uYW1l
OgogICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fYXBwbGVfYmFzZWxp
bmVfcGF0aCgnbWFjLXt9Jy5mb3JtYXQoYXBwbGVfbmFtZS5sb3dlcigpLnJlcGxhY2UoJyAnLCAn
JykpKSkKLSAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fd2Via2l0X2Jhc2Vs
aW5lX3BhdGgoJ21hYy17fScuZm9ybWF0KHZlcnNpb25fbmFtZSkpKQorICAgICAgICAgICAgaWYg
dmVyc2lvbl9uYW1lOgorICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5f
d2Via2l0X2Jhc2VsaW5lX3BhdGgoJ21hYy17fScuZm9ybWF0KHN0YW5kYXJkaXplZF92ZXJzaW9u
X25hbWUpKSkKIAogICAgICAgICBpZiBhcHBsZV9hZGRpdGlvbnMoKToKICAgICAgICAgICAgIGV4
cGVjdGF0aW9ucy5hcHBlbmQoc2VsZi5fYXBwbGVfYmFzZWxpbmVfcGF0aCgne30te30nLmZvcm1h
dChzZWxmLnBvcnRfbmFtZSwgd2tfc3RyaW5nKSkpCkBAIC0xMDYsMTUgKzExOCwyMSBAQCBjbGFz
cyBNYWNQb3J0KERhcndpblBvcnQpOgogCiAgICAgQG1lbW9pemVkCiAgICAgZGVmIGNvbmZpZ3Vy
YXRpb25fc3BlY2lmaWVyX21hY3JvcyhzZWxmKToKLSAgICAgICAgbWFwID0ge30KKyAgICAgICAg
Y29uZmlnX21hcCA9IHt9CiAgICAgICAgIHZlcnNpb25fbmFtZV9tYXAgPSBWZXJzaW9uTmFtZU1h
cC5tYXAoc2VsZi5ob3N0LnBsYXRmb3JtKQotICAgICAgICBzb3J0ZWRfdmVyc2lvbnMgPSBzb3J0
ZWQodmVyc2lvbl9uYW1lX21hcC5tYXBwaW5nX2Zvcl9wbGF0Zm9ybShwbGF0Zm9ybT1zZWxmLnBv
cnRfbmFtZSkudmFsdWVzKCkpCi0gICAgICAgIGZvciB2ZXJzaW9uIGluIHNvcnRlZF92ZXJzaW9u
czoKLSAgICAgICAgICAgIGxpc3QgPSBbXQotICAgICAgICAgICAgZm9yIG5ld2VyIGluIHNvcnRl
ZF92ZXJzaW9uc1tzb3J0ZWRfdmVyc2lvbnMuaW5kZXgodmVyc2lvbik6XToKLSAgICAgICAgICAg
ICAgICBsaXN0LmFwcGVuZCh2ZXJzaW9uX25hbWVfbWFwLnRvX25hbWUobmV3ZXIsIHBsYXRmb3Jt
PXNlbGYucG9ydF9uYW1lKS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykpCi0gICAgICAgICAgICBt
YXBbdmVyc2lvbl9uYW1lX21hcC50b19uYW1lKHZlcnNpb24sIHBsYXRmb3JtPXNlbGYucG9ydF9u
YW1lKS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykgKyAnKyddID0gbGlzdAotICAgICAgICByZXR1
cm4gbWFwCisgICAgICAgIGZvciB2ZXJzaW9uIGluIHNlbGYuX2FsbG93ZWRfdmVyc2lvbnMoKToK
KyAgICAgICAgICAgIHZlcnNpb25fbmFtZXMgPSBbXQorICAgICAgICAgICAgZm9yIG5ld2VyIGlu
IHNlbGYuX2FsbG93ZWRfdmVyc2lvbnMoKVtzZWxmLl9hbGxvd2VkX3ZlcnNpb25zKCkuaW5kZXgo
dmVyc2lvbik6XToKKyAgICAgICAgICAgICAgICB2ZXJzaW9uX25hbWUgPSB2ZXJzaW9uX25hbWVf
bWFwLnRvX25hbWUobmV3ZXIsIHBsYXRmb3JtPXNlbGYucG9ydF9uYW1lKQorICAgICAgICAgICAg
ICAgIGlmIG5vdCB2ZXJzaW9uX25hbWU6CisgICAgICAgICAgICAgICAgICAgIHZlcnNpb25fbmFt
ZSA9IHZlcnNpb25fbmFtZV9tYXAudG9fbmFtZShuZXdlciwgcGxhdGZvcm09c2VsZi5wb3J0X25h
bWUsIHRhYmxlPUlOVEVSTkFMX1RBQkxFKQorICAgICAgICAgICAgICAgIHZlcnNpb25fbmFtZXMu
YXBwZW5kKHZlcnNpb25fbmFtZS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykpCisgICAgICAgICAg
ICBmb3IgdGFibGUgaW4gW1BVQkxJQ19UQUJMRSwgSU5URVJOQUxfVEFCTEVdOgorICAgICAgICAg
ICAgICAgIHZlcnNpb25fbmFtZSA9IHZlcnNpb25fbmFtZV9tYXAudG9fbmFtZSh2ZXJzaW9uLCBw
bGF0Zm9ybT1zZWxmLnBvcnRfbmFtZSwgdGFibGU9dGFibGUpCisgICAgICAgICAgICAgICAgaWYg
bm90IHZlcnNpb25fbmFtZToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAg
ICAgICAgICBjb25maWdfbWFwW3ZlcnNpb25fbmFtZS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykg
KyAnKyddID0gdmVyc2lvbl9uYW1lcworICAgICAgICByZXR1cm4gY29uZmlnX21hcAogCiAgICAg
ZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKICAg
ICAgICAgZW52ID0gc3VwZXIoTWFjUG9ydCwgc2VsZikuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVy
KHNlcnZlcl9uYW1lKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L21hY191bml0
dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjX3Vu
aXR0ZXN0LnB5CShyZXZpc2lvbiAyMjkwODIpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvbWFjX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC02OCw4ICs2OCw2IEBAIGNsYXNz
IE1hY1Rlc3QoZGFyd2luX3Rlc3RjYXNlLkRhcndpblRlc3QKICAgICAgICAgc2VsZi5hc3NlcnRf
bmFtZSgnbWFjJywgJ2hpZ2hzaWVycmEnLCAnbWFjLWhpZ2hzaWVycmEnKQogICAgICAgICBzZWxm
LmFzc2VydF9uYW1lKCdtYWMtaGlnaHNpZXJyYScsICdlbGNhcGl0YW4nLCAnbWFjLWhpZ2hzaWVy
cmEnKQogICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdtYWMtaGlnaHNpZXJyYScsICdzaWVycmEn
LCAnbWFjLWhpZ2hzaWVycmEnKQotICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdtYWMnLCAnZnV0
dXJlJywgJ21hYy1mdXR1cmUnKQotICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdtYWMtZnV0dXJl
JywgJ2Z1dHVyZScsICdtYWMtZnV0dXJlJykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNz
ZXJ0aW9uRXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsICdtYWMtdGlnZXInLCAnbGVvcGFyZCcsICdt
YWMtbGVvcGFyZCcpCiAKICAgICBkZWYgdGVzdF9zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2Vs
Zik6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5w
eQkocmV2aXNpb24gMjI5MDgyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRf
dGVzdGNhc2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tbwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVtSG9zdAor
ZnJvbSB3ZWJraXRweS5jb21tb24udmVyc2lvbl9uYW1lX21hcCBpbXBvcnQgSU5URVJOQUxfVEFC
TEUKIGZyb20gd2Via2l0cHkucG9ydC5iYXNlIGltcG9ydCBQb3J0CiBmcm9tIHdlYmtpdHB5LnBv
cnQuY29uZmlnIGltcG9ydCBhcHBsZV9hZGRpdGlvbnMKIGZyb20gd2Via2l0cHkucG9ydC5pbWFn
ZV9kaWZmIGltcG9ydCBJbWFnZURpZmZlcgpAQCAtOTcsMTEgKzk4LDExIEBAIGRlZiBiaW5kX21v
Y2tfYXBwbGVfYWRkaXRpb25zKCk6CiAgICAgICAgIEBzdGF0aWNtZXRob2QKICAgICAgICAgZGVm
IHZlcnNpb25fbmFtZV9tYXBwaW5nKHBsYXRmb3JtPU5vbmUpOgogICAgICAgICAgICAgcmVzdWx0
ID0gVmVyc2lvbk5hbWVNYXAocGxhdGZvcm0pCi0gICAgICAgICAgICByZXN1bHQubWFwcGluZ1sn
aW50ZXJuYWwnXSA9IHt9CisgICAgICAgICAgICByZXN1bHQubWFwcGluZ1tJTlRFUk5BTF9UQUJM
RV0gPSB7fQogICAgICAgICAgICAgZm9yIHBsYXRmb3JtIGluIHJlc3VsdC5tYXBwaW5nW1BVQkxJ
Q19UQUJMRV06Ci0gICAgICAgICAgICAgICAgcmVzdWx0Lm1hcHBpbmdbJ2ludGVybmFsJ11bcGxh
dGZvcm1dID0ge30KKyAgICAgICAgICAgICAgICByZXN1bHQubWFwcGluZ1tJTlRFUk5BTF9UQUJM
RV1bcGxhdGZvcm1dID0ge30KICAgICAgICAgICAgICAgICBmb3IgbmFtZSwgdmVyc2lvbiBpbiBy
ZXN1bHQubWFwcGluZ1tQVUJMSUNfVEFCTEVdW3BsYXRmb3JtXS5pdGVyaXRlbXMoKToKLSAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0Lm1hcHBpbmdbJ2ludGVybmFsJ11bcGxhdGZvcm1dWydhZGQt
JyArIG5hbWVdID0gdmVyc2lvbgorICAgICAgICAgICAgICAgICAgICByZXN1bHQubWFwcGluZ1tJ
TlRFUk5BTF9UQUJMRV1bcGxhdGZvcm1dWydhZGQtJyArIG5hbWVdID0gdmVyc2lvbgogICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgIyBhcHBsZV9hZGRpdGlvbnMgaXMgYSBtZW1vaXpl
ZCBmdW5jdGlvbi4gVGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcyBmYWN0IGFuZCBtYW5pcHVsYXRlIHRo
ZSBjYWNoZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334753</attachid>
            <date>2018-02-28 11:26:06 -0800</date>
            <delta_ts>2018-02-28 17:29:38 -0800</delta_ts>
            <desc>Follow-up fix</desc>
            <filename>bug-183184-20180228112605.patch</filename>
            <type>text/plain</type>
            <size>3756</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyOTA5OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE5IEBACisyMDE4LTAyLTI4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFJlbW92ZSBjb25jZXB0IG9mICdmdXR1cmUnIHZlcnNp
b25zIChGb2xsb3ctdXAgZml4KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzMTg0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzk1ODU5ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZmFjdG9y
eSBhbHNvIHJlbGllcyBvZmYgb2YgZnV0dXJlIGluIGEgbm9uLW9idmlvdXMgd2F5LgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weToKKyAg
ICAgICAgKFBsYXRmb3JtSW5mby5vc192ZXJzaW9uX25hbWUpOiBDaGVjayBib3RoIHB1YmxpYyBh
bmQgaW50ZXJuYWwgdmVyc2lvbiBtYXBwaW5nCisgICAgICAgIHdoZW4gcmV0dXJuaW5nIGEgdmVy
c2lvbiBuYW1lLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm9fbW9jay5weToKKyAgICAgICAgKE1vY2tQbGF0Zm9ybUluZm8ub3NfdmVyc2lvbl9u
YW1lKTogRGl0dG8uCisKIDIwMTgtMDItMjggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV1BFIGZpeHVwIGFmdGVyIHIyMjkwODAuCklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm8ucHkJKHJldmlzaW9uIDIyOTA5NykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMy
LDcgQEAgaW1wb3J0IHN5cwogaW1wb3J0IHBsYXRmb3JtCiAKIGZyb20gd2Via2l0cHkuY29tbW9u
LnZlcnNpb24gaW1wb3J0IFZlcnNpb24KLWZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNpb25fbmFt
ZV9tYXAgaW1wb3J0IFBVQkxJQ19UQUJMRSwgVmVyc2lvbk5hbWVNYXAKK2Zyb20gd2Via2l0cHku
Y29tbW9uLnZlcnNpb25fbmFtZV9tYXAgaW1wb3J0IFBVQkxJQ19UQUJMRSwgSU5URVJOQUxfVEFC
TEUsIFZlcnNpb25OYW1lTWFwCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBFeGVjdXRpdmUKIAogCkBAIC0xMTQsMTAgKzExNCwxNSBAQCBjbGFzcyBQbGF0Zm9y
bUluZm8ob2JqZWN0KToKICAgICAgICAgIyBXaW5kb3dzLTIwMDhTZXJ2ZXJSMi02LjEuNzYwMAog
ICAgICAgICByZXR1cm4gc2VsZi5fcGxhdGZvcm1fbW9kdWxlLnBsYXRmb3JtKCkKIAotICAgIGRl
ZiBvc192ZXJzaW9uX25hbWUoc2VsZiwgdGFibGU9UFVCTElDX1RBQkxFKToKKyAgICBkZWYgb3Nf
dmVyc2lvbl9uYW1lKHNlbGYsIHRhYmxlPU5vbmUpOgogICAgICAgICBpZiBub3Qgc2VsZi5vc192
ZXJzaW9uOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIFZlcnNpb25O
YW1lTWFwLm1hcChzZWxmKS50b19uYW1lKHNlbGYub3NfdmVyc2lvbiwgdGFibGU9dGFibGUpCisg
ICAgICAgIGlmIHRhYmxlOgorICAgICAgICAgICAgcmV0dXJuIFZlcnNpb25OYW1lTWFwLm1hcChz
ZWxmKS50b19uYW1lKHNlbGYub3NfdmVyc2lvbiwgdGFibGU9dGFibGUpCisgICAgICAgIHZlcnNp
b25fbmFtZSA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmKS50b19uYW1lKHNlbGYub3NfdmVyc2lv
biwgdGFibGU9UFVCTElDX1RBQkxFKQorICAgICAgICBpZiBub3QgdmVyc2lvbl9uYW1lOgorICAg
ICAgICAgICAgdmVyc2lvbl9uYW1lID0gVmVyc2lvbk5hbWVNYXAubWFwKHNlbGYpLnRvX25hbWUo
c2VsZi5vc192ZXJzaW9uLCB0YWJsZT1JTlRFUk5BTF9UQUJMRSkKKyAgICAgICAgcmV0dXJuIHZl
cnNpb25fbmFtZQogCiAgICAgZGVmIHRvdGFsX2J5dGVzX21lbW9yeShzZWxmKToKICAgICAgICAg
aWYgc2VsZi5pc19tYWMoKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkJKHJldmlzaW9uIDIyOTA5
NykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9f
bW9jay5weQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCi1mcm9tIHdlYmtp
dHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBQVUJMSUNfVEFCTEUsIFZlcnNpb25O
YW1lTWFwCitmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBQVUJM
SUNfVEFCTEUsIElOVEVSTkFMX1RBQkxFLCBWZXJzaW9uTmFtZU1hcAogCiAKIGNsYXNzIE1vY2tQ
bGF0Zm9ybUluZm8ob2JqZWN0KToKQEAgLTYyLDEwICs2MiwxNSBAQCBjbGFzcyBNb2NrUGxhdGZv
cm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToKICAgICAgICAgcmV0
dXJuICJNb2NrUGxhdGZvcm0gMS4wIgogCi0gICAgZGVmIG9zX3ZlcnNpb25fbmFtZShzZWxmLCB0
YWJsZT1QVUJMSUNfVEFCTEUpOgorICAgIGRlZiBvc192ZXJzaW9uX25hbWUoc2VsZiwgdGFibGU9
Tm9uZSk6CiAgICAgICAgIGlmIG5vdCBzZWxmLm9zX3ZlcnNpb246CiAgICAgICAgICAgICByZXR1
cm4gTm9uZQotICAgICAgICByZXR1cm4gVmVyc2lvbk5hbWVNYXAubWFwKHNlbGYpLnRvX25hbWUo
c2VsZi5vc192ZXJzaW9uLCB0YWJsZT10YWJsZSkKKyAgICAgICAgaWYgdGFibGU6CisgICAgICAg
ICAgICByZXR1cm4gVmVyc2lvbk5hbWVNYXAubWFwKHNlbGYpLnRvX25hbWUoc2VsZi5vc192ZXJz
aW9uLCB0YWJsZT10YWJsZSkKKyAgICAgICAgdmVyc2lvbl9uYW1lID0gVmVyc2lvbk5hbWVNYXAu
bWFwKHNlbGYpLnRvX25hbWUoc2VsZi5vc192ZXJzaW9uLCB0YWJsZT1QVUJMSUNfVEFCTEUpCisg
ICAgICAgIGlmIG5vdCB2ZXJzaW9uX25hbWU6CisgICAgICAgICAgICB2ZXJzaW9uX25hbWUgPSBW
ZXJzaW9uTmFtZU1hcC5tYXAoc2VsZikudG9fbmFtZShzZWxmLm9zX3ZlcnNpb24sIHRhYmxlPUlO
VEVSTkFMX1RBQkxFKQorICAgICAgICByZXR1cm4gdmVyc2lvbl9uYW1lCiAKICAgICBkZWYgdG90
YWxfYnl0ZXNfbWVtb3J5KHNlbGYpOgogICAgICAgICByZXR1cm4gMyAqIDEwMjQgKiAxMDI0ICog
MTAyNCAgIyAzR0IgaXMgYSByZWFzb25hYmxlIGFtb3VudCBvZiByYW0gdG8gbW9jay4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334787</attachid>
            <date>2018-02-28 17:09:55 -0800</date>
            <delta_ts>2018-02-28 17:29:39 -0800</delta_ts>
            <desc>Follow-up fix 2</desc>
            <filename>bug-183184-20180228170954.patch</filename>
            <type>text/plain</type>
            <size>4754</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyOTExNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDE4LTAyLTI4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFJlbW92ZSBjb25jZXB0IG9mICdmdXR1cmUnIHZlcnNp
b25zIChGb2xsb3ctdXAgZml4IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODMxODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3OTU4NTk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVubGlzdGVk
IEFwcGxlIHZlcnNpb25zIGNhbid0IHJ1biB3ZWJraXRweSB0ZXN0cyBiZWNhdXNlIHRoZXkgZG9u
J3QKKyAgICAgICAgaGF2ZSBzcGVjaWZpZWQgcG9ydCBuYW1lcy4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC9hcHBsZS5weToKKyAgICAgICAgKEFwcGxlUG9ydC5kZXRlcm1pbmVf
ZnVsbF9wb3J0X25hbWUpOiBSZXR1cm4gdmFsaWQgcG9ydCBuYW1lIGZvciB1bm5hbWVkCisgICAg
ICAgIHZlcnNpb25zLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5Ogor
ICAgICAgICAoUG9ydC52ZXJzaW9uX25hbWUpOiBDaGVjayBib3RoIHB1YmxpYyBhbmQgaW50ZXJu
YWwgdmVyc2lvbiBtYXBwaW5nCisgICAgICAgIHdoZW4gcmV0dXJuaW5nIGEgdmVyc2lvbiBuYW1l
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHk6CisgICAgICAgIChNYWNQ
b3J0Ll9faW5pdF9fKTogSWYgbm8gb3MgdmVyc2lvbiBpcyBkZWZpbmVkLCB1c2UgdGhlIGN1cnJl
bnQgdmVyc2lvbi4KKwogMjAxOC0wMi0yOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgYSBzZWNvbmQgdGllciBvZiBwcmV2YWxlbmNlIHRvIGZhY2ls
aXRhdGUgdGVsZW1ldHJ5IG9uIHZlcnkgcHJldmFsZW50IGRvbWFpbnMKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9hcHBsZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvYXBwbGUucHkJKHJldmlzaW9uIDIyOTEwOSkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9hcHBsZS5weQkod29ya2luZyBjb3B5KQpAQCAtNjAsMTAgKzYwLDEy
IEBAIGNsYXNzIEFwcGxlUG9ydChQb3J0KToKICAgICAgICAgICAgICMgVGhhdCBjb252ZW50aW9u
IG1lYW5zIHRoYXQgd2UncmUgc3VwcG9zZWQgdG8gdXNlIHRoZSB2ZXJzaW9uIGN1cnJlbnRseQog
ICAgICAgICAgICAgIyBiZWluZyBydW4sIHNvIHRoaXMgd29uJ3Qgd29yayBpZiB5b3UncmUgbm90
IG9uIG1hYyBvciB3aW4gKHJlc3BlY3RpdmVseSkuCiAgICAgICAgICAgICAjIElmIHlvdSdyZSBu
b3Qgb24gdGhlIG8vcyBpbiBxdWVzdGlvbiwgeW91IG11c3Qgc3BlY2lmeSBhIGZ1bGwgdmVyc2lv
biBvciAtZnV0dXJlIChjZi4gYWJvdmUpLgotICAgICAgICAgICAgaWYgcG9ydF9uYW1lID09IGNs
cy5wb3J0X25hbWUgYW5kIG5vdCBnZXRhdHRyKG9wdGlvbnMsICd3ZWJraXRfdGVzdF9ydW5uZXIn
LCBGYWxzZSk6CisgICAgICAgICAgICBpZiBwb3J0X25hbWUgPT0gY2xzLnBvcnRfbmFtZSBhbmQg
bm90IGdldGF0dHIob3B0aW9ucywgJ3dlYmtpdF90ZXN0X3J1bm5lcicsIEZhbHNlKSBhbmQgaG9z
dC5wbGF0Zm9ybS5vc192ZXJzaW9uX25hbWUoKToKICAgICAgICAgICAgICAgICBwb3J0X25hbWUg
PSBjbHMucG9ydF9uYW1lICsgJy0nICsgaG9zdC5wbGF0Zm9ybS5vc192ZXJzaW9uX25hbWUoKS5s
b3dlcigpLnJlcGxhY2UoJyAnLCAnJykKLSAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICBl
bGlmIGhvc3QucGxhdGZvcm0ub3NfdmVyc2lvbl9uYW1lKCk6CiAgICAgICAgICAgICAgICAgcG9y
dF9uYW1lID0gY2xzLnBvcnRfbmFtZSArICctJyArIGhvc3QucGxhdGZvcm0ub3NfdmVyc2lvbl9u
YW1lKCkubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpICsgJy13azInCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIHBvcnRfbmFtZSA9IGNscy5wb3J0X25hbWUgKyAnLXdrMicKICAg
ICAgICAgZWxpZiBnZXRhdHRyKG9wdGlvbnMsICd3ZWJraXRfdGVzdF9ydW5uZXInLCBGYWxzZSkg
YW5kICAnLXdrMicgbm90IGluIHBvcnRfbmFtZToKICAgICAgICAgICAgIHBvcnRfbmFtZSArPSAn
LXdrMicKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHJldmlzaW9uIDIy
OTEwOSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC00OSw3ICs0OSw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9y
dCBtZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnByZXR0eXBhdGNoIGltcG9ydCBQcmV0dHlQYXRj
aAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBwYXRoCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgotZnJvbSB3ZWJraXRw
eS5jb21tb24udmVyc2lvbl9uYW1lX21hcCBpbXBvcnQgUFVCTElDX1RBQkxFLCBWZXJzaW9uTmFt
ZU1hcAorZnJvbSB3ZWJraXRweS5jb21tb24udmVyc2lvbl9uYW1lX21hcCBpbXBvcnQgUFVCTElD
X1RBQkxFLCBJTlRFUk5BTF9UQUJMRSwgVmVyc2lvbk5hbWVNYXAKIGZyb20gd2Via2l0cHkuY29t
bW9uLndhdmVkaWZmIGltcG9ydCBXYXZlRGlmZgogZnJvbSB3ZWJraXRweS5jb21tb24ud2Via2l0
X2ZpbmRlciBpbXBvcnQgV2ViS2l0RmluZGVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5t
b2RlbHMudGVzdF9jb25maWd1cmF0aW9uIGltcG9ydCBUZXN0Q29uZmlndXJhdGlvbgpAQCAtNzc0
LDcgKzc3NCwxMCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIGV4cGVjdGF0aW9ucywg
ZGV0ZXJtaW5pbmcgc2VhcmNoIHBhdGhzLCBhbmQgbG9nZ2luZyBpbmZvcm1hdGlvbi4iIiIKICAg
ICAgICAgaWYgc2VsZi5fb3NfdmVyc2lvbiBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuIE5v
bmUKLSAgICAgICAgcmV0dXJuIFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0p
LnRvX25hbWUoc2VsZi5fb3NfdmVyc2lvbiwgdGFibGU9UFVCTElDX1RBQkxFKQorICAgICAgICBy
ZXN1bHQgPSBWZXJzaW9uTmFtZU1hcC5tYXAoc2VsZi5ob3N0LnBsYXRmb3JtKS50b19uYW1lKHNl
bGYuX29zX3ZlcnNpb24sIHRhYmxlPVBVQkxJQ19UQUJMRSkKKyAgICAgICAgaWYgbm90IHJlc3Vs
dDoKKyAgICAgICAgICAgIHJlc3VsdCA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxh
dGZvcm0pLnRvX25hbWUoc2VsZi5fb3NfdmVyc2lvbiwgdGFibGU9SU5URVJOQUxfVEFCTEUpCisg
ICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIGRlZiBnZXRfb3B0aW9uKHNlbGYsIG5hbWUsIGRl
ZmF1bHRfdmFsdWU9Tm9uZSk6CiAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYuX29wdGlvbnMs
IG5hbWUsIGRlZmF1bHRfdmFsdWUpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
bWFjLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHkJ
KHJldmlzaW9uIDIyOTEwOSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTU2LDEzICs1NiwxMSBAQCBjbGFzcyBNYWNQb3J0KERhcndpblBv
cnQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0X25hbWUsICoqa3dhcmdzKToK
ICAgICAgICAgRGFyd2luUG9ydC5fX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0X25hbWUsICoqa3dh
cmdzKQogICAgICAgICB2ZXJzaW9uX25hbWVfbWFwID0gVmVyc2lvbk5hbWVNYXAubWFwKGhvc3Qu
cGxhdGZvcm0pCisgICAgICAgIHNlbGYuX29zX3ZlcnNpb24gPSBNYWNQb3J0LkNVUlJFTlRfVkVS
U0lPTgogICAgICAgICBpZiBwb3J0X25hbWUuc3BsaXQoJy0nKSA+IDE6CiAgICAgICAgICAgICBz
ZWxmLl9vc192ZXJzaW9uID0gdmVyc2lvbl9uYW1lX21hcC5mcm9tX25hbWUocG9ydF9uYW1lLnNw
bGl0KCctJylbMV0pWzFdCiAgICAgICAgIGVsaWYgc2VsZi5ob3N0LnBsYXRmb3JtLmlzX21hYygp
OgogICAgICAgICAgICAgc2VsZi5fb3NfdmVyc2lvbiA9IHNlbGYuaG9zdC5wbGF0Zm9ybS5vc192
ZXJzaW9uCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9vc192ZXJzaW9uID0gTWFj
UG9ydC5DVVJSRU5UX1ZFUlNJT04KLSAgICAgICAgYXNzZXJ0IHNlbGYuX29zX3ZlcnNpb24KICAg
ICAgICAgYXNzZXJ0IHNlbGYuX29zX3ZlcnNpb24ubWFqb3IgPT0gMTAKIAogICAgIGRlZiBfYnVp
bGRfZHJpdmVyX2ZsYWdzKHNlbGYpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334789</attachid>
            <date>2018-02-28 17:29:40 -0800</date>
            <delta_ts>2018-02-28 18:09:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183184-20180228172940.patch</filename>
            <type>text/plain</type>
            <size>4769</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyOTExNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDE4LTAyLTI4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFJlbW92ZSBjb25jZXB0IG9mICdmdXR1cmUnIHZlcnNp
b25zIChGb2xsb3ctdXAgZml4IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODMxODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3OTU4NTk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVubGlzdGVk
IEFwcGxlIHZlcnNpb25zIGNhbid0IHJ1biB3ZWJraXRweSB0ZXN0cyBiZWNhdXNlIHRoZXkgZG9u
J3QKKyAgICAgICAgaGF2ZSBzcGVjaWZpZWQgcG9ydCBuYW1lcy4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC9hcHBsZS5weToKKyAgICAgICAgKEFwcGxlUG9ydC5kZXRlcm1pbmVf
ZnVsbF9wb3J0X25hbWUpOiBSZXR1cm4gdmFsaWQgcG9ydCBuYW1lIGZvciB1bm5hbWVkCisgICAg
ICAgIHZlcnNpb25zLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5Ogor
ICAgICAgICAoUG9ydC52ZXJzaW9uX25hbWUpOiBDaGVjayBib3RoIHB1YmxpYyBhbmQgaW50ZXJu
YWwgdmVyc2lvbiBtYXBwaW5nCisgICAgICAgIHdoZW4gcmV0dXJuaW5nIGEgdmVyc2lvbiBuYW1l
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHk6CisgICAgICAgIChNYWNQ
b3J0Ll9faW5pdF9fKTogSWYgbm8gb3MgdmVyc2lvbiBpcyBkZWZpbmVkLCB1c2UgdGhlIGN1cnJl
bnQgdmVyc2lvbi4KKwogMjAxOC0wMi0yOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgYSBzZWNvbmQgdGllciBvZiBwcmV2YWxlbmNlIHRvIGZhY2ls
aXRhdGUgdGVsZW1ldHJ5IG9uIHZlcnkgcHJldmFsZW50IGRvbWFpbnMKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9hcHBsZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvYXBwbGUucHkJKHJldmlzaW9uIDIyOTEwOSkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9hcHBsZS5weQkod29ya2luZyBjb3B5KQpAQCAtNjAsMTAgKzYwLDEy
IEBAIGNsYXNzIEFwcGxlUG9ydChQb3J0KToKICAgICAgICAgICAgICMgVGhhdCBjb252ZW50aW9u
IG1lYW5zIHRoYXQgd2UncmUgc3VwcG9zZWQgdG8gdXNlIHRoZSB2ZXJzaW9uIGN1cnJlbnRseQog
ICAgICAgICAgICAgIyBiZWluZyBydW4sIHNvIHRoaXMgd29uJ3Qgd29yayBpZiB5b3UncmUgbm90
IG9uIG1hYyBvciB3aW4gKHJlc3BlY3RpdmVseSkuCiAgICAgICAgICAgICAjIElmIHlvdSdyZSBu
b3Qgb24gdGhlIG8vcyBpbiBxdWVzdGlvbiwgeW91IG11c3Qgc3BlY2lmeSBhIGZ1bGwgdmVyc2lv
biBvciAtZnV0dXJlIChjZi4gYWJvdmUpLgotICAgICAgICAgICAgaWYgcG9ydF9uYW1lID09IGNs
cy5wb3J0X25hbWUgYW5kIG5vdCBnZXRhdHRyKG9wdGlvbnMsICd3ZWJraXRfdGVzdF9ydW5uZXIn
LCBGYWxzZSk6CisgICAgICAgICAgICBpZiBwb3J0X25hbWUgPT0gY2xzLnBvcnRfbmFtZSBhbmQg
bm90IGdldGF0dHIob3B0aW9ucywgJ3dlYmtpdF90ZXN0X3J1bm5lcicsIEZhbHNlKSBhbmQgaG9z
dC5wbGF0Zm9ybS5vc192ZXJzaW9uX25hbWUoKToKICAgICAgICAgICAgICAgICBwb3J0X25hbWUg
PSBjbHMucG9ydF9uYW1lICsgJy0nICsgaG9zdC5wbGF0Zm9ybS5vc192ZXJzaW9uX25hbWUoKS5s
b3dlcigpLnJlcGxhY2UoJyAnLCAnJykKLSAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICBl
bGlmIGhvc3QucGxhdGZvcm0ub3NfdmVyc2lvbl9uYW1lKCk6CiAgICAgICAgICAgICAgICAgcG9y
dF9uYW1lID0gY2xzLnBvcnRfbmFtZSArICctJyArIGhvc3QucGxhdGZvcm0ub3NfdmVyc2lvbl9u
YW1lKCkubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpICsgJy13azInCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIHBvcnRfbmFtZSA9IGNscy5wb3J0X25hbWUgKyAnLXdrMicKICAg
ICAgICAgZWxpZiBnZXRhdHRyKG9wdGlvbnMsICd3ZWJraXRfdGVzdF9ydW5uZXInLCBGYWxzZSkg
YW5kICAnLXdrMicgbm90IGluIHBvcnRfbmFtZToKICAgICAgICAgICAgIHBvcnRfbmFtZSArPSAn
LXdrMicKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHJldmlzaW9uIDIy
OTEwOSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC00OSw3ICs0OSw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9y
dCBtZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnByZXR0eXBhdGNoIGltcG9ydCBQcmV0dHlQYXRj
aAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBwYXRoCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgotZnJvbSB3ZWJraXRw
eS5jb21tb24udmVyc2lvbl9uYW1lX21hcCBpbXBvcnQgUFVCTElDX1RBQkxFLCBWZXJzaW9uTmFt
ZU1hcAorZnJvbSB3ZWJraXRweS5jb21tb24udmVyc2lvbl9uYW1lX21hcCBpbXBvcnQgUFVCTElD
X1RBQkxFLCBJTlRFUk5BTF9UQUJMRSwgVmVyc2lvbk5hbWVNYXAKIGZyb20gd2Via2l0cHkuY29t
bW9uLndhdmVkaWZmIGltcG9ydCBXYXZlRGlmZgogZnJvbSB3ZWJraXRweS5jb21tb24ud2Via2l0
X2ZpbmRlciBpbXBvcnQgV2ViS2l0RmluZGVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5t
b2RlbHMudGVzdF9jb25maWd1cmF0aW9uIGltcG9ydCBUZXN0Q29uZmlndXJhdGlvbgpAQCAtNzc0
LDcgKzc3NCwxMCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIGV4cGVjdGF0aW9ucywg
ZGV0ZXJtaW5pbmcgc2VhcmNoIHBhdGhzLCBhbmQgbG9nZ2luZyBpbmZvcm1hdGlvbi4iIiIKICAg
ICAgICAgaWYgc2VsZi5fb3NfdmVyc2lvbiBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuIE5v
bmUKLSAgICAgICAgcmV0dXJuIFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0p
LnRvX25hbWUoc2VsZi5fb3NfdmVyc2lvbiwgdGFibGU9UFVCTElDX1RBQkxFKQorICAgICAgICBy
ZXN1bHQgPSBWZXJzaW9uTmFtZU1hcC5tYXAoc2VsZi5ob3N0LnBsYXRmb3JtKS50b19uYW1lKHNl
bGYuX29zX3ZlcnNpb24sIHRhYmxlPVBVQkxJQ19UQUJMRSkKKyAgICAgICAgaWYgbm90IHJlc3Vs
dDoKKyAgICAgICAgICAgIHJlc3VsdCA9IFZlcnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxh
dGZvcm0pLnRvX25hbWUoc2VsZi5fb3NfdmVyc2lvbiwgdGFibGU9SU5URVJOQUxfVEFCTEUpCisg
ICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIGRlZiBnZXRfb3B0aW9uKHNlbGYsIG5hbWUsIGRl
ZmF1bHRfdmFsdWU9Tm9uZSk6CiAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYuX29wdGlvbnMs
IG5hbWUsIGRlZmF1bHRfdmFsdWUpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
bWFjLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHkJ
KHJldmlzaW9uIDIyOTEwOSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTU2LDEzICs1NiwxMyBAQCBjbGFzcyBNYWNQb3J0KERhcndpblBv
cnQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0X25hbWUsICoqa3dhcmdzKToK
ICAgICAgICAgRGFyd2luUG9ydC5fX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0X25hbWUsICoqa3dh
cmdzKQogICAgICAgICB2ZXJzaW9uX25hbWVfbWFwID0gVmVyc2lvbk5hbWVNYXAubWFwKGhvc3Qu
cGxhdGZvcm0pCisgICAgICAgIHNlbGYuX29zX3ZlcnNpb24gPSBOb25lCiAgICAgICAgIGlmIHBv
cnRfbmFtZS5zcGxpdCgnLScpID4gMToKICAgICAgICAgICAgIHNlbGYuX29zX3ZlcnNpb24gPSB2
ZXJzaW9uX25hbWVfbWFwLmZyb21fbmFtZShwb3J0X25hbWUuc3BsaXQoJy0nKVsxXSlbMV0KICAg
ICAgICAgZWxpZiBzZWxmLmhvc3QucGxhdGZvcm0uaXNfbWFjKCk6CiAgICAgICAgICAgICBzZWxm
Ll9vc192ZXJzaW9uID0gc2VsZi5ob3N0LnBsYXRmb3JtLm9zX3ZlcnNpb24KLSAgICAgICAgZWxz
ZToKKyAgICAgICAgaWYgbm90IHNlbGYuX29zX3ZlcnNpb246CiAgICAgICAgICAgICBzZWxmLl9v
c192ZXJzaW9uID0gTWFjUG9ydC5DVVJSRU5UX1ZFUlNJT04KLSAgICAgICAgYXNzZXJ0IHNlbGYu
X29zX3ZlcnNpb24KICAgICAgICAgYXNzZXJ0IHNlbGYuX29zX3ZlcnNpb24ubWFqb3IgPT0gMTAK
IAogICAgIGRlZiBfYnVpbGRfZHJpdmVyX2ZsYWdzKHNlbGYpOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>