<?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>180827</bug_id>
          
          <creation_ts>2017-12-14 12:19:27 -0800</creation_ts>
          <short_desc>[webkitpy] PlatformInfo should have default argument for casual use</short_desc>
          <delta_ts>2018-06-28 15:13:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>81560</blocked>
    
    <blocked>180829</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>basuke</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>lforschler</cc>
    
    <cc>pvollan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1381744</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-12-14 12:19:27 -0800</bug_when>
    <thetext>Add singleton class method to PlatformInfo to be used anywhere which need platform information with consistent manner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381757</commentid>
    <comment_count>1</comment_count>
      <attachid>329384</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-12-14 12:36:36 -0800</bug_when>
    <thetext>Created attachment 329384
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382156</commentid>
    <comment_count>2</comment_count>
      <attachid>329384</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-12-15 08:26:12 -0800</bug_when>
    <thetext>Comment on attachment 329384
patch

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

Generally, I like this change, I think it makes PlatformInfo easier to use outside of the host object.

&gt; Tools/Scripts/webkitpy/common/system/systemhost.py:41
&gt; -        self.executive = executive.Executive()
&gt;          self.filesystem = filesystem.FileSystem()
&gt;          self.user = user.User()
&gt; -        self.platform = platforminfo.PlatformInfo(sys, platform, self.executive)
&gt; +        self.platform = platforminfo.PlatformInfo.singleton()
&gt; +        self.executive = self.platform.executive

I think instead of using the singleton instance of the PlatformInfo object (and by extension, a singleton Executive object) each host should continue to own it&apos;s own instance of these objects. This may break your plans for &lt;https://bugs.webkit.org/show_bug.cgi?id=180829&gt;, though.  Was the idea behind that bug just to use the singleton PlatformInfo object in place of sys.platform?

Something you should also be aware of regarding the host object is that you can have meaningfully different host objects instantiated on the same machine. This is how on-device testing works. The proposed code here doesn&apos;t actually break that functionality, because the device testing host isn&apos;t actually SystemHost object, it&apos;s a Device object (which uses Python&apos;s duck typing to work like a SystemHost). In short, the singleton pattern is the wrong paradigm for the SystemHost object.

As a side note, I think we should probably be passing self.platform into the the User constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382174</commentid>
    <comment_count>3</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-12-15 09:22:48 -0800</bug_when>
    <thetext>Got it. So forget about this patch, all I want to achieve is to reconstruct the dependency tree among host, platform info and executive. Currently host depends on platform and executive, platform depends on executive, and executive is there on its foot. In the actual code, though, executive uses many platform dependent code in it.

Singleton is not the objective of me. I just want to make the PlatformInfo more casual. Another possibility is to add default handling of sys_module and platform_module. If they are None, use system&apos;s sys and platform module. Then we can easily create own instance of PlatformInfo in many places. What do you think about this idea?

&gt; As a side note, I think we should probably be passing self.platform into the the User constructor.

Agreed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382178</commentid>
    <comment_count>4</comment_count>
      <attachid>329493</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-12-15 09:57:59 -0800</bug_when>
    <thetext>Created attachment 329493
patch

Stop using singleton pattern. Add default arguments for PlatformInfo instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382184</commentid>
    <comment_count>5</comment_count>
      <attachid>329493</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-12-15 10:09:31 -0800</bug_when>
    <thetext>Comment on attachment 329493
patch

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

&gt; Tools/Scripts/webkitpy/common/system/user.py:46
&gt; -    if not sys.platform.startswith(&apos;win32&apos;):
&gt; +    if not PlatformInfo().is_native_win():

This is what this patch really achieved. Now PlatformInfo is handy to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382205</commentid>
    <comment_count>6</comment_count>
      <attachid>329493</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-12-15 11:05:13 -0800</bug_when>
    <thetext>Comment on attachment 329493
patch

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

I tested this patch with apple_additions(), everything works fine there.

Unofficial R+ from me.

&gt; Tools/Scripts/webkitpy/common/system/systemhost.py:39
&gt; -        self.executive = executive.Executive()
&gt;          self.filesystem = filesystem.FileSystem()
&gt; -        self.user = user.User()
&gt; -        self.platform = platforminfo.PlatformInfo(sys, platform, self.executive)
&gt; +        self.platform = platforminfo.PlatformInfo()
&gt; +        self.executive = self.platform.executive
&gt; +        self.user = user.User(self.platform)

A bit of nit-pick, I think this is more clear:

self.executive = executive.Executive()
self.filesystem = filesystem.FileSystem()
self.platform = platforminfo.PlatformInfo(executive=self.executive)
self.user = user.User(self.platform)

The code you have makes it seem like it is the PlatformInfo object which owns the executive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382208</commentid>
    <comment_count>7</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-12-15 11:17:40 -0800</bug_when>
    <thetext>Make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382210</commentid>
    <comment_count>8</comment_count>
      <attachid>329499</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-12-15 11:20:19 -0800</bug_when>
    <thetext>Created attachment 329499
patch

Revert to original by passing its own executive to PlatformInfo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387337</commentid>
    <comment_count>9</comment_count>
      <attachid>329499</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-01-09 11:09:31 -0800</bug_when>
    <thetext>Comment on attachment 329499
patch

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

r=me

&gt; Tools/ChangeLog:14
&gt; +        Currently to instanciate PlatformInfo, it requires arguments, which is usually
&gt; +        sys, platform and Executive(). They are straight forward and should be handled
&gt; +        by default arguments. Then we can instanciate PlatformInfo more casual.

Typo × 2:  instanciate =&gt; instantiate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387345</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-01-09 11:15:14 -0800</bug_when>
    <thetext>Committed r226652: &lt;https://trac.webkit.org/changeset/226652&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387348</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-09 11:19:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/36380742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407127</commentid>
    <comment_count>12</comment_count>
      <attachid>329499</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-03-16 14:59:30 -0700</bug_when>
    <thetext>Comment on attachment 329499
patch

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

I know that this patch was reviewed and landed a long time ago. I disagree with the direction of this patch.

&gt;&gt; Tools/ChangeLog:14
&gt;&gt; +        Currently to instanciate PlatformInfo, it requires arguments, which is usually
&gt;&gt; +        sys, platform and Executive(). They are straight forward and should be handled
&gt;&gt; +        by default arguments. Then we can instanciate PlatformInfo more casual.
&gt; 
&gt; Typo × 2:  instanciate =&gt; instantiate

PlatformInfo should never be instantiated in isolation. So, PlatformInfo should not have default argument values. The preferred way to get a PlatformInfo object is to instantiate a Host object. An example of this can be seen in check-webkit-style: &lt;https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/style/main.py?rev=229641#L126&gt;.

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:85
&gt; +    @property
&gt; +    def executive(self):
&gt; +        if self._executive is None:
&gt; +            self._executive = Executive()
&gt; +
&gt; +        return self._executive

This function is unnecessary. Notice that SystemHost(), which is responsible for instantiating a PlatformInfo, creates and exposes an Executive object. PlatformInfo should not be responsible for creating an Executive. Instead to construct a PlatformInfo a developer should be required to pass an Executive object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436723</commentid>
    <comment_count>13</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-06-26 16:39:41 -0700</bug_when>
    <thetext>&gt; PlatformInfo should never be instantiated in isolation. So, PlatformInfo should not have default argument values. The preferred way to get a PlatformInfo object is to instantiate a Host object. An example of this can be seen in check-webkit-style: &lt;https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/style/main.py?rev=229641#L126&gt;.

I&apos;ve restarted this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437545</commentid>
    <comment_count>14</comment_count>
      <attachid>343851</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-06-28 14:25:02 -0700</bug_when>
    <thetext>Created attachment 343851
Rolling out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437548</commentid>
    <comment_count>15</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-06-28 14:29:15 -0700</bug_when>
    <thetext>To rolling this out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437550</commentid>
    <comment_count>16</comment_count>
      <attachid>343853</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-06-28 14:29:45 -0700</bug_when>
    <thetext>Created attachment 343853
Rolling out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437580</commentid>
    <comment_count>17</comment_count>
      <attachid>343853</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-28 15:13:10 -0700</bug_when>
    <thetext>Comment on attachment 343853
Rolling out

Clearing flags on attachment: 343853

Committed r233332: &lt;https://trac.webkit.org/changeset/233332&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437581</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-28 15:13:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329384</attachid>
            <date>2017-12-14 12:36:36 -0800</date>
            <delta_ts>2017-12-15 09:57:59 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-180827.diff</filename>
            <type>text/plain</type>
            <size>4357</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZjNk
ODU1M2NiNy4uYzdjMDJmMTA4MzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0xMi0xNCAgQmFzdWtlIFN1enVr
aSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW3dlYmtpdHB5XSBTaGFyZSBz
aW5nbGV0b24gaW5zdGFuY2Ugb2YgUGxhdGZvcm1JbmZvIGZvciBjb25zaXN0ZW50IGFjY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwODI3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGxhdGZvcm1J
bmZvIHNob3VsZCBiZSB0aGUgb25seSB3YXkgdG8gY2hlY2sgcGxhdGZvcm0gc3BlY2lmaWMgdGhp
bmcgaW5zdGVhZAorICAgICAgICBvZiBzeXMucGxhdGZvcm0gb3Igb3RoZXIgdmFyaW91cyBjaGVj
a3MuIElmIHRoZXJlIGlzIHNvbWV0aGluZywgaXQgd2lsbCBiZSAKKyAgICAgICAgcGxhY2VkIGlu
IFBsYXRmb3JtSW5mby4gVG8gbWFrZSBpdCBjb25zaXN0ZW50LCBwcm92aWRlIHNpbmdsZXRvbiBj
bGFzcyBtZXRob2QKKyAgICAgICAgdG8gZ2V0IGl0IGJlY2F1c2UgaW5zdGFuY2lhdGlvbiBvZiBQ
bGF0Zm9ybUluZm8gcmVxdWlyZXMgYXJndW1lbnRzIGFuZCB0aGF0CisgICAgICAgIG1ha2VzIG5v
dCBlYXN5IHRvIGFjY2VzcyBpdCBmcm9tIG90aGVyIG9iamVjdC4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHk6CisgICAgICAgIChQbGF0
Zm9ybUluZm8pOgorICAgICAgICAoUGxhdGZvcm1JbmZvLnNpbmdsZXRvbik6CisgICAgICAgIChQ
bGF0Zm9ybUluZm8uZXhlY3V0aXZlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vc3lzdGVtaG9zdC5weToKKyAgICAgICAgKFN5c3RlbUhvc3QuX19pbml0X18pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2VyLnB5OgorICAgICAg
ICAoVXNlci5fX2luaXRfXyk6CisKIDIwMTctMTItMTEgIERhdmlkIFF1ZXNhZGEgIDxkYXZpZF9x
dWVzYWRhQGFwcGxlLmNvbT4KIAogICAgICAgICBUdXJuIG9uIEVOQUJMRV9BUFBMSUNBVElPTl9N
QU5JRkVTVApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L3BsYXRmb3JtaW5mby5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9w
bGF0Zm9ybWluZm8ucHkKaW5kZXggODU0YmU2NjIzYTcuLjM4YmEzMzJlYzM3IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkK
QEAgLTI5LDYgKzI5LDcgQEAKIAogaW1wb3J0IHJlCiBpbXBvcnQgc3lzCitpbXBvcnQgcGxhdGZv
cm0KIAogZnJvbSB3ZWJraXRweS5jb21tb24udmVyc2lvbiBpbXBvcnQgVmVyc2lvbgogZnJvbSB3
ZWJraXRweS5jb21tb24udmVyc2lvbl9uYW1lX21hcCBpbXBvcnQgVmVyc2lvbk5hbWVNYXAKQEAg
LTQ4LDYgKzQ5LDE2IEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhvYmplY3QpOgogICAgIG5ld2VyIHRo
YW4gb25lIGtub3duIHRvIHRoZSBjb2RlLgogICAgICIiIgogCisgICAgX3NoYXJlZF9pbnN0YW5j
ZSA9IE5vbmUKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBzaW5nbGV0b24oY2xzKToKKyAg
ICAgICAgIiIiUmV0dXJucyBzaGFyZWQgcGxhdGZvcm0gaW5mbyBvYmplY3QiIiIKKyAgICAgICAg
aWYgbm90IGNscy5fc2hhcmVkX2luc3RhbmNlOgorICAgICAgICAgICAgY2xzLl9zaGFyZWRfaW5z
dGFuY2UgPSBjbHMoc3lzLCBwbGF0Zm9ybSwgRXhlY3V0aXZlKCkpCisKKyAgICAgICAgcmV0dXJu
IGNscy5fc2hhcmVkX2luc3RhbmNlCisKICAgICBkZWYgX19pbml0X18oc2VsZiwgc3lzX21vZHVs
ZSwgcGxhdGZvcm1fbW9kdWxlLCBleGVjdXRpdmUpOgogICAgICAgICBzZWxmLl9leGVjdXRpdmUg
PSBleGVjdXRpdmUKICAgICAgICAgc2VsZi5fcGxhdGZvcm1fbW9kdWxlID0gcGxhdGZvcm1fbW9k
dWxlCkBAIC03Myw2ICs4NCwxMCBAQCBjbGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICAg
ICAgYXNzZXJ0IHNlbGYub3NfdmVyc2lvbiBpcyBub3QgTm9uZQogICAgICAgICBzZWxmLm9zX3Zl
cnNpb24gPSBzZWxmLm9zX3ZlcnNpb24ubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpCiAKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgZXhlY3V0aXZlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
ZXhlY3V0aXZlCisKICAgICBkZWYgaXNfbWFjKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5v
c19uYW1lID09ICdtYWMnCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL3N5c3RlbWhvc3QucHkKaW5kZXggY2I4NDE5M2ZkZTYuLjk1MGRjMGU4YTBmIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVtaG9zdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVtaG9zdC5w
eQpAQCAtMzUsMTAgKzM1LDEwIEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQg
ZW52aXJvbm1lbnQsIGV4ZWN1dGl2ZSwgZmlsZV9sb2NrLCBmaWxlc3lzdGVtCiAKIGNsYXNzIFN5
c3RlbUhvc3Qob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYu
ZXhlY3V0aXZlID0gZXhlY3V0aXZlLkV4ZWN1dGl2ZSgpCiAgICAgICAgIHNlbGYuZmlsZXN5c3Rl
bSA9IGZpbGVzeXN0ZW0uRmlsZVN5c3RlbSgpCiAgICAgICAgIHNlbGYudXNlciA9IHVzZXIuVXNl
cigpCi0gICAgICAgIHNlbGYucGxhdGZvcm0gPSBwbGF0Zm9ybWluZm8uUGxhdGZvcm1JbmZvKHN5
cywgcGxhdGZvcm0sIHNlbGYuZXhlY3V0aXZlKQorICAgICAgICBzZWxmLnBsYXRmb3JtID0gcGxh
dGZvcm1pbmZvLlBsYXRmb3JtSW5mby5zaW5nbGV0b24oKQorICAgICAgICBzZWxmLmV4ZWN1dGl2
ZSA9IHNlbGYucGxhdGZvcm0uZXhlY3V0aXZlCiAgICAgICAgIHNlbGYud29ya3NwYWNlID0gd29y
a3NwYWNlLldvcmtzcGFjZShzZWxmLmZpbGVzeXN0ZW0sIHNlbGYuZXhlY3V0aXZlKQogCiAgICAg
ZGVmIGNvcHlfY3VycmVudF9lbnZpcm9ubWVudChzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL3VzZXIucHkKaW5kZXggZTUxM2VjYjBhYWEuLjhiZGRjNWVlYzRh
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weQpAQCAt
MjksMTQgKzI5LDEyIEBACiBpbXBvcnQgZ2V0cGFzcwogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBv
cwotaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgcmUKIGltcG9ydCBzaGxleAogaW1wb3J0IHN1YnBy
b2Nlc3MKIGltcG9ydCBzeXMKIGltcG9ydCB3ZWJicm93c2VyCiAKLWZyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZQogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLnBsYXRmb3JtaW5mbyBpbXBvcnQgUGxhdGZvcm1JbmZvCiAKIApAQCAtNTgsNyAr
NTYsNyBAQCBjbGFzcyBVc2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRm
b3JtaW5mbz1Ob25lKToKICAgICAgICAgIyBXZSBjYW5ub3QgZ2V0IHRoZSBQbGF0Zm9ybUluZm8g
b2JqZWN0IGZyb20gYSBTeXN0ZW1Ib3N0IGJlY2F1c2UKICAgICAgICAgIyBVc2VyIGlzIHBhcnQg
b2YgU3lzdGVtSG9zdCBpdHNlbGYuCi0gICAgICAgIHNlbGYuX3BsYXRmb3JtaW5mbyA9IHBsYXRm
b3JtaW5mbyBvciBQbGF0Zm9ybUluZm8oc3lzLCBwbGF0Zm9ybSwgRXhlY3V0aXZlKCkpCisgICAg
ICAgIHNlbGYuX3BsYXRmb3JtaW5mbyA9IHBsYXRmb3JtaW5mbyBvciBQbGF0Zm9ybUluZm8uc2lu
Z2xldG9uKCkKIAogICAgICMgRklYTUU6IFRoZXNlIGFyZSBAY2xhc3NtZXRob2RzIGJlY2F1c2Ug
YnVnemlsbGEucHkgZG9lc24ndCBoYXZlIGEgVG9vbCBvYmplY3QgKHRodXMgbm8gVXNlciBpbnN0
YW5jZSkuCiAgICAgQGNsYXNzbWV0aG9kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329493</attachid>
            <date>2017-12-15 09:57:59 -0800</date>
            <delta_ts>2017-12-15 11:20:19 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-180827.diff</filename>
            <type>text/plain</type>
            <size>8166</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZjNk
ODU1M2NiNy4uNzQwNjc4ODJmMTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNy0xMi0xNSAgQmFzdWtlIFN1enVr
aSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW3dlYmtpdHB5XSBQbGF0Zm9y
bUluZm8gc2hvdWxkIGhhdmUgZGVmYXVsdCBhcmd1bWVudCBmb3IgY2FzdWFsIHVzZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwODI3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgCisgICAgICAgIFBsYXRmb3JtSW5mbyBz
aG91bGQgYmUgdGhlIG9ubHkgd2F5IHRvIGNoZWNrIHBsYXRmb3JtIHNwZWNpZmljIHRoaW5nIGlu
c3RlYWQKKyAgICAgICAgb2Ygc3lzLnBsYXRmb3JtIG9yIG90aGVyIHZhcmlvdXMgY2hlY2tzLiBJ
ZiB0aGVyZSBpcyBzb21ldGhpbmcgeW91IHdhbnQgdG8gY2hlY2ssCisgICAgICAgIGl0IHNob3Vs
ZCBiZSBwbGFjZWQgaW4gUGxhdGZvcm1JbmZvLgorICAgICAgICAKKyAgICAgICAgQ3VycmVudGx5
IHRvIGluc3RhbmNpYXRlIFBsYXRmb3JtSW5mbywgaXQgcmVxdWlyZXMgYXJndW1lbnRzLCB3aGlj
aCBpcyB1c3VhbGx5CisgICAgICAgIHN5cywgcGxhdGZvcm0gYW5kIEV4ZWN1dGl2ZSgpLiBUaGV5
IGFyZSBzdHJhaWdodCBmb3J3YXJkIGFuZCBzaG91bGQgYmUgaGFuZGxlZAorICAgICAgICBieSBk
ZWZhdWx0IGFyZ3VtZW50cy4gVGhlbiB3ZSBjYW4gaW5zdGFuY2lhdGUgUGxhdGZvcm1JbmZvIG1v
cmUgY2FzdWFsLgorCisgICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9w
bGF0Zm9ybWluZm8ucHk6CisgICAgICAgIChQbGF0Zm9ybUluZm8pOiBVc2UgcmVsYXRpdmUgbW9k
dWxlIHBhdGggaW1wb3J0CisgICAgICAgIChQbGF0Zm9ybUluZm8uX19pbml0X18pOgorICAgICAg
ICAoUGxhdGZvcm1JbmZvLmV4ZWN1dGl2ZSk6IExhenkgaW5zdGFudGlhdGlvbiBvZiBFeGVjdXRp
dmUoKQorICAgICAgICAoUGxhdGZvcm1JbmZvLnRvdGFsX2J5dGVzX21lbW9yeSk6IEFjY2Vzc2lu
ZyB2aWEgYWJvdmUgcHJvcGVydHkKKyAgICAgICAgKFBsYXRmb3JtSW5mby54Y29kZV9zZGtfdmVy
c2lvbik6IERpdHRvCisgICAgICAgIChQbGF0Zm9ybUluZm8ueGNvZGVfc2ltY3RsX2xpc3QpOiBE
aXR0bworICAgICAgICAoUGxhdGZvcm1JbmZvLnhjb2RlX3ZlcnNpb24pOiBEaXR0bworICAgICAg
ICAoUGxhdGZvcm1JbmZvLl93aW5fdmVyc2lvbl9zdHIpOiBEaXR0bworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5OgorICAgICAgICAoU3lzdGVt
SG9zdC5fX2luaXRfXyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L3VzZXIucHk6CisgICAgICAgIChVc2VyLl9faW5pdF9fKToKKwogMjAxNy0xMi0xMSAgRGF2aWQg
UXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29tPgogCiAgICAgICAgIFR1cm4gb24gRU5B
QkxFX0FQUExJQ0FUSU9OX01BTklGRVNUCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQppbmRleCA4NTRiZTY2MjNhNy4uMmIxNmVi
YzVjZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9w
bGF0Zm9ybWluZm8ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L3BsYXRmb3JtaW5mby5weQpAQCAtMjksNiArMjksNyBAQAogCiBpbXBvcnQgcmUKIGltcG9ydCBz
eXMKK2ltcG9ydCBwbGF0Zm9ybQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9y
dCBWZXJzaW9uCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBW
ZXJzaW9uTmFtZU1hcApAQCAtNDgsMTAgKzQ5LDEzIEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhvYmpl
Y3QpOgogICAgIG5ld2VyIHRoYW4gb25lIGtub3duIHRvIHRoZSBjb2RlLgogICAgICIiIgogCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHN5c19tb2R1bGUsIHBsYXRmb3JtX21vZHVsZSwgZXhlY3V0
aXZlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3lzX21vZHVsZT1Ob25lLCBwbGF0Zm9ybV9t
b2R1bGU9Tm9uZSwgZXhlY3V0aXZlPU5vbmUpOgorICAgICAgICBzeXNfcGxhdGZvcm0gPSAoc3lz
X21vZHVsZSBvciBzeXMpLnBsYXRmb3JtCisgICAgICAgIHBsYXRmb3JtX21vZHVsZSA9IHBsYXRm
b3JtX21vZHVsZSBvciBwbGF0Zm9ybQorCiAgICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1
dGl2ZQogICAgICAgICBzZWxmLl9wbGF0Zm9ybV9tb2R1bGUgPSBwbGF0Zm9ybV9tb2R1bGUKLSAg
ICAgICAgc2VsZi5vc19uYW1lID0gc2VsZi5fZGV0ZXJtaW5lX29zX25hbWUoc3lzX21vZHVsZS5w
bGF0Zm9ybSkKKyAgICAgICAgc2VsZi5vc19uYW1lID0gc2VsZi5fZGV0ZXJtaW5lX29zX25hbWUo
c3lzX3BsYXRmb3JtKQogICAgICAgICBzZWxmLm9zX3ZlcnNpb24gPSBOb25lCiAKICAgICAgICAg
aWYgc2VsZi5vc19uYW1lLnN0YXJ0c3dpdGgoJ21hYycpOgpAQCAtNjQsNyArNjgsNyBAQCBjbGFz
cyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICAgICAgICAgICMgTW9zdCBvdGhlciBwbGF0Zm9y
bXMgKG5hbWVseSBpT1MpIHJldHVybiBjb25mb3JtaW5nIHZlcnNpb24gc3RyaW5ncy4KICAgICAg
ICAgICAgIHZlcnNpb24gPSBWZXJzaW9uLmZyb21fc3RyaW5nKHBsYXRmb3JtX21vZHVsZS5yZWxl
YXNlKCkpCiAKLSAgICAgICAgc2VsZi5faXNfY3lnd2luID0gc3lzX21vZHVsZS5wbGF0Zm9ybSA9
PSAnY3lnd2luJworICAgICAgICBzZWxmLl9pc19jeWd3aW4gPSBzeXNfcGxhdGZvcm0gPT0gJ2N5
Z3dpbicKIAogICAgICAgICBpZiB2ZXJzaW9uIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4K
QEAgLTczLDYgKzc3LDEzIEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhvYmplY3QpOgogICAgICAgICBh
c3NlcnQgc2VsZi5vc192ZXJzaW9uIGlzIG5vdCBOb25lCiAgICAgICAgIHNlbGYub3NfdmVyc2lv
biA9IHNlbGYub3NfdmVyc2lvbi5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykKIAorICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBleGVjdXRpdmUoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2V4ZWN1dGl2
ZSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKKwor
ICAgICAgICByZXR1cm4gc2VsZi5fZXhlY3V0aXZlCisKICAgICBkZWYgaXNfbWFjKHNlbGYpOgog
ICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdtYWMnCiAKQEAgLTExMiw3ICsxMjMsNyBA
QCBjbGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKIAogICAgIGRlZiB0b3RhbF9ieXRlc19tZW1v
cnkoc2VsZik6CiAgICAgICAgIGlmIHNlbGYuaXNfbWFjKCk6Ci0gICAgICAgICAgICByZXR1cm4g
bG9uZyhzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWyJzeXNjdGwiLCAiLW4iLCAiaHcubWVt
c2l6ZSJdKSkKKyAgICAgICAgICAgIHJldHVybiBsb25nKHNlbGYuZXhlY3V0aXZlLnJ1bl9jb21t
YW5kKFsic3lzY3RsIiwgIi1uIiwgImh3Lm1lbXNpemUiXSkpCiAgICAgICAgIHJldHVybiBOb25l
CiAKICAgICBkZWYgdGVybWluYWxfd2lkdGgoc2VsZik6CkBAIC0xNDMsNyArMTU0LDcgQEAgY2xh
c3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIHhjb2RlX3Nka192ZXJzaW9uKHNlbGYs
IHNka19uYW1lKToKICAgICAgICAgaWYgc2VsZi5pc19tYWMoKToKICAgICAgICAgICAgICMgQXNz
dW1lcyB0aGF0IHhjcnVuIGRvZXMgbm90IHdyaXRlIHRvIHN0YW5kYXJkIG91dHB1dCBvbiBmYWls
dXJlIChlLmcuIFNESyBkb2VzIG5vdCBleGlzdCkuCi0gICAgICAgICAgICB4Y3J1bl9vdXRwdXQg
PSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWyd4Y3J1bicsICctLXNkaycsIHNka19uYW1l
LCAnLS1zaG93LXNkay12ZXJzaW9uJ10sIHJldHVybl9zdGRlcnI9RmFsc2UsIGVycm9yX2hhbmRs
ZXI9RXhlY3V0aXZlLmlnbm9yZV9lcnJvcikucnN0cmlwKCkKKyAgICAgICAgICAgIHhjcnVuX291
dHB1dCA9IHNlbGYuZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsneGNydW4nLCAnLS1zZGsnLCBzZGtf
bmFtZSwgJy0tc2hvdy1zZGstdmVyc2lvbiddLCByZXR1cm5fc3RkZXJyPUZhbHNlLCBlcnJvcl9o
YW5kbGVyPUV4ZWN1dGl2ZS5pZ25vcmVfZXJyb3IpLnJzdHJpcCgpCiAgICAgICAgICAgICBpZiB4
Y3J1bl9vdXRwdXQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIFZlcnNpb24uZnJvbV9zdHJpbmco
eGNydW5fb3V0cHV0KQogICAgICAgICByZXR1cm4gTm9uZQpAQCAtMTUxLDEzICsxNjIsMTMgQEAg
Y2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIHhjb2RlX3NpbWN0bF9saXN0KHNl
bGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5pc19tYWMoKToKICAgICAgICAgICAgIHJldHVybiAo
KQotICAgICAgICBvdXRwdXQgPSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWyd4Y3J1bics
ICdzaW1jdGwnLCAnbGlzdCddLCByZXR1cm5fc3RkZXJyPUZhbHNlKQorICAgICAgICBvdXRwdXQg
PSBzZWxmLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3hjcnVuJywgJ3NpbWN0bCcsICdsaXN0J10s
IHJldHVybl9zdGRlcnI9RmFsc2UpCiAgICAgICAgIHJldHVybiAobGluZSBmb3IgbGluZSBpbiBv
dXRwdXQuc3BsaXRsaW5lcygpKQogCiAgICAgZGVmIHhjb2RlX3ZlcnNpb24oc2VsZik6CiAgICAg
ICAgIGlmIG5vdCBzZWxmLmlzX21hYygpOgogICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcgotICAgICAgICByZXR1cm4gVmVyc2lvbi5mcm9tX3N0cmluZyhzZWxmLl9leGVjdXRp
dmUucnVuX2NvbW1hbmQoWyd4Y29kZWJ1aWxkJywgJy12ZXJzaW9uJ10pLnNwbGl0KClbMV0pCisg
ICAgICAgIHJldHVybiBWZXJzaW9uLmZyb21fc3RyaW5nKHNlbGYuZXhlY3V0aXZlLnJ1bl9jb21t
YW5kKFsneGNvZGVidWlsZCcsICctdmVyc2lvbiddKS5zcGxpdCgpWzFdKQogCiAgICAgZGVmIF9k
ZXRlcm1pbmVfb3NfbmFtZShzZWxmLCBzeXNfcGxhdGZvcm0pOgogICAgICAgICBpZiBzeXNfcGxh
dGZvcm0gPT0gJ2Rhcndpbic6CkBAIC0xODcsNCArMTk4LDQgQEAgY2xhc3MgUGxhdGZvcm1JbmZv
KG9iamVjdCk6CiAgICAgICAgIGlmIHZlcnNpb246CiAgICAgICAgICAgICByZXR1cm4gdmVyc2lv
bgogICAgICAgICAjIE5vdGUgdGhhdCB0aGlzIHNob3VsZCBvbmx5IGV2ZXIgYmUgY2FsbGVkIG9u
IHdpbmRvd3MsIHNvIHRoaXMgc2hvdWxkIGFsd2F5cyB3b3JrLgotICAgICAgICByZXR1cm4gc2Vs
Zi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsnY21kJywgJy9jJywgJ3ZlciddLCBkZWNvZGVfb3V0
cHV0PUZhbHNlKQorICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRpdmUucnVuX2NvbW1hbmQoWydj
bWQnLCAnL2MnLCAndmVyJ10sIGRlY29kZV9vdXRwdXQ9RmFsc2UpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVtaG9zdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5CmluZGV4IGNiODQxOTNm
ZGU2Li40NzY2ODczMWUwYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL3N5c3RlbWhvc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL3N5c3RlbWhvc3QucHkKQEAgLTI3LDE4ICsyNywxNiBAQAogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCiBpbXBvcnQgb3MKLWltcG9ydCBwbGF0Zm9ybQotaW1wb3J0IHN5cwogCi1mcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGVudmlyb25tZW50LCBleGVjdXRpdmUsIGZpbGVfbG9j
aywgZmlsZXN5c3RlbSwgcGxhdGZvcm1pbmZvLCB1c2VyLCB3b3Jrc3BhY2UKK2Zyb20gLiBpbXBv
cnQgZW52aXJvbm1lbnQsIGZpbGVfbG9jaywgZmlsZXN5c3RlbSwgcGxhdGZvcm1pbmZvLCB1c2Vy
LCB3b3Jrc3BhY2UKIAogCiBjbGFzcyBTeXN0ZW1Ib3N0KG9iamVjdCk6CiAgICAgZGVmIF9faW5p
dF9fKHNlbGYpOgotICAgICAgICBzZWxmLmV4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZS5FeGVjdXRpdmUo
KQogICAgICAgICBzZWxmLmZpbGVzeXN0ZW0gPSBmaWxlc3lzdGVtLkZpbGVTeXN0ZW0oKQotICAg
ICAgICBzZWxmLnVzZXIgPSB1c2VyLlVzZXIoKQotICAgICAgICBzZWxmLnBsYXRmb3JtID0gcGxh
dGZvcm1pbmZvLlBsYXRmb3JtSW5mbyhzeXMsIHBsYXRmb3JtLCBzZWxmLmV4ZWN1dGl2ZSkKKyAg
ICAgICAgc2VsZi5wbGF0Zm9ybSA9IHBsYXRmb3JtaW5mby5QbGF0Zm9ybUluZm8oKQorICAgICAg
ICBzZWxmLmV4ZWN1dGl2ZSA9IHNlbGYucGxhdGZvcm0uZXhlY3V0aXZlCisgICAgICAgIHNlbGYu
dXNlciA9IHVzZXIuVXNlcihzZWxmLnBsYXRmb3JtKQogICAgICAgICBzZWxmLndvcmtzcGFjZSA9
IHdvcmtzcGFjZS5Xb3Jrc3BhY2Uoc2VsZi5maWxlc3lzdGVtLCBzZWxmLmV4ZWN1dGl2ZSkKIAog
ICAgIGRlZiBjb3B5X2N1cnJlbnRfZW52aXJvbm1lbnQoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2VyLnB5CmluZGV4IGU1MTNlY2IwYWFhLi4yYTRhZTMx
ZGViMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3Vz
ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXIucHkK
QEAgLTI5LDE1ICsyOSwxMiBAQAogaW1wb3J0IGdldHBhc3MKIGltcG9ydCBsb2dnaW5nCiBpbXBv
cnQgb3MKLWltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHJlCiBpbXBvcnQgc2hsZXgKIGltcG9ydCBz
dWJwcm9jZXNzCi1pbXBvcnQgc3lzCiBpbXBvcnQgd2ViYnJvd3NlcgogCi1mcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKLWZyb20gd2Via2l0cHku
Y29tbW9uLnN5c3RlbS5wbGF0Zm9ybWluZm8gaW1wb3J0IFBsYXRmb3JtSW5mbworZnJvbSAucGxh
dGZvcm1pbmZvIGltcG9ydCBQbGF0Zm9ybUluZm8KIAogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCkBAIC00Niw3ICs0Myw3IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihf
X25hbWVfXykKIHRyeToKICAgICBpbXBvcnQgcmVhZGxpbmUKIGV4Y2VwdCBJbXBvcnRFcnJvcjoK
LSAgICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbjMyJyk6CisgICAgaWYgbm90
IFBsYXRmb3JtSW5mbygpLmlzX25hdGl2ZV93aW4oKToKICAgICAgICAgIyBUaGVyZSBpcyBubyBy
ZWFkbGluZSBtb2R1bGUgZm9yIHdpbjMyLCBub3QgbXVjaCB0byBkbyBleGNlcHQgY3J5LgogICAg
ICAgICBfbG9nLndhcm4oIlVuYWJsZSB0byBpbXBvcnQgcmVhZGxpbmUuIikKIApAQCAtNTgsNyAr
NTUsNyBAQCBjbGFzcyBVc2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRm
b3JtaW5mbz1Ob25lKToKICAgICAgICAgIyBXZSBjYW5ub3QgZ2V0IHRoZSBQbGF0Zm9ybUluZm8g
b2JqZWN0IGZyb20gYSBTeXN0ZW1Ib3N0IGJlY2F1c2UKICAgICAgICAgIyBVc2VyIGlzIHBhcnQg
b2YgU3lzdGVtSG9zdCBpdHNlbGYuCi0gICAgICAgIHNlbGYuX3BsYXRmb3JtaW5mbyA9IHBsYXRm
b3JtaW5mbyBvciBQbGF0Zm9ybUluZm8oc3lzLCBwbGF0Zm9ybSwgRXhlY3V0aXZlKCkpCisgICAg
ICAgIHNlbGYuX3BsYXRmb3JtaW5mbyA9IHBsYXRmb3JtaW5mbyBvciBQbGF0Zm9ybUluZm8oKQog
CiAgICAgIyBGSVhNRTogVGhlc2UgYXJlIEBjbGFzc21ldGhvZHMgYmVjYXVzZSBidWd6aWxsYS5w
eSBkb2Vzbid0IGhhdmUgYSBUb29sIG9iamVjdCAodGh1cyBubyBVc2VyIGluc3RhbmNlKS4KICAg
ICBAY2xhc3NtZXRob2QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329499</attachid>
            <date>2017-12-15 11:20:19 -0800</date>
            <delta_ts>2018-06-26 16:40:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-180827.diff</filename>
            <type>text/plain</type>
            <size>8151</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZjNk
ODU1M2NiNy4uNzQwNjc4ODJmMTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNy0xMi0xNSAgQmFzdWtlIFN1enVr
aSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW3dlYmtpdHB5XSBQbGF0Zm9y
bUluZm8gc2hvdWxkIGhhdmUgZGVmYXVsdCBhcmd1bWVudCBmb3IgY2FzdWFsIHVzZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwODI3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgCisgICAgICAgIFBsYXRmb3JtSW5mbyBz
aG91bGQgYmUgdGhlIG9ubHkgd2F5IHRvIGNoZWNrIHBsYXRmb3JtIHNwZWNpZmljIHRoaW5nIGlu
c3RlYWQKKyAgICAgICAgb2Ygc3lzLnBsYXRmb3JtIG9yIG90aGVyIHZhcmlvdXMgY2hlY2tzLiBJ
ZiB0aGVyZSBpcyBzb21ldGhpbmcgeW91IHdhbnQgdG8gY2hlY2ssCisgICAgICAgIGl0IHNob3Vs
ZCBiZSBwbGFjZWQgaW4gUGxhdGZvcm1JbmZvLgorICAgICAgICAKKyAgICAgICAgQ3VycmVudGx5
IHRvIGluc3RhbmNpYXRlIFBsYXRmb3JtSW5mbywgaXQgcmVxdWlyZXMgYXJndW1lbnRzLCB3aGlj
aCBpcyB1c3VhbGx5CisgICAgICAgIHN5cywgcGxhdGZvcm0gYW5kIEV4ZWN1dGl2ZSgpLiBUaGV5
IGFyZSBzdHJhaWdodCBmb3J3YXJkIGFuZCBzaG91bGQgYmUgaGFuZGxlZAorICAgICAgICBieSBk
ZWZhdWx0IGFyZ3VtZW50cy4gVGhlbiB3ZSBjYW4gaW5zdGFuY2lhdGUgUGxhdGZvcm1JbmZvIG1v
cmUgY2FzdWFsLgorCisgICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9w
bGF0Zm9ybWluZm8ucHk6CisgICAgICAgIChQbGF0Zm9ybUluZm8pOiBVc2UgcmVsYXRpdmUgbW9k
dWxlIHBhdGggaW1wb3J0CisgICAgICAgIChQbGF0Zm9ybUluZm8uX19pbml0X18pOgorICAgICAg
ICAoUGxhdGZvcm1JbmZvLmV4ZWN1dGl2ZSk6IExhenkgaW5zdGFudGlhdGlvbiBvZiBFeGVjdXRp
dmUoKQorICAgICAgICAoUGxhdGZvcm1JbmZvLnRvdGFsX2J5dGVzX21lbW9yeSk6IEFjY2Vzc2lu
ZyB2aWEgYWJvdmUgcHJvcGVydHkKKyAgICAgICAgKFBsYXRmb3JtSW5mby54Y29kZV9zZGtfdmVy
c2lvbik6IERpdHRvCisgICAgICAgIChQbGF0Zm9ybUluZm8ueGNvZGVfc2ltY3RsX2xpc3QpOiBE
aXR0bworICAgICAgICAoUGxhdGZvcm1JbmZvLnhjb2RlX3ZlcnNpb24pOiBEaXR0bworICAgICAg
ICAoUGxhdGZvcm1JbmZvLl93aW5fdmVyc2lvbl9zdHIpOiBEaXR0bworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5OgorICAgICAgICAoU3lzdGVt
SG9zdC5fX2luaXRfXyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L3VzZXIucHk6CisgICAgICAgIChVc2VyLl9faW5pdF9fKToKKwogMjAxNy0xMi0xMSAgRGF2aWQg
UXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29tPgogCiAgICAgICAgIFR1cm4gb24gRU5B
QkxFX0FQUExJQ0FUSU9OX01BTklGRVNUCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQppbmRleCA4NTRiZTY2MjNhNy4uMmIxNmVi
YzVjZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9w
bGF0Zm9ybWluZm8ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L3BsYXRmb3JtaW5mby5weQpAQCAtMjksNiArMjksNyBAQAogCiBpbXBvcnQgcmUKIGltcG9ydCBz
eXMKK2ltcG9ydCBwbGF0Zm9ybQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9y
dCBWZXJzaW9uCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBW
ZXJzaW9uTmFtZU1hcApAQCAtNDgsMTAgKzQ5LDEzIEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhvYmpl
Y3QpOgogICAgIG5ld2VyIHRoYW4gb25lIGtub3duIHRvIHRoZSBjb2RlLgogICAgICIiIgogCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHN5c19tb2R1bGUsIHBsYXRmb3JtX21vZHVsZSwgZXhlY3V0
aXZlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3lzX21vZHVsZT1Ob25lLCBwbGF0Zm9ybV9t
b2R1bGU9Tm9uZSwgZXhlY3V0aXZlPU5vbmUpOgorICAgICAgICBzeXNfcGxhdGZvcm0gPSAoc3lz
X21vZHVsZSBvciBzeXMpLnBsYXRmb3JtCisgICAgICAgIHBsYXRmb3JtX21vZHVsZSA9IHBsYXRm
b3JtX21vZHVsZSBvciBwbGF0Zm9ybQorCiAgICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1
dGl2ZQogICAgICAgICBzZWxmLl9wbGF0Zm9ybV9tb2R1bGUgPSBwbGF0Zm9ybV9tb2R1bGUKLSAg
ICAgICAgc2VsZi5vc19uYW1lID0gc2VsZi5fZGV0ZXJtaW5lX29zX25hbWUoc3lzX21vZHVsZS5w
bGF0Zm9ybSkKKyAgICAgICAgc2VsZi5vc19uYW1lID0gc2VsZi5fZGV0ZXJtaW5lX29zX25hbWUo
c3lzX3BsYXRmb3JtKQogICAgICAgICBzZWxmLm9zX3ZlcnNpb24gPSBOb25lCiAKICAgICAgICAg
aWYgc2VsZi5vc19uYW1lLnN0YXJ0c3dpdGgoJ21hYycpOgpAQCAtNjQsNyArNjgsNyBAQCBjbGFz
cyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICAgICAgICAgICMgTW9zdCBvdGhlciBwbGF0Zm9y
bXMgKG5hbWVseSBpT1MpIHJldHVybiBjb25mb3JtaW5nIHZlcnNpb24gc3RyaW5ncy4KICAgICAg
ICAgICAgIHZlcnNpb24gPSBWZXJzaW9uLmZyb21fc3RyaW5nKHBsYXRmb3JtX21vZHVsZS5yZWxl
YXNlKCkpCiAKLSAgICAgICAgc2VsZi5faXNfY3lnd2luID0gc3lzX21vZHVsZS5wbGF0Zm9ybSA9
PSAnY3lnd2luJworICAgICAgICBzZWxmLl9pc19jeWd3aW4gPSBzeXNfcGxhdGZvcm0gPT0gJ2N5
Z3dpbicKIAogICAgICAgICBpZiB2ZXJzaW9uIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4K
QEAgLTczLDYgKzc3LDEzIEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhvYmplY3QpOgogICAgICAgICBh
c3NlcnQgc2VsZi5vc192ZXJzaW9uIGlzIG5vdCBOb25lCiAgICAgICAgIHNlbGYub3NfdmVyc2lv
biA9IHNlbGYub3NfdmVyc2lvbi5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykKIAorICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBleGVjdXRpdmUoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2V4ZWN1dGl2
ZSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKKwor
ICAgICAgICByZXR1cm4gc2VsZi5fZXhlY3V0aXZlCisKICAgICBkZWYgaXNfbWFjKHNlbGYpOgog
ICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdtYWMnCiAKQEAgLTExMiw3ICsxMjMsNyBA
QCBjbGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKIAogICAgIGRlZiB0b3RhbF9ieXRlc19tZW1v
cnkoc2VsZik6CiAgICAgICAgIGlmIHNlbGYuaXNfbWFjKCk6Ci0gICAgICAgICAgICByZXR1cm4g
bG9uZyhzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWyJzeXNjdGwiLCAiLW4iLCAiaHcubWVt
c2l6ZSJdKSkKKyAgICAgICAgICAgIHJldHVybiBsb25nKHNlbGYuZXhlY3V0aXZlLnJ1bl9jb21t
YW5kKFsic3lzY3RsIiwgIi1uIiwgImh3Lm1lbXNpemUiXSkpCiAgICAgICAgIHJldHVybiBOb25l
CiAKICAgICBkZWYgdGVybWluYWxfd2lkdGgoc2VsZik6CkBAIC0xNDMsNyArMTU0LDcgQEAgY2xh
c3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIHhjb2RlX3Nka192ZXJzaW9uKHNlbGYs
IHNka19uYW1lKToKICAgICAgICAgaWYgc2VsZi5pc19tYWMoKToKICAgICAgICAgICAgICMgQXNz
dW1lcyB0aGF0IHhjcnVuIGRvZXMgbm90IHdyaXRlIHRvIHN0YW5kYXJkIG91dHB1dCBvbiBmYWls
dXJlIChlLmcuIFNESyBkb2VzIG5vdCBleGlzdCkuCi0gICAgICAgICAgICB4Y3J1bl9vdXRwdXQg
PSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWyd4Y3J1bicsICctLXNkaycsIHNka19uYW1l
LCAnLS1zaG93LXNkay12ZXJzaW9uJ10sIHJldHVybl9zdGRlcnI9RmFsc2UsIGVycm9yX2hhbmRs
ZXI9RXhlY3V0aXZlLmlnbm9yZV9lcnJvcikucnN0cmlwKCkKKyAgICAgICAgICAgIHhjcnVuX291
dHB1dCA9IHNlbGYuZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsneGNydW4nLCAnLS1zZGsnLCBzZGtf
bmFtZSwgJy0tc2hvdy1zZGstdmVyc2lvbiddLCByZXR1cm5fc3RkZXJyPUZhbHNlLCBlcnJvcl9o
YW5kbGVyPUV4ZWN1dGl2ZS5pZ25vcmVfZXJyb3IpLnJzdHJpcCgpCiAgICAgICAgICAgICBpZiB4
Y3J1bl9vdXRwdXQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIFZlcnNpb24uZnJvbV9zdHJpbmco
eGNydW5fb3V0cHV0KQogICAgICAgICByZXR1cm4gTm9uZQpAQCAtMTUxLDEzICsxNjIsMTMgQEAg
Y2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIHhjb2RlX3NpbWN0bF9saXN0KHNl
bGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5pc19tYWMoKToKICAgICAgICAgICAgIHJldHVybiAo
KQotICAgICAgICBvdXRwdXQgPSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWyd4Y3J1bics
ICdzaW1jdGwnLCAnbGlzdCddLCByZXR1cm5fc3RkZXJyPUZhbHNlKQorICAgICAgICBvdXRwdXQg
PSBzZWxmLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3hjcnVuJywgJ3NpbWN0bCcsICdsaXN0J10s
IHJldHVybl9zdGRlcnI9RmFsc2UpCiAgICAgICAgIHJldHVybiAobGluZSBmb3IgbGluZSBpbiBv
dXRwdXQuc3BsaXRsaW5lcygpKQogCiAgICAgZGVmIHhjb2RlX3ZlcnNpb24oc2VsZik6CiAgICAg
ICAgIGlmIG5vdCBzZWxmLmlzX21hYygpOgogICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcgotICAgICAgICByZXR1cm4gVmVyc2lvbi5mcm9tX3N0cmluZyhzZWxmLl9leGVjdXRp
dmUucnVuX2NvbW1hbmQoWyd4Y29kZWJ1aWxkJywgJy12ZXJzaW9uJ10pLnNwbGl0KClbMV0pCisg
ICAgICAgIHJldHVybiBWZXJzaW9uLmZyb21fc3RyaW5nKHNlbGYuZXhlY3V0aXZlLnJ1bl9jb21t
YW5kKFsneGNvZGVidWlsZCcsICctdmVyc2lvbiddKS5zcGxpdCgpWzFdKQogCiAgICAgZGVmIF9k
ZXRlcm1pbmVfb3NfbmFtZShzZWxmLCBzeXNfcGxhdGZvcm0pOgogICAgICAgICBpZiBzeXNfcGxh
dGZvcm0gPT0gJ2Rhcndpbic6CkBAIC0xODcsNCArMTk4LDQgQEAgY2xhc3MgUGxhdGZvcm1JbmZv
KG9iamVjdCk6CiAgICAgICAgIGlmIHZlcnNpb246CiAgICAgICAgICAgICByZXR1cm4gdmVyc2lv
bgogICAgICAgICAjIE5vdGUgdGhhdCB0aGlzIHNob3VsZCBvbmx5IGV2ZXIgYmUgY2FsbGVkIG9u
IHdpbmRvd3MsIHNvIHRoaXMgc2hvdWxkIGFsd2F5cyB3b3JrLgotICAgICAgICByZXR1cm4gc2Vs
Zi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsnY21kJywgJy9jJywgJ3ZlciddLCBkZWNvZGVfb3V0
cHV0PUZhbHNlKQorICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRpdmUucnVuX2NvbW1hbmQoWydj
bWQnLCAnL2MnLCAndmVyJ10sIGRlY29kZV9vdXRwdXQ9RmFsc2UpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVtaG9zdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5CmluZGV4IGNiODQxOTNm
ZGU2Li5hMTUzNDIyMDFkOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL3N5c3RlbWhvc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL3N5c3RlbWhvc3QucHkKQEAgLTI3LDE4ICsyNywxNiBAQAogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCiBpbXBvcnQgb3MKLWltcG9ydCBwbGF0Zm9ybQotaW1wb3J0IHN5cwogCi1mcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGVudmlyb25tZW50LCBleGVjdXRpdmUsIGZpbGVfbG9j
aywgZmlsZXN5c3RlbSwgcGxhdGZvcm1pbmZvLCB1c2VyLCB3b3Jrc3BhY2UKK2Zyb20gLiBpbXBv
cnQgZW52aXJvbm1lbnQsIGV4ZWN1dGl2ZSwgZmlsZV9sb2NrLCBmaWxlc3lzdGVtLCBwbGF0Zm9y
bWluZm8sIHVzZXIsIHdvcmtzcGFjZQogCiAKIGNsYXNzIFN5c3RlbUhvc3Qob2JqZWN0KToKICAg
ICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYuZXhlY3V0aXZlID0gZXhlY3V0aXZl
LkV4ZWN1dGl2ZSgpCiAgICAgICAgIHNlbGYuZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0uRmlsZVN5
c3RlbSgpCi0gICAgICAgIHNlbGYudXNlciA9IHVzZXIuVXNlcigpCi0gICAgICAgIHNlbGYucGxh
dGZvcm0gPSBwbGF0Zm9ybWluZm8uUGxhdGZvcm1JbmZvKHN5cywgcGxhdGZvcm0sIHNlbGYuZXhl
Y3V0aXZlKQorICAgICAgICBzZWxmLnBsYXRmb3JtID0gcGxhdGZvcm1pbmZvLlBsYXRmb3JtSW5m
byhleGVjdXRpdmU9c2VsZi5leGVjdXRpdmUpCisgICAgICAgIHNlbGYudXNlciA9IHVzZXIuVXNl
cihzZWxmLnBsYXRmb3JtKQogICAgICAgICBzZWxmLndvcmtzcGFjZSA9IHdvcmtzcGFjZS5Xb3Jr
c3BhY2Uoc2VsZi5maWxlc3lzdGVtLCBzZWxmLmV4ZWN1dGl2ZSkKIAogICAgIGRlZiBjb3B5X2N1
cnJlbnRfZW52aXJvbm1lbnQoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS91c2VyLnB5CmluZGV4IGU1MTNlY2IwYWFhLi4yYTRhZTMxZGViMCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXIucHkKQEAgLTI5LDE1ICsyOSwx
MiBAQAogaW1wb3J0IGdldHBhc3MKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKLWltcG9ydCBw
bGF0Zm9ybQogaW1wb3J0IHJlCiBpbXBvcnQgc2hsZXgKIGltcG9ydCBzdWJwcm9jZXNzCi1pbXBv
cnQgc3lzCiBpbXBvcnQgd2ViYnJvd3NlcgogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5w
bGF0Zm9ybWluZm8gaW1wb3J0IFBsYXRmb3JtSW5mbworZnJvbSAucGxhdGZvcm1pbmZvIGltcG9y
dCBQbGF0Zm9ybUluZm8KIAogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCkBA
IC00Niw3ICs0Myw3IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIHRyeToK
ICAgICBpbXBvcnQgcmVhZGxpbmUKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBpZiBub3Qgc3lz
LnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbjMyJyk6CisgICAgaWYgbm90IFBsYXRmb3JtSW5mbygp
LmlzX25hdGl2ZV93aW4oKToKICAgICAgICAgIyBUaGVyZSBpcyBubyByZWFkbGluZSBtb2R1bGUg
Zm9yIHdpbjMyLCBub3QgbXVjaCB0byBkbyBleGNlcHQgY3J5LgogICAgICAgICBfbG9nLndhcm4o
IlVuYWJsZSB0byBpbXBvcnQgcmVhZGxpbmUuIikKIApAQCAtNTgsNyArNTUsNyBAQCBjbGFzcyBV
c2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRmb3JtaW5mbz1Ob25lKToK
ICAgICAgICAgIyBXZSBjYW5ub3QgZ2V0IHRoZSBQbGF0Zm9ybUluZm8gb2JqZWN0IGZyb20gYSBT
eXN0ZW1Ib3N0IGJlY2F1c2UKICAgICAgICAgIyBVc2VyIGlzIHBhcnQgb2YgU3lzdGVtSG9zdCBp
dHNlbGYuCi0gICAgICAgIHNlbGYuX3BsYXRmb3JtaW5mbyA9IHBsYXRmb3JtaW5mbyBvciBQbGF0
Zm9ybUluZm8oc3lzLCBwbGF0Zm9ybSwgRXhlY3V0aXZlKCkpCisgICAgICAgIHNlbGYuX3BsYXRm
b3JtaW5mbyA9IHBsYXRmb3JtaW5mbyBvciBQbGF0Zm9ybUluZm8oKQogCiAgICAgIyBGSVhNRTog
VGhlc2UgYXJlIEBjbGFzc21ldGhvZHMgYmVjYXVzZSBidWd6aWxsYS5weSBkb2Vzbid0IGhhdmUg
YSBUb29sIG9iamVjdCAodGh1cyBubyBVc2VyIGluc3RhbmNlKS4KICAgICBAY2xhc3NtZXRob2QK
</data>
<flag name="review"
          id="348579"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343851</attachid>
            <date>2018-06-28 14:25:02 -0700</date>
            <delta_ts>2018-06-28 14:29:45 -0700</delta_ts>
            <desc>Rolling out</desc>
            <filename>180827-rolling-out.diff</filename>
            <type>text/plain</type>
            <size>6963</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MGEw
MmJkYTMyNi4uOWY2YTQ2ZjJlMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNi0yOCAgQmFzdWtlIFN1enVr
aSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjIyNjY1Mi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDgyNworCisgICAgICAgICJQbGF0Zm9ybUluZm8gc2hvdWxkIG5ldmVyIGJlIGlu
c3RhbnRpYXRlZCBpbiBpc29sYXRpb24uIFNvLCBQbGF0Zm9ybUluZm8gc2hvdWxkCisgICAgICAg
IG5vdCBoYXZlIGRlZmF1bHQgYXJndW1lbnQgdmFsdWVzLiBUaGUgcHJlZmVycmVkIHdheSB0byBn
ZXQgYSBQbGF0Zm9ybUluZm8gb2JqZWN0CisgICAgICAgIGlzIHRvIGluc3RhbnRpYXRlIGEgSG9z
dCBvYmplY3QuIiAoUmVxdWVzdGVkIGJ5IGRiYXRlcykuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hh
bmdlc2V0OgorCisgICAgICAgICJbd2Via2l0cHldIFBsYXRmb3JtSW5mbyBzaG91bGQgaGF2ZSBk
ZWZhdWx0IGFyZ3VtZW50IGZvciBjYXN1YWwgdXNlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwODI3CisKIDIwMTgtMDYtMjYgIERhbmllbCBCYXRl
cyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEVXUyBzaG91bGQgcGFzcyAtLXN0YXR1
cy1ob3N0LXVzZXMtaHR0cCB3aGVuIGludm9raW5nIHdlYmtpdC1wYXRjaCwgaWYgbmVlZGVkCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1p
bmZvLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5m
by5weQppbmRleCBjYzNiYzAxZWY1Yy4uMDU0YTk0ZjhiZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQpAQCAtMjksNyAr
MjksNiBAQAogCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKLWltcG9ydCBwbGF0Zm9ybQogCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBQVUJMSUNfVEFCTEUsIElOVEVSTkFMX1RBQkxF
LCBWZXJzaW9uTmFtZU1hcApAQCAtNDksMTYgKzQ4LDEzIEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhv
YmplY3QpOgogICAgIG5ld2VyIHRoYW4gb25lIGtub3duIHRvIHRoZSBjb2RlLgogICAgICIiIgog
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHN5c19tb2R1bGU9Tm9uZSwgcGxhdGZvcm1fbW9kdWxl
PU5vbmUsIGV4ZWN1dGl2ZT1Ob25lKToKLSAgICAgICAgc3lzX3BsYXRmb3JtID0gKHN5c19tb2R1
bGUgb3Igc3lzKS5wbGF0Zm9ybQotICAgICAgICBwbGF0Zm9ybV9tb2R1bGUgPSBwbGF0Zm9ybV9t
b2R1bGUgb3IgcGxhdGZvcm0KLQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzeXNfbW9kdWxlLCBw
bGF0Zm9ybV9tb2R1bGUsIGV4ZWN1dGl2ZSk6CiAgICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4
ZWN1dGl2ZQogICAgICAgICBzZWxmLl9wbGF0Zm9ybV9tb2R1bGUgPSBwbGF0Zm9ybV9tb2R1bGUK
LSAgICAgICAgc2VsZi5vc19uYW1lID0gc2VsZi5fZGV0ZXJtaW5lX29zX25hbWUoc3lzX3BsYXRm
b3JtKQorICAgICAgICBzZWxmLm9zX25hbWUgPSBzZWxmLl9kZXRlcm1pbmVfb3NfbmFtZShzeXNf
bW9kdWxlLnBsYXRmb3JtKQogICAgICAgICBzZWxmLm9zX3ZlcnNpb24gPSBOb25lCiAKLSAgICAg
ICAgc2VsZi5faXNfY3lnd2luID0gc3lzX3BsYXRmb3JtID09ICdjeWd3aW4nCisgICAgICAgIHNl
bGYuX2lzX2N5Z3dpbiA9IHN5c19tb2R1bGUucGxhdGZvcm0gPT0gJ2N5Z3dpbicKIAogICAgICAg
ICBpZiBzZWxmLm9zX25hbWUuc3RhcnRzd2l0aCgnbWFjJyk6CiAgICAgICAgICAgICBzZWxmLm9z
X3ZlcnNpb24gPSBWZXJzaW9uLmZyb21fc3RyaW5nKHBsYXRmb3JtX21vZHVsZS5tYWNfdmVyKClb
MF0pCkBAIC03MCwxMyArNjYsNiBAQCBjbGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICAg
ICAgICAgICMgTW9zdCBvdGhlciBwbGF0Zm9ybXMgKG5hbWVseSBpT1MpIHJldHVybiBjb25mb3Jt
aW5nIHZlcnNpb24gc3RyaW5ncy4KICAgICAgICAgICAgIHNlbGYub3NfdmVyc2lvbiA9IFZlcnNp
b24uZnJvbV9zdHJpbmcocGxhdGZvcm1fbW9kdWxlLnJlbGVhc2UoKSkKIAotICAgIEBwcm9wZXJ0
eQotICAgIGRlZiBleGVjdXRpdmUoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX2V4ZWN1dGl2ZSBp
cyBOb25lOgotICAgICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKLQotICAg
ICAgICByZXR1cm4gc2VsZi5fZXhlY3V0aXZlCi0KICAgICBkZWYgaXNfbWFjKHNlbGYpOgogICAg
ICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdtYWMnCiAKQEAgLTEyNiw3ICsxMTUsNyBAQCBj
bGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKIAogICAgIGRlZiB0b3RhbF9ieXRlc19tZW1vcnko
c2VsZik6CiAgICAgICAgIGlmIHNlbGYuaXNfbWFjKCk6Ci0gICAgICAgICAgICByZXR1cm4gbG9u
ZyhzZWxmLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbInN5c2N0bCIsICItbiIsICJody5tZW1zaXpl
Il0pKQorICAgICAgICAgICAgcmV0dXJuIGxvbmcoc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5k
KFsic3lzY3RsIiwgIi1uIiwgImh3Lm1lbXNpemUiXSkpCiAgICAgICAgIHJldHVybiBOb25lCiAK
ICAgICBkZWYgdGVybWluYWxfd2lkdGgoc2VsZik6CkBAIC0xNTcsNyArMTQ2LDcgQEAgY2xhc3Mg
UGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIHhjb2RlX3Nka192ZXJzaW9uKHNlbGYsIHNk
a19uYW1lKToKICAgICAgICAgaWYgc2VsZi5pc19tYWMoKToKICAgICAgICAgICAgICMgQXNzdW1l
cyB0aGF0IHhjcnVuIGRvZXMgbm90IHdyaXRlIHRvIHN0YW5kYXJkIG91dHB1dCBvbiBmYWlsdXJl
IChlLmcuIFNESyBkb2VzIG5vdCBleGlzdCkuCi0gICAgICAgICAgICB4Y3J1bl9vdXRwdXQgPSBz
ZWxmLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3hjcnVuJywgJy0tc2RrJywgc2RrX25hbWUsICct
LXNob3ctc2RrLXZlcnNpb24nXSwgcmV0dXJuX3N0ZGVycj1GYWxzZSwgaWdub3JlX2Vycm9ycz1U
cnVlKS5yc3RyaXAoKQorICAgICAgICAgICAgeGNydW5fb3V0cHV0ID0gc2VsZi5fZXhlY3V0aXZl
LnJ1bl9jb21tYW5kKFsneGNydW4nLCAnLS1zZGsnLCBzZGtfbmFtZSwgJy0tc2hvdy1zZGstdmVy
c2lvbiddLCByZXR1cm5fc3RkZXJyPUZhbHNlLCBpZ25vcmVfZXJyb3JzPVRydWUpLnJzdHJpcCgp
CiAgICAgICAgICAgICBpZiB4Y3J1bl9vdXRwdXQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIFZl
cnNpb24uZnJvbV9zdHJpbmcoeGNydW5fb3V0cHV0KQogICAgICAgICByZXR1cm4gTm9uZQpAQCAt
MTY1LDEzICsxNTQsMTMgQEAgY2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIHhj
b2RlX3NpbWN0bF9saXN0KHNlbGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5pc19tYWMoKToKICAg
ICAgICAgICAgIHJldHVybiAoKQotICAgICAgICBvdXRwdXQgPSBzZWxmLmV4ZWN1dGl2ZS5ydW5f
Y29tbWFuZChbJ3hjcnVuJywgJ3NpbWN0bCcsICdsaXN0J10sIHJldHVybl9zdGRlcnI9RmFsc2Up
CisgICAgICAgIG91dHB1dCA9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3hjcnVuJywg
J3NpbWN0bCcsICdsaXN0J10sIHJldHVybl9zdGRlcnI9RmFsc2UpCiAgICAgICAgIHJldHVybiAo
bGluZSBmb3IgbGluZSBpbiBvdXRwdXQuc3BsaXRsaW5lcygpKQogCiAgICAgZGVmIHhjb2RlX3Zl
cnNpb24oc2VsZik6CiAgICAgICAgIGlmIG5vdCBzZWxmLmlzX21hYygpOgogICAgICAgICAgICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgotICAgICAgICByZXR1cm4gVmVyc2lvbi5mcm9tX3N0
cmluZyhzZWxmLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3hjb2RlYnVpbGQnLCAnLXZlcnNpb24n
XSkuc3BsaXQoKVsxXSkKKyAgICAgICAgcmV0dXJuIFZlcnNpb24uZnJvbV9zdHJpbmcoc2VsZi5f
ZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsneGNvZGVidWlsZCcsICctdmVyc2lvbiddKS5zcGxpdCgp
WzFdKQogCiAgICAgZGVmIF9kZXRlcm1pbmVfb3NfbmFtZShzZWxmLCBzeXNfcGxhdGZvcm0pOgog
ICAgICAgICBpZiBzeXNfcGxhdGZvcm0gPT0gJ2Rhcndpbic6CkBAIC0yMDEsNCArMTkwLDQgQEAg
Y2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgICAgIGlmIHZlcnNpb246CiAgICAgICAg
ICAgICByZXR1cm4gdmVyc2lvbgogICAgICAgICAjIE5vdGUgdGhhdCB0aGlzIHNob3VsZCBvbmx5
IGV2ZXIgYmUgY2FsbGVkIG9uIHdpbmRvd3MsIHNvIHRoaXMgc2hvdWxkIGFsd2F5cyB3b3JrLgot
ICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRpdmUucnVuX2NvbW1hbmQoWydjbWQnLCAnL2MnLCAn
dmVyJ10sIGRlY29kZV9vdXRwdXQ9RmFsc2UpCisgICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRp
dmUucnVuX2NvbW1hbmQoWydjbWQnLCAnL2MnLCAndmVyJ10sIGRlY29kZV9vdXRwdXQ9RmFsc2Up
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVt
aG9zdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0
LnB5CmluZGV4IGExNTM0MjIwMWQ4Li4zZWYxMDNlMTgwNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N5c3RlbWhvc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N5c3RlbWhvc3QucHkKQEAgLTI3LDYgKzI3LDgg
QEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCBz
eXMKIAogZnJvbSAuIGltcG9ydCBlbnZpcm9ubWVudCwgZXhlY3V0aXZlLCBmaWxlX2xvY2ssIGZp
bGVzeXN0ZW0sIHBsYXRmb3JtaW5mbywgdXNlciwgd29ya3NwYWNlCiAKQEAgLTM1LDcgKzM3LDcg
QEAgY2xhc3MgU3lzdGVtSG9zdChvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAg
ICAgICAgc2VsZi5leGVjdXRpdmUgPSBleGVjdXRpdmUuRXhlY3V0aXZlKCkKICAgICAgICAgc2Vs
Zi5maWxlc3lzdGVtID0gZmlsZXN5c3RlbS5GaWxlU3lzdGVtKCkKLSAgICAgICAgc2VsZi5wbGF0
Zm9ybSA9IHBsYXRmb3JtaW5mby5QbGF0Zm9ybUluZm8oZXhlY3V0aXZlPXNlbGYuZXhlY3V0aXZl
KQorICAgICAgICBzZWxmLnBsYXRmb3JtID0gcGxhdGZvcm1pbmZvLlBsYXRmb3JtSW5mbyhzeXMs
IHBsYXRmb3JtLCBzZWxmLmV4ZWN1dGl2ZSkKICAgICAgICAgc2VsZi51c2VyID0gdXNlci5Vc2Vy
KHNlbGYucGxhdGZvcm0pCiAgICAgICAgIHNlbGYud29ya3NwYWNlID0gd29ya3NwYWNlLldvcmtz
cGFjZShzZWxmLmZpbGVzeXN0ZW0sIHNlbGYuZXhlY3V0aXZlKQogCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2VyLnB5CmluZGV4IDJhNGFlMzFkZWIwLi4xZDQ2NGRm
ZTliZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3Vz
ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXIucHkK
QEAgLTI5LDExICsyOSwxNCBAQAogaW1wb3J0IGdldHBhc3MKIGltcG9ydCBsb2dnaW5nCiBpbXBv
cnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHJlCiBpbXBvcnQgc2hsZXgKK2ltcG9ydCBz
eXMKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgd2ViYnJvd3NlcgogCitmcm9tIC5leGVjdXRp
dmUgaW1wb3J0IEV4ZWN1dGl2ZQogZnJvbSAucGxhdGZvcm1pbmZvIGltcG9ydCBQbGF0Zm9ybUlu
Zm8KIAogCkBAIC00Myw3ICs0Niw3IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf
XykKIHRyeToKICAgICBpbXBvcnQgcmVhZGxpbmUKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBp
ZiBub3QgUGxhdGZvcm1JbmZvKCkuaXNfbmF0aXZlX3dpbigpOgorICAgIGlmIG5vdCBzeXMucGxh
dGZvcm0uc3RhcnRzd2l0aCgnd2luMzInKToKICAgICAgICAgIyBUaGVyZSBpcyBubyByZWFkbGlu
ZSBtb2R1bGUgZm9yIHdpbjMyLCBub3QgbXVjaCB0byBkbyBleGNlcHQgY3J5LgogICAgICAgICBf
bG9nLndhcm4oIlVuYWJsZSB0byBpbXBvcnQgcmVhZGxpbmUuIikKIApAQCAtNTUsNyArNTgsNyBA
QCBjbGFzcyBVc2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRmb3JtaW5m
bz1Ob25lKToKICAgICAgICAgIyBXZSBjYW5ub3QgZ2V0IHRoZSBQbGF0Zm9ybUluZm8gb2JqZWN0
IGZyb20gYSBTeXN0ZW1Ib3N0IGJlY2F1c2UKICAgICAgICAgIyBVc2VyIGlzIHBhcnQgb2YgU3lz
dGVtSG9zdCBpdHNlbGYuCi0gICAgICAgIHNlbGYuX3BsYXRmb3JtaW5mbyA9IHBsYXRmb3JtaW5m
byBvciBQbGF0Zm9ybUluZm8oKQorICAgICAgICBzZWxmLl9wbGF0Zm9ybWluZm8gPSBwbGF0Zm9y
bWluZm8gb3IgUGxhdGZvcm1JbmZvKHN5cywgcGxhdGZvcm0sIEV4ZWN1dGl2ZSgpKQogCiAgICAg
IyBGSVhNRTogVGhlc2UgYXJlIEBjbGFzc21ldGhvZHMgYmVjYXVzZSBidWd6aWxsYS5weSBkb2Vz
bid0IGhhdmUgYSBUb29sIG9iamVjdCAodGh1cyBubyBVc2VyIGluc3RhbmNlKS4KICAgICBAY2xh
c3NtZXRob2QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343853</attachid>
            <date>2018-06-28 14:29:45 -0700</date>
            <delta_ts>2018-06-28 15:13:10 -0700</delta_ts>
            <desc>Rolling out</desc>
            <filename>180827-rolling-out.diff</filename>
            <type>text/plain</type>
            <size>6963</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MGEw
MmJkYTMyNi4uOWY2YTQ2ZjJlMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNi0yOCAgQmFzdWtlIFN1enVr
aSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjIyNjY1Mi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDgyNworCisgICAgICAgICJQbGF0Zm9ybUluZm8gc2hvdWxkIG5ldmVyIGJlIGlu
c3RhbnRpYXRlZCBpbiBpc29sYXRpb24uIFNvLCBQbGF0Zm9ybUluZm8gc2hvdWxkCisgICAgICAg
IG5vdCBoYXZlIGRlZmF1bHQgYXJndW1lbnQgdmFsdWVzLiBUaGUgcHJlZmVycmVkIHdheSB0byBn
ZXQgYSBQbGF0Zm9ybUluZm8gb2JqZWN0CisgICAgICAgIGlzIHRvIGluc3RhbnRpYXRlIGEgSG9z
dCBvYmplY3QuIiAoUmVxdWVzdGVkIGJ5IGRiYXRlcykuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hh
bmdlc2V0OgorCisgICAgICAgICJbd2Via2l0cHldIFBsYXRmb3JtSW5mbyBzaG91bGQgaGF2ZSBk
ZWZhdWx0IGFyZ3VtZW50IGZvciBjYXN1YWwgdXNlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwODI3CisKIDIwMTgtMDYtMjYgIERhbmllbCBCYXRl
cyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEVXUyBzaG91bGQgcGFzcyAtLXN0YXR1
cy1ob3N0LXVzZXMtaHR0cCB3aGVuIGludm9raW5nIHdlYmtpdC1wYXRjaCwgaWYgbmVlZGVkCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1p
bmZvLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5m
by5weQppbmRleCBjYzNiYzAxZWY1Yy4uMDU0YTk0ZjhiZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQpAQCAtMjksNyAr
MjksNiBAQAogCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKLWltcG9ydCBwbGF0Zm9ybQogCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBQVUJMSUNfVEFCTEUsIElOVEVSTkFMX1RBQkxF
LCBWZXJzaW9uTmFtZU1hcApAQCAtNDksMTYgKzQ4LDEzIEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhv
YmplY3QpOgogICAgIG5ld2VyIHRoYW4gb25lIGtub3duIHRvIHRoZSBjb2RlLgogICAgICIiIgog
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHN5c19tb2R1bGU9Tm9uZSwgcGxhdGZvcm1fbW9kdWxl
PU5vbmUsIGV4ZWN1dGl2ZT1Ob25lKToKLSAgICAgICAgc3lzX3BsYXRmb3JtID0gKHN5c19tb2R1
bGUgb3Igc3lzKS5wbGF0Zm9ybQotICAgICAgICBwbGF0Zm9ybV9tb2R1bGUgPSBwbGF0Zm9ybV9t
b2R1bGUgb3IgcGxhdGZvcm0KLQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzeXNfbW9kdWxlLCBw
bGF0Zm9ybV9tb2R1bGUsIGV4ZWN1dGl2ZSk6CiAgICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4
ZWN1dGl2ZQogICAgICAgICBzZWxmLl9wbGF0Zm9ybV9tb2R1bGUgPSBwbGF0Zm9ybV9tb2R1bGUK
LSAgICAgICAgc2VsZi5vc19uYW1lID0gc2VsZi5fZGV0ZXJtaW5lX29zX25hbWUoc3lzX3BsYXRm
b3JtKQorICAgICAgICBzZWxmLm9zX25hbWUgPSBzZWxmLl9kZXRlcm1pbmVfb3NfbmFtZShzeXNf
bW9kdWxlLnBsYXRmb3JtKQogICAgICAgICBzZWxmLm9zX3ZlcnNpb24gPSBOb25lCiAKLSAgICAg
ICAgc2VsZi5faXNfY3lnd2luID0gc3lzX3BsYXRmb3JtID09ICdjeWd3aW4nCisgICAgICAgIHNl
bGYuX2lzX2N5Z3dpbiA9IHN5c19tb2R1bGUucGxhdGZvcm0gPT0gJ2N5Z3dpbicKIAogICAgICAg
ICBpZiBzZWxmLm9zX25hbWUuc3RhcnRzd2l0aCgnbWFjJyk6CiAgICAgICAgICAgICBzZWxmLm9z
X3ZlcnNpb24gPSBWZXJzaW9uLmZyb21fc3RyaW5nKHBsYXRmb3JtX21vZHVsZS5tYWNfdmVyKClb
MF0pCkBAIC03MCwxMyArNjYsNiBAQCBjbGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICAg
ICAgICAgICMgTW9zdCBvdGhlciBwbGF0Zm9ybXMgKG5hbWVseSBpT1MpIHJldHVybiBjb25mb3Jt
aW5nIHZlcnNpb24gc3RyaW5ncy4KICAgICAgICAgICAgIHNlbGYub3NfdmVyc2lvbiA9IFZlcnNp
b24uZnJvbV9zdHJpbmcocGxhdGZvcm1fbW9kdWxlLnJlbGVhc2UoKSkKIAotICAgIEBwcm9wZXJ0
eQotICAgIGRlZiBleGVjdXRpdmUoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX2V4ZWN1dGl2ZSBp
cyBOb25lOgotICAgICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKLQotICAg
ICAgICByZXR1cm4gc2VsZi5fZXhlY3V0aXZlCi0KICAgICBkZWYgaXNfbWFjKHNlbGYpOgogICAg
ICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdtYWMnCiAKQEAgLTEyNiw3ICsxMTUsNyBAQCBj
bGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKIAogICAgIGRlZiB0b3RhbF9ieXRlc19tZW1vcnko
c2VsZik6CiAgICAgICAgIGlmIHNlbGYuaXNfbWFjKCk6Ci0gICAgICAgICAgICByZXR1cm4gbG9u
ZyhzZWxmLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbInN5c2N0bCIsICItbiIsICJody5tZW1zaXpl
Il0pKQorICAgICAgICAgICAgcmV0dXJuIGxvbmcoc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5k
KFsic3lzY3RsIiwgIi1uIiwgImh3Lm1lbXNpemUiXSkpCiAgICAgICAgIHJldHVybiBOb25lCiAK
ICAgICBkZWYgdGVybWluYWxfd2lkdGgoc2VsZik6CkBAIC0xNTcsNyArMTQ2LDcgQEAgY2xhc3Mg
UGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIHhjb2RlX3Nka192ZXJzaW9uKHNlbGYsIHNk
a19uYW1lKToKICAgICAgICAgaWYgc2VsZi5pc19tYWMoKToKICAgICAgICAgICAgICMgQXNzdW1l
cyB0aGF0IHhjcnVuIGRvZXMgbm90IHdyaXRlIHRvIHN0YW5kYXJkIG91dHB1dCBvbiBmYWlsdXJl
IChlLmcuIFNESyBkb2VzIG5vdCBleGlzdCkuCi0gICAgICAgICAgICB4Y3J1bl9vdXRwdXQgPSBz
ZWxmLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3hjcnVuJywgJy0tc2RrJywgc2RrX25hbWUsICct
LXNob3ctc2RrLXZlcnNpb24nXSwgcmV0dXJuX3N0ZGVycj1GYWxzZSwgaWdub3JlX2Vycm9ycz1U
cnVlKS5yc3RyaXAoKQorICAgICAgICAgICAgeGNydW5fb3V0cHV0ID0gc2VsZi5fZXhlY3V0aXZl
LnJ1bl9jb21tYW5kKFsneGNydW4nLCAnLS1zZGsnLCBzZGtfbmFtZSwgJy0tc2hvdy1zZGstdmVy
c2lvbiddLCByZXR1cm5fc3RkZXJyPUZhbHNlLCBpZ25vcmVfZXJyb3JzPVRydWUpLnJzdHJpcCgp
CiAgICAgICAgICAgICBpZiB4Y3J1bl9vdXRwdXQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIFZl
cnNpb24uZnJvbV9zdHJpbmcoeGNydW5fb3V0cHV0KQogICAgICAgICByZXR1cm4gTm9uZQpAQCAt
MTY1LDEzICsxNTQsMTMgQEAgY2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIHhj
b2RlX3NpbWN0bF9saXN0KHNlbGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5pc19tYWMoKToKICAg
ICAgICAgICAgIHJldHVybiAoKQotICAgICAgICBvdXRwdXQgPSBzZWxmLmV4ZWN1dGl2ZS5ydW5f
Y29tbWFuZChbJ3hjcnVuJywgJ3NpbWN0bCcsICdsaXN0J10sIHJldHVybl9zdGRlcnI9RmFsc2Up
CisgICAgICAgIG91dHB1dCA9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3hjcnVuJywg
J3NpbWN0bCcsICdsaXN0J10sIHJldHVybl9zdGRlcnI9RmFsc2UpCiAgICAgICAgIHJldHVybiAo
bGluZSBmb3IgbGluZSBpbiBvdXRwdXQuc3BsaXRsaW5lcygpKQogCiAgICAgZGVmIHhjb2RlX3Zl
cnNpb24oc2VsZik6CiAgICAgICAgIGlmIG5vdCBzZWxmLmlzX21hYygpOgogICAgICAgICAgICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgotICAgICAgICByZXR1cm4gVmVyc2lvbi5mcm9tX3N0
cmluZyhzZWxmLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3hjb2RlYnVpbGQnLCAnLXZlcnNpb24n
XSkuc3BsaXQoKVsxXSkKKyAgICAgICAgcmV0dXJuIFZlcnNpb24uZnJvbV9zdHJpbmcoc2VsZi5f
ZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsneGNvZGVidWlsZCcsICctdmVyc2lvbiddKS5zcGxpdCgp
WzFdKQogCiAgICAgZGVmIF9kZXRlcm1pbmVfb3NfbmFtZShzZWxmLCBzeXNfcGxhdGZvcm0pOgog
ICAgICAgICBpZiBzeXNfcGxhdGZvcm0gPT0gJ2Rhcndpbic6CkBAIC0yMDEsNCArMTkwLDQgQEAg
Y2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgICAgIGlmIHZlcnNpb246CiAgICAgICAg
ICAgICByZXR1cm4gdmVyc2lvbgogICAgICAgICAjIE5vdGUgdGhhdCB0aGlzIHNob3VsZCBvbmx5
IGV2ZXIgYmUgY2FsbGVkIG9uIHdpbmRvd3MsIHNvIHRoaXMgc2hvdWxkIGFsd2F5cyB3b3JrLgot
ICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRpdmUucnVuX2NvbW1hbmQoWydjbWQnLCAnL2MnLCAn
dmVyJ10sIGRlY29kZV9vdXRwdXQ9RmFsc2UpCisgICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRp
dmUucnVuX2NvbW1hbmQoWydjbWQnLCAnL2MnLCAndmVyJ10sIGRlY29kZV9vdXRwdXQ9RmFsc2Up
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVt
aG9zdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0
LnB5CmluZGV4IGExNTM0MjIwMWQ4Li4zZWYxMDNlMTgwNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N5c3RlbWhvc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N5c3RlbWhvc3QucHkKQEAgLTI3LDYgKzI3LDgg
QEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCBz
eXMKIAogZnJvbSAuIGltcG9ydCBlbnZpcm9ubWVudCwgZXhlY3V0aXZlLCBmaWxlX2xvY2ssIGZp
bGVzeXN0ZW0sIHBsYXRmb3JtaW5mbywgdXNlciwgd29ya3NwYWNlCiAKQEAgLTM1LDcgKzM3LDcg
QEAgY2xhc3MgU3lzdGVtSG9zdChvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAg
ICAgICAgc2VsZi5leGVjdXRpdmUgPSBleGVjdXRpdmUuRXhlY3V0aXZlKCkKICAgICAgICAgc2Vs
Zi5maWxlc3lzdGVtID0gZmlsZXN5c3RlbS5GaWxlU3lzdGVtKCkKLSAgICAgICAgc2VsZi5wbGF0
Zm9ybSA9IHBsYXRmb3JtaW5mby5QbGF0Zm9ybUluZm8oZXhlY3V0aXZlPXNlbGYuZXhlY3V0aXZl
KQorICAgICAgICBzZWxmLnBsYXRmb3JtID0gcGxhdGZvcm1pbmZvLlBsYXRmb3JtSW5mbyhzeXMs
IHBsYXRmb3JtLCBzZWxmLmV4ZWN1dGl2ZSkKICAgICAgICAgc2VsZi51c2VyID0gdXNlci5Vc2Vy
KHNlbGYucGxhdGZvcm0pCiAgICAgICAgIHNlbGYud29ya3NwYWNlID0gd29ya3NwYWNlLldvcmtz
cGFjZShzZWxmLmZpbGVzeXN0ZW0sIHNlbGYuZXhlY3V0aXZlKQogCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2VyLnB5CmluZGV4IDJhNGFlMzFkZWIwLi4xZDQ2NGRm
ZTliZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3Vz
ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXIucHkK
QEAgLTI5LDExICsyOSwxNCBAQAogaW1wb3J0IGdldHBhc3MKIGltcG9ydCBsb2dnaW5nCiBpbXBv
cnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHJlCiBpbXBvcnQgc2hsZXgKK2ltcG9ydCBz
eXMKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgd2ViYnJvd3NlcgogCitmcm9tIC5leGVjdXRp
dmUgaW1wb3J0IEV4ZWN1dGl2ZQogZnJvbSAucGxhdGZvcm1pbmZvIGltcG9ydCBQbGF0Zm9ybUlu
Zm8KIAogCkBAIC00Myw3ICs0Niw3IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf
XykKIHRyeToKICAgICBpbXBvcnQgcmVhZGxpbmUKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBp
ZiBub3QgUGxhdGZvcm1JbmZvKCkuaXNfbmF0aXZlX3dpbigpOgorICAgIGlmIG5vdCBzeXMucGxh
dGZvcm0uc3RhcnRzd2l0aCgnd2luMzInKToKICAgICAgICAgIyBUaGVyZSBpcyBubyByZWFkbGlu
ZSBtb2R1bGUgZm9yIHdpbjMyLCBub3QgbXVjaCB0byBkbyBleGNlcHQgY3J5LgogICAgICAgICBf
bG9nLndhcm4oIlVuYWJsZSB0byBpbXBvcnQgcmVhZGxpbmUuIikKIApAQCAtNTUsNyArNTgsNyBA
QCBjbGFzcyBVc2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYXRmb3JtaW5m
bz1Ob25lKToKICAgICAgICAgIyBXZSBjYW5ub3QgZ2V0IHRoZSBQbGF0Zm9ybUluZm8gb2JqZWN0
IGZyb20gYSBTeXN0ZW1Ib3N0IGJlY2F1c2UKICAgICAgICAgIyBVc2VyIGlzIHBhcnQgb2YgU3lz
dGVtSG9zdCBpdHNlbGYuCi0gICAgICAgIHNlbGYuX3BsYXRmb3JtaW5mbyA9IHBsYXRmb3JtaW5m
byBvciBQbGF0Zm9ybUluZm8oKQorICAgICAgICBzZWxmLl9wbGF0Zm9ybWluZm8gPSBwbGF0Zm9y
bWluZm8gb3IgUGxhdGZvcm1JbmZvKHN5cywgcGxhdGZvcm0sIEV4ZWN1dGl2ZSgpKQogCiAgICAg
IyBGSVhNRTogVGhlc2UgYXJlIEBjbGFzc21ldGhvZHMgYmVjYXVzZSBidWd6aWxsYS5weSBkb2Vz
bid0IGhhdmUgYSBUb29sIG9iamVjdCAodGh1cyBubyBVc2VyIGluc3RhbmNlKS4KICAgICBAY2xh
c3NtZXRob2QK
</data>

          </attachment>
      

    </bug>

</bugzilla>