<?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>188195</bug_id>
          
          <creation_ts>2018-07-31 08:40:55 -0700</creation_ts>
          <short_desc>Use static const global variable for TransformationMatrix instead of NeverDestroyed</short_desc>
          <delta_ts>2018-07-31 12:38:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>darin</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1446549</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-31 08:40:55 -0700</bug_when>
    <thetext>Use static const global variable for TransformationMatrix instead of NeverDestroyed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446550</commentid>
    <comment_count>1</comment_count>
      <attachid>346167</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-31 08:42:50 -0700</bug_when>
    <thetext>Created attachment 346167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446551</commentid>
    <comment_count>2</comment_count>
      <attachid>346168</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-31 08:47:05 -0700</bug_when>
    <thetext>Created attachment 346168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446552</commentid>
    <comment_count>3</comment_count>
      <attachid>346169</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-31 08:50:51 -0700</bug_when>
    <thetext>Created attachment 346169
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446560</commentid>
    <comment_count>4</comment_count>
      <attachid>346169</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-07-31 09:11:23 -0700</bug_when>
    <thetext>Comment on attachment 346169
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:295
&gt; +static const TransformationMatrix identityTransform { };

The braces here are OK, but not needed.

&gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:119
&gt; +    TransformationMatrix(const TransformationMatrix&amp; t) { *this = t; }

I know this is just showing up in the patch because of changes the other other nearby functions, but why is this needed? Isn’t this what the compiler will generate if we don’t write a copy constructor explicitly? Same question about the assignment operator below. Or maybe we do need to define these explicitly but can use &quot;= default&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446568</commentid>
    <comment_count>5</comment_count>
      <attachid>346169</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-31 09:30:51 -0700</bug_when>
    <thetext>Comment on attachment 346169
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:295
&gt;&gt; +static const TransformationMatrix identityTransform { };
&gt; 
&gt; The braces here are OK, but not needed.

Personally, I would like to have this here since it makes explicit that this is a definition :).

&gt;&gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:119
&gt;&gt; +    TransformationMatrix(const TransformationMatrix&amp; t) { *this = t; }
&gt; 
&gt; I know this is just showing up in the patch because of changes the other other nearby functions, but why is this needed? Isn’t this what the compiler will generate if we don’t write a copy constructor explicitly? Same question about the assignment operator below. Or maybe we do need to define these explicitly but can use &quot;= default&quot;.

In this patch, I keep these things. TransformationMatrix::operator= is different from the default operator: it first checks `*this != other`, and memcpy if the above condition is true.
I&apos;m not sure this check before copying is important... I think it is rather costly. But in the meantime, I would like to keep this patch simple by not having operator=/copy constructor changes.
I&apos;ll open a bug to remove operator=/copy constructor separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446569</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-31 09:31:54 -0700</bug_when>
    <thetext>Committed r234427: &lt;https://trac.webkit.org/changeset/234427&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446570</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-31 09:32:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/42774823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446572</commentid>
    <comment_count>8</comment_count>
      <attachid>346169</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-31 09:47:53 -0700</bug_when>
    <thetext>Comment on attachment 346169
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:119
&gt;&gt;&gt; +    TransformationMatrix(const TransformationMatrix&amp; t) { *this = t; }
&gt;&gt; 
&gt;&gt; I know this is just showing up in the patch because of changes the other other nearby functions, but why is this needed? Isn’t this what the compiler will generate if we don’t write a copy constructor explicitly? Same question about the assignment operator below. Or maybe we do need to define these explicitly but can use &quot;= default&quot;.
&gt; 
&gt; In this patch, I keep these things. TransformationMatrix::operator= is different from the default operator: it first checks `*this != other`, and memcpy if the above condition is true.
&gt; I&apos;m not sure this check before copying is important... I think it is rather costly. But in the meantime, I would like to keep this patch simple by not having operator=/copy constructor changes.
&gt; I&apos;ll open a bug to remove operator=/copy constructor separately.

Ah, no. setMatrix&apos;s `if (m &amp;&amp; m != m_matrix)` is pointer check since m is a C array. default copy constructor just works as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446612</commentid>
    <comment_count>9</comment_count>
      <attachid>346169</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-07-31 11:32:34 -0700</bug_when>
    <thetext>Comment on attachment 346169
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:295
&gt;&gt;&gt; +static const TransformationMatrix identityTransform { };
&gt;&gt; 
&gt;&gt; The braces here are OK, but not needed.
&gt; 
&gt; Personally, I would like to have this here since it makes explicit that this is a definition :).

Can TransformationMatrix.h just export a static const TransformationMatrix identityTransform?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446638</commentid>
    <comment_count>10</comment_count>
      <attachid>346169</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-31 12:38:22 -0700</bug_when>
    <thetext>Comment on attachment 346169
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:295
&gt;&gt;&gt;&gt; +static const TransformationMatrix identityTransform { };
&gt;&gt;&gt; 
&gt;&gt;&gt; The braces here are OK, but not needed.
&gt;&gt; 
&gt;&gt; Personally, I would like to have this here since it makes explicit that this is a definition :).
&gt; 
&gt; Can TransformationMatrix.h just export a static const TransformationMatrix identityTransform?

That sounds nice. I&apos;ll try this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346167</attachid>
            <date>2018-07-31 08:42:50 -0700</date>
            <delta_ts>2018-07-31 08:47:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188195-20180801004249.patch</filename>
            <type>text/plain</type>
            <size>5057</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRlNTA5NmMyNDllMzk0
NWQzNTg3MDQyNGM0MzQ3MDQyNDUyMTIwMi4uMmU1M2ExNDU2MTZhOTU3ZDU0YTM3NTIwNTY5NjUw
YjI5OWRkMDM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA3LTMxICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBzdGF0aWMg
Y29uc3QgZ2xvYmFsIHZhcmlhYmxlIGZvciBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnN0ZWFkIG9m
IE5ldmVyRGVzdHJveWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODgxOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTaW5jZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBkb2VzIG5vdCBoYXZlIGEgbm9uLXRy
aXZpYWwgZGVzdHJ1Y3Rvciwgd2UgY2FuIHB1dCBpdAorICAgICAgICBhcyBzdGF0aWMgY29uc3Qg
Z2xvYmFsIHZhcmlhYmxlIGlmIGl0cyBjb25zdHJ1Y3RvciBpcyBjb25zdGV4cHIuIFRoaXMgcGF0
Y2ggbWFrZXMKKyAgICAgICAgc29tZSBvZiBjb25zdHJ1Y3RvcnMgY29uc3RleHByIGFuZCBtYWtl
cyBpZGVudGl0eVRyYW5zZm9ybSBzdGF0aWMgY29uc3QgZ2xvYmFsIHZhcmlhYmxlCisgICAgICAg
IGluc3RlYWQgb2YgTmV2ZXJEZXN0cm95ZWQ8PiArIHN0YXRpYyBmdW5jdGlvbi4gVGhpcyByZW1v
dmVzIHVubmVjZXNzYXJ5IHN0YXRpYyBmdW5jdGlvbgorICAgICAgICBhbmQgbGF6eSBpbml0aWFs
aXphdGlvbi4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpjaGlsZHJlblRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppZGVudGl0
eVRyYW5zZm9ybSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXg6OlRyYW5zZm9ybWF0aW9uTWF0cml4KToKKwogMjAxOC0wNy0zMSAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0Zsb2F0aW5nXSBBZGQg
YmFzaWMgbGVmdC9yaWdodCBmbG9hdGluZyBwb3NpdGlvbmluZy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYjk2NDFiYjUz
NmUwNzIwMTY0YzQ5YWZhM2RjODNlN2VkNTQyYWUxNy4uMzhjMDM0YTM3YTE4Nzc1MDY1OWVhMjc2
NWE5N2EwNWY0NDYwN2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTI5MiwxNSArMjkyLDExIEBAIHZvaWQgR3JhcGhp
Y3NMYXllcjo6cmVtb3ZlRnJvbVBhcmVudCgpCiAgICAgfQogfQogCi1zdGF0aWMgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIGlkZW50aXR5VHJhbnNmb3JtKCkKLXsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VHJhbnNmb3JtYXRpb25NYXRyaXg+IGlkZW50aXR5VHJhbnNmb3JtOwotICAg
IHJldHVybiBpZGVudGl0eVRyYW5zZm9ybTsKLX0KK3N0YXRpYyBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBpZGVudGl0eVRyYW5zZm9ybSB7IH07CiAKIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBHcmFwaGljc0xheWVyOjp0cmFuc2Zvcm0oKSBjb25zdAogewotICAgIHJldHVybiBtX3Ry
YW5zZm9ybSA/ICptX3RyYW5zZm9ybSA6IGlkZW50aXR5VHJhbnNmb3JtKCk7CisgICAgcmV0dXJu
IG1fdHJhbnNmb3JtID8gKm1fdHJhbnNmb3JtIDogaWRlbnRpdHlUcmFuc2Zvcm07CiB9CiAKIHZv
aWQgR3JhcGhpY3NMYXllcjo6c2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtYXRyaXgpCkBAIC0zMTMsNyArMzA5LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpzZXRUcmFu
c2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKIAogY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIEdyYXBoaWNzTGF5ZXI6OmNoaWxkcmVuVHJhbnNmb3JtKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9jaGlsZHJlblRyYW5zZm9ybSA/ICptX2NoaWxkcmVuVHJhbnNmb3Jt
IDogaWRlbnRpdHlUcmFuc2Zvcm0oKTsKKyAgICByZXR1cm4gbV9jaGlsZHJlblRyYW5zZm9ybSA/
ICptX2NoaWxkcmVuVHJhbnNmb3JtIDogaWRlbnRpdHlUcmFuc2Zvcm07CiB9CiAKIHZvaWQgR3Jh
cGhpY3NMYXllcjo6c2V0Q2hpbGRyZW5UcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1hdHJpeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAppbmRleCBlODMy
YmE5YWYxM2EyZTIyM2YxMWUxNmYwNzhmNDA1OTgwNDQyYzljLi44OTg5NjIwMGFhMDkwMzUxZWU1
YzdjNzkwNmFkNjFlMjBhNGMzNmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oCkBAIC04MiwxOCArODIsNDIgQEAgY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXggewogICAg
IHR5cGVkZWYgZG91YmxlIE1hdHJpeDRbNF1bNF07CiAjZW5kaWYKIAotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4KCkgeyBtYWtlSWRlbnRpdHkoKTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIFRyYW5z
Zm9ybWF0aW9uTWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KSB7ICp0aGlzID0gdDsgfQot
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRv
dWJsZSBkLCBkb3VibGUgZSwgZG91YmxlIGYpIHsgc2V0TWF0cml4KGEsIGIsIGMsIGQsIGUsIGYp
OyB9Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXgoZG91YmxlIG0xMSwgZG91YmxlIG0xMiwgZG91
YmxlIG0xMywgZG91YmxlIG0xNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbTIx
LCBkb3VibGUgbTIyLCBkb3VibGUgbTIzLCBkb3VibGUgbTI0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgIGRvdWJsZSBtMzEsIGRvdWJsZSBtMzIsIGRvdWJsZSBtMzMsIGRvdWJsZSBtMzQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG00MSwgZG91YmxlIG00MiwgZG91YmxlIG00
MywgZG91YmxlIG00NCkKKyAgICBjb25zdGV4cHIgZXhwbGljaXQgVHJhbnNmb3JtYXRpb25NYXRy
aXgoKQorICAgICAgICA6IG1fbWF0cml4IHsKKyAgICAgICAgICAgIHsgMSwgMCwgMCwgMCB9LAor
ICAgICAgICAgICAgeyAwLCAxLCAwLCAwIH0sCisgICAgICAgICAgICB7IDAsIDAsIDEsIDAgfSwK
KyAgICAgICAgICAgIHsgMCwgMCwgMCwgMSB9LAorICAgICAgICB9CisgICAgeworICAgIH0KKwor
ICAgIGNvbnN0ZXhwciBUcmFuc2Zvcm1hdGlvbk1hdHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRv
dWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKQorICAgICAgICA6IG1fbWF0cml4
IHsKKyAgICAgICAgICAgIHsgYSwgYiwgMCwgMCB9LAorICAgICAgICAgICAgeyBjLCBkLCAwLCAw
IH0sCisgICAgICAgICAgICB7IDAsIDAsIDEsIDAgfSwKKyAgICAgICAgICAgIHsgZSwgZiwgMCwg
MSB9LAorICAgICAgICB9CiAgICAgewotICAgICAgICBzZXRNYXRyaXgobTExLCBtMTIsIG0xMywg
bTE0LCBtMjEsIG0yMiwgbTIzLCBtMjQsIG0zMSwgbTMyLCBtMzMsIG0zNCwgbTQxLCBtNDIsIG00
MywgbTQ0KTsKICAgICB9CiAKKyAgICBjb25zdGV4cHIgVHJhbnNmb3JtYXRpb25NYXRyaXgoCisg
ICAgICAgIGRvdWJsZSBtMTEsIGRvdWJsZSBtMTIsIGRvdWJsZSBtMTMsIGRvdWJsZSBtMTQsCisg
ICAgICAgIGRvdWJsZSBtMjEsIGRvdWJsZSBtMjIsIGRvdWJsZSBtMjMsIGRvdWJsZSBtMjQsCisg
ICAgICAgIGRvdWJsZSBtMzEsIGRvdWJsZSBtMzIsIGRvdWJsZSBtMzMsIGRvdWJsZSBtMzQsCisg
ICAgICAgIGRvdWJsZSBtNDEsIGRvdWJsZSBtNDIsIGRvdWJsZSBtNDMsIGRvdWJsZSBtNDQpCisg
ICAgICAgIDogbV9tYXRyaXggeworICAgICAgICAgICAgeyBtMTEsIG0xMiwgbTEzLCBtMTQgfSwK
KyAgICAgICAgICAgIHsgbTIxLCBtMjIsIG0yMywgbTI0IH0sCisgICAgICAgICAgICB7IG0zMSwg
bTMyLCBtMzMsIG0zNCB9LAorICAgICAgICAgICAgeyBtNDEsIG00MiwgbTQzLCBtNDQgfSwKKyAg
ICAgICAgfQorICAgIHsKKyAgICB9CisKKyAgICBXRUJDT1JFX0VYUE9SVCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKKwogICAgIHZvaWQgc2V0TWF0cml4KGRv
dWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgZSwgZG91YmxlIGYp
CiAgICAgewogICAgICAgICBtX21hdHJpeFswXVswXSA9IGE7IG1fbWF0cml4WzBdWzFdID0gYjsg
bV9tYXRyaXhbMF1bMl0gPSAwOyBtX21hdHJpeFswXVszXSA9IDA7IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346168</attachid>
            <date>2018-07-31 08:47:05 -0700</date>
            <delta_ts>2018-07-31 08:50:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188195-20180801004704.patch</filename>
            <type>text/plain</type>
            <size>5129</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRlNTA5NmMyNDllMzk0
NWQzNTg3MDQyNGM0MzQ3MDQyNDUyMTIwMi4uMmU1M2ExNDU2MTZhOTU3ZDU0YTM3NTIwNTY5NjUw
YjI5OWRkMDM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA3LTMxICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBzdGF0aWMg
Y29uc3QgZ2xvYmFsIHZhcmlhYmxlIGZvciBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnN0ZWFkIG9m
IE5ldmVyRGVzdHJveWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODgxOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTaW5jZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBkb2VzIG5vdCBoYXZlIGEgbm9uLXRy
aXZpYWwgZGVzdHJ1Y3Rvciwgd2UgY2FuIHB1dCBpdAorICAgICAgICBhcyBzdGF0aWMgY29uc3Qg
Z2xvYmFsIHZhcmlhYmxlIGlmIGl0cyBjb25zdHJ1Y3RvciBpcyBjb25zdGV4cHIuIFRoaXMgcGF0
Y2ggbWFrZXMKKyAgICAgICAgc29tZSBvZiBjb25zdHJ1Y3RvcnMgY29uc3RleHByIGFuZCBtYWtl
cyBpZGVudGl0eVRyYW5zZm9ybSBzdGF0aWMgY29uc3QgZ2xvYmFsIHZhcmlhYmxlCisgICAgICAg
IGluc3RlYWQgb2YgTmV2ZXJEZXN0cm95ZWQ8PiArIHN0YXRpYyBmdW5jdGlvbi4gVGhpcyByZW1v
dmVzIHVubmVjZXNzYXJ5IHN0YXRpYyBmdW5jdGlvbgorICAgICAgICBhbmQgbGF6eSBpbml0aWFs
aXphdGlvbi4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpjaGlsZHJlblRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppZGVudGl0
eVRyYW5zZm9ybSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXg6OlRyYW5zZm9ybWF0aW9uTWF0cml4KToKKwogMjAxOC0wNy0zMSAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0Zsb2F0aW5nXSBBZGQg
YmFzaWMgbGVmdC9yaWdodCBmbG9hdGluZyBwb3NpdGlvbmluZy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYjk2NDFiYjUz
NmUwNzIwMTY0YzQ5YWZhM2RjODNlN2VkNTQyYWUxNy4uMzhjMDM0YTM3YTE4Nzc1MDY1OWVhMjc2
NWE5N2EwNWY0NDYwN2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTI5MiwxNSArMjkyLDExIEBAIHZvaWQgR3JhcGhp
Y3NMYXllcjo6cmVtb3ZlRnJvbVBhcmVudCgpCiAgICAgfQogfQogCi1zdGF0aWMgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIGlkZW50aXR5VHJhbnNmb3JtKCkKLXsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VHJhbnNmb3JtYXRpb25NYXRyaXg+IGlkZW50aXR5VHJhbnNmb3JtOwotICAg
IHJldHVybiBpZGVudGl0eVRyYW5zZm9ybTsKLX0KK3N0YXRpYyBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBpZGVudGl0eVRyYW5zZm9ybSB7IH07CiAKIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBHcmFwaGljc0xheWVyOjp0cmFuc2Zvcm0oKSBjb25zdAogewotICAgIHJldHVybiBtX3Ry
YW5zZm9ybSA/ICptX3RyYW5zZm9ybSA6IGlkZW50aXR5VHJhbnNmb3JtKCk7CisgICAgcmV0dXJu
IG1fdHJhbnNmb3JtID8gKm1fdHJhbnNmb3JtIDogaWRlbnRpdHlUcmFuc2Zvcm07CiB9CiAKIHZv
aWQgR3JhcGhpY3NMYXllcjo6c2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtYXRyaXgpCkBAIC0zMTMsNyArMzA5LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpzZXRUcmFu
c2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKIAogY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIEdyYXBoaWNzTGF5ZXI6OmNoaWxkcmVuVHJhbnNmb3JtKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9jaGlsZHJlblRyYW5zZm9ybSA/ICptX2NoaWxkcmVuVHJhbnNmb3Jt
IDogaWRlbnRpdHlUcmFuc2Zvcm0oKTsKKyAgICByZXR1cm4gbV9jaGlsZHJlblRyYW5zZm9ybSA/
ICptX2NoaWxkcmVuVHJhbnNmb3JtIDogaWRlbnRpdHlUcmFuc2Zvcm07CiB9CiAKIHZvaWQgR3Jh
cGhpY3NMYXllcjo6c2V0Q2hpbGRyZW5UcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1hdHJpeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAppbmRleCBlODMy
YmE5YWYxM2EyZTIyM2YxMWUxNmYwNzhmNDA1OTgwNDQyYzljLi5kZDU5NzhlZDYwMGI5MmMwNmQz
NDVjMWVkOTE4MjQ1N2E4ZDNlODRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oCkBAIC04MiwxOCArODIsNDMgQEAgY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXggewogICAg
IHR5cGVkZWYgZG91YmxlIE1hdHJpeDRbNF1bNF07CiAjZW5kaWYKIAotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4KCkgeyBtYWtlSWRlbnRpdHkoKTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIFRyYW5z
Zm9ybWF0aW9uTWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KSB7ICp0aGlzID0gdDsgfQot
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRv
dWJsZSBkLCBkb3VibGUgZSwgZG91YmxlIGYpIHsgc2V0TWF0cml4KGEsIGIsIGMsIGQsIGUsIGYp
OyB9Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXgoZG91YmxlIG0xMSwgZG91YmxlIG0xMiwgZG91
YmxlIG0xMywgZG91YmxlIG0xNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbTIx
LCBkb3VibGUgbTIyLCBkb3VibGUgbTIzLCBkb3VibGUgbTI0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgIGRvdWJsZSBtMzEsIGRvdWJsZSBtMzIsIGRvdWJsZSBtMzMsIGRvdWJsZSBtMzQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG00MSwgZG91YmxlIG00MiwgZG91YmxlIG00
MywgZG91YmxlIG00NCkKKyAgICBjb25zdGV4cHIgZXhwbGljaXQgVHJhbnNmb3JtYXRpb25NYXRy
aXgoKQorICAgICAgICA6IG1fbWF0cml4IHsKKyAgICAgICAgICAgIHsgMSwgMCwgMCwgMCB9LAor
ICAgICAgICAgICAgeyAwLCAxLCAwLCAwIH0sCisgICAgICAgICAgICB7IDAsIDAsIDEsIDAgfSwK
KyAgICAgICAgICAgIHsgMCwgMCwgMCwgMSB9LAorICAgICAgICB9CisgICAgeworICAgIH0KKwor
ICAgIGNvbnN0ZXhwciBUcmFuc2Zvcm1hdGlvbk1hdHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRv
dWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKQorICAgICAgICA6IG1fbWF0cml4
IHsKKyAgICAgICAgICAgIHsgYSwgYiwgMCwgMCB9LAorICAgICAgICAgICAgeyBjLCBkLCAwLCAw
IH0sCisgICAgICAgICAgICB7IDAsIDAsIDEsIDAgfSwKKyAgICAgICAgICAgIHsgZSwgZiwgMCwg
MSB9LAorICAgICAgICB9CiAgICAgewotICAgICAgICBzZXRNYXRyaXgobTExLCBtMTIsIG0xMywg
bTE0LCBtMjEsIG0yMiwgbTIzLCBtMjQsIG0zMSwgbTMyLCBtMzMsIG0zNCwgbTQxLCBtNDIsIG00
MywgbTQ0KTsKICAgICB9CiAKKyAgICBjb25zdGV4cHIgVHJhbnNmb3JtYXRpb25NYXRyaXgoCisg
ICAgICAgIGRvdWJsZSBtMTEsIGRvdWJsZSBtMTIsIGRvdWJsZSBtMTMsIGRvdWJsZSBtMTQsCisg
ICAgICAgIGRvdWJsZSBtMjEsIGRvdWJsZSBtMjIsIGRvdWJsZSBtMjMsIGRvdWJsZSBtMjQsCisg
ICAgICAgIGRvdWJsZSBtMzEsIGRvdWJsZSBtMzIsIGRvdWJsZSBtMzMsIGRvdWJsZSBtMzQsCisg
ICAgICAgIGRvdWJsZSBtNDEsIGRvdWJsZSBtNDIsIGRvdWJsZSBtNDMsIGRvdWJsZSBtNDQpCisg
ICAgICAgIDogbV9tYXRyaXggeworICAgICAgICAgICAgeyBtMTEsIG0xMiwgbTEzLCBtMTQgfSwK
KyAgICAgICAgICAgIHsgbTIxLCBtMjIsIG0yMywgbTI0IH0sCisgICAgICAgICAgICB7IG0zMSwg
bTMyLCBtMzMsIG0zNCB9LAorICAgICAgICAgICAgeyBtNDEsIG00MiwgbTQzLCBtNDQgfSwKKyAg
ICAgICAgfQorICAgIHsKKyAgICB9CisKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkgeyAqdGhpcyA9IHQ7IH0KKyAgICBXRUJDT1JFX0VYUE9S
VCBUcmFuc2Zvcm1hdGlvbk1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKKwogICAgIHZv
aWQgc2V0TWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3Vi
bGUgZSwgZG91YmxlIGYpCiAgICAgewogICAgICAgICBtX21hdHJpeFswXVswXSA9IGE7IG1fbWF0
cml4WzBdWzFdID0gYjsgbV9tYXRyaXhbMF1bMl0gPSAwOyBtX21hdHJpeFswXVszXSA9IDA7IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346169</attachid>
            <date>2018-07-31 08:50:51 -0700</date>
            <delta_ts>2018-07-31 09:11:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188195-20180801005050.patch</filename>
            <type>text/plain</type>
            <size>5120</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRlNTA5NmMyNDllMzk0
NWQzNTg3MDQyNGM0MzQ3MDQyNDUyMTIwMi4uMmU1M2ExNDU2MTZhOTU3ZDU0YTM3NTIwNTY5NjUw
YjI5OWRkMDM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA3LTMxICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBzdGF0aWMg
Y29uc3QgZ2xvYmFsIHZhcmlhYmxlIGZvciBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnN0ZWFkIG9m
IE5ldmVyRGVzdHJveWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODgxOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTaW5jZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBkb2VzIG5vdCBoYXZlIGEgbm9uLXRy
aXZpYWwgZGVzdHJ1Y3Rvciwgd2UgY2FuIHB1dCBpdAorICAgICAgICBhcyBzdGF0aWMgY29uc3Qg
Z2xvYmFsIHZhcmlhYmxlIGlmIGl0cyBjb25zdHJ1Y3RvciBpcyBjb25zdGV4cHIuIFRoaXMgcGF0
Y2ggbWFrZXMKKyAgICAgICAgc29tZSBvZiBjb25zdHJ1Y3RvcnMgY29uc3RleHByIGFuZCBtYWtl
cyBpZGVudGl0eVRyYW5zZm9ybSBzdGF0aWMgY29uc3QgZ2xvYmFsIHZhcmlhYmxlCisgICAgICAg
IGluc3RlYWQgb2YgTmV2ZXJEZXN0cm95ZWQ8PiArIHN0YXRpYyBmdW5jdGlvbi4gVGhpcyByZW1v
dmVzIHVubmVjZXNzYXJ5IHN0YXRpYyBmdW5jdGlvbgorICAgICAgICBhbmQgbGF6eSBpbml0aWFs
aXphdGlvbi4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpjaGlsZHJlblRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppZGVudGl0
eVRyYW5zZm9ybSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXg6OlRyYW5zZm9ybWF0aW9uTWF0cml4KToKKwogMjAxOC0wNy0zMSAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0Zsb2F0aW5nXSBBZGQg
YmFzaWMgbGVmdC9yaWdodCBmbG9hdGluZyBwb3NpdGlvbmluZy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYjk2NDFiYjUz
NmUwNzIwMTY0YzQ5YWZhM2RjODNlN2VkNTQyYWUxNy4uMzhjMDM0YTM3YTE4Nzc1MDY1OWVhMjc2
NWE5N2EwNWY0NDYwN2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTI5MiwxNSArMjkyLDExIEBAIHZvaWQgR3JhcGhp
Y3NMYXllcjo6cmVtb3ZlRnJvbVBhcmVudCgpCiAgICAgfQogfQogCi1zdGF0aWMgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIGlkZW50aXR5VHJhbnNmb3JtKCkKLXsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VHJhbnNmb3JtYXRpb25NYXRyaXg+IGlkZW50aXR5VHJhbnNmb3JtOwotICAg
IHJldHVybiBpZGVudGl0eVRyYW5zZm9ybTsKLX0KK3N0YXRpYyBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBpZGVudGl0eVRyYW5zZm9ybSB7IH07CiAKIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBHcmFwaGljc0xheWVyOjp0cmFuc2Zvcm0oKSBjb25zdAogewotICAgIHJldHVybiBtX3Ry
YW5zZm9ybSA/ICptX3RyYW5zZm9ybSA6IGlkZW50aXR5VHJhbnNmb3JtKCk7CisgICAgcmV0dXJu
IG1fdHJhbnNmb3JtID8gKm1fdHJhbnNmb3JtIDogaWRlbnRpdHlUcmFuc2Zvcm07CiB9CiAKIHZv
aWQgR3JhcGhpY3NMYXllcjo6c2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtYXRyaXgpCkBAIC0zMTMsNyArMzA5LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpzZXRUcmFu
c2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKIAogY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIEdyYXBoaWNzTGF5ZXI6OmNoaWxkcmVuVHJhbnNmb3JtKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9jaGlsZHJlblRyYW5zZm9ybSA/ICptX2NoaWxkcmVuVHJhbnNmb3Jt
IDogaWRlbnRpdHlUcmFuc2Zvcm0oKTsKKyAgICByZXR1cm4gbV9jaGlsZHJlblRyYW5zZm9ybSA/
ICptX2NoaWxkcmVuVHJhbnNmb3JtIDogaWRlbnRpdHlUcmFuc2Zvcm07CiB9CiAKIHZvaWQgR3Jh
cGhpY3NMYXllcjo6c2V0Q2hpbGRyZW5UcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1hdHJpeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAppbmRleCBlODMy
YmE5YWYxM2EyZTIyM2YxMWUxNmYwNzhmNDA1OTgwNDQyYzljLi4zN2Q4MTU5ZTZiYjExZDEzZGJi
YzAyZWU1YzViMWFjZDNkYjFlYjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oCkBAIC04MiwxOCArODIsNDMgQEAgY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXggewogICAg
IHR5cGVkZWYgZG91YmxlIE1hdHJpeDRbNF1bNF07CiAjZW5kaWYKIAotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4KCkgeyBtYWtlSWRlbnRpdHkoKTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIFRyYW5z
Zm9ybWF0aW9uTWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KSB7ICp0aGlzID0gdDsgfQot
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRv
dWJsZSBkLCBkb3VibGUgZSwgZG91YmxlIGYpIHsgc2V0TWF0cml4KGEsIGIsIGMsIGQsIGUsIGYp
OyB9Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXgoZG91YmxlIG0xMSwgZG91YmxlIG0xMiwgZG91
YmxlIG0xMywgZG91YmxlIG0xNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbTIx
LCBkb3VibGUgbTIyLCBkb3VibGUgbTIzLCBkb3VibGUgbTI0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgIGRvdWJsZSBtMzEsIGRvdWJsZSBtMzIsIGRvdWJsZSBtMzMsIGRvdWJsZSBtMzQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG00MSwgZG91YmxlIG00MiwgZG91YmxlIG00
MywgZG91YmxlIG00NCkKKyAgICBjb25zdGV4cHIgVHJhbnNmb3JtYXRpb25NYXRyaXgoKQorICAg
ICAgICA6IG1fbWF0cml4IHsKKyAgICAgICAgICAgIHsgMSwgMCwgMCwgMCB9LAorICAgICAgICAg
ICAgeyAwLCAxLCAwLCAwIH0sCisgICAgICAgICAgICB7IDAsIDAsIDEsIDAgfSwKKyAgICAgICAg
ICAgIHsgMCwgMCwgMCwgMSB9LAorICAgICAgICB9CisgICAgeworICAgIH0KKworICAgIGNvbnN0
ZXhwciBUcmFuc2Zvcm1hdGlvbk1hdHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBk
b3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKQorICAgICAgICA6IG1fbWF0cml4IHsKKyAgICAg
ICAgICAgIHsgYSwgYiwgMCwgMCB9LAorICAgICAgICAgICAgeyBjLCBkLCAwLCAwIH0sCisgICAg
ICAgICAgICB7IDAsIDAsIDEsIDAgfSwKKyAgICAgICAgICAgIHsgZSwgZiwgMCwgMSB9LAorICAg
ICAgICB9CiAgICAgewotICAgICAgICBzZXRNYXRyaXgobTExLCBtMTIsIG0xMywgbTE0LCBtMjEs
IG0yMiwgbTIzLCBtMjQsIG0zMSwgbTMyLCBtMzMsIG0zNCwgbTQxLCBtNDIsIG00MywgbTQ0KTsK
ICAgICB9CiAKKyAgICBjb25zdGV4cHIgVHJhbnNmb3JtYXRpb25NYXRyaXgoCisgICAgICAgIGRv
dWJsZSBtMTEsIGRvdWJsZSBtMTIsIGRvdWJsZSBtMTMsIGRvdWJsZSBtMTQsCisgICAgICAgIGRv
dWJsZSBtMjEsIGRvdWJsZSBtMjIsIGRvdWJsZSBtMjMsIGRvdWJsZSBtMjQsCisgICAgICAgIGRv
dWJsZSBtMzEsIGRvdWJsZSBtMzIsIGRvdWJsZSBtMzMsIGRvdWJsZSBtMzQsCisgICAgICAgIGRv
dWJsZSBtNDEsIGRvdWJsZSBtNDIsIGRvdWJsZSBtNDMsIGRvdWJsZSBtNDQpCisgICAgICAgIDog
bV9tYXRyaXggeworICAgICAgICAgICAgeyBtMTEsIG0xMiwgbTEzLCBtMTQgfSwKKyAgICAgICAg
ICAgIHsgbTIxLCBtMjIsIG0yMywgbTI0IH0sCisgICAgICAgICAgICB7IG0zMSwgbTMyLCBtMzMs
IG0zNCB9LAorICAgICAgICAgICAgeyBtNDEsIG00MiwgbTQzLCBtNDQgfSwKKyAgICAgICAgfQor
ICAgIHsKKyAgICB9CisKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdCkgeyAqdGhpcyA9IHQ7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKKwogICAgIHZvaWQgc2V0TWF0
cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgZSwgZG91
YmxlIGYpCiAgICAgewogICAgICAgICBtX21hdHJpeFswXVswXSA9IGE7IG1fbWF0cml4WzBdWzFd
ID0gYjsgbV9tYXRyaXhbMF1bMl0gPSAwOyBtX21hdHJpeFswXVszXSA9IDA7IAo=
</data>
<flag name="review"
          id="364040"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>