<?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>184169</bug_id>
          
          <creation_ts>2018-03-29 18:48:06 -0700</creation_ts>
          <short_desc>Introduce WTF_LAZY_INSTANTIATE</short_desc>
          <delta_ts>2018-03-30 13:34:25 -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>Web Template Framework</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>184164</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>mark.lam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1410482</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-29 18:48:06 -0700</bug_when>
    <thetext>As part of #184164 I&apos;m adding some forwarding methods to WTF::String. These need to forward RetainPtr and Cstring, and usually that would require adding RetainPtr.h and CString.h to WTFString.h which isn&apos;t really something we should do.

Introduce WTF_LAZY_INSTANTIATE to forward-declare functions which just pass parameters to another function, and return whatever that other function returned, without having to include the return&apos;s / parameters&apos; type header.

Try it out here: godbolt.org/g/oV8G5Q</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410483</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-29 18:48:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/39023385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410484</commentid>
    <comment_count>2</comment_count>
      <attachid>336831</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-29 18:49:56 -0700</bug_when>
    <thetext>Created attachment 336831
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410485</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-29 18:51:58 -0700</bug_when>
    <thetext>Attachment 336831 did not pass style-queue:


ERROR: Source/WTF/wtf/Forward.h:147:  Missing space after ,  [whitespace/comma] [3]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410540</commentid>
    <comment_count>4</comment_count>
      <attachid>336831</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-29 21:44:32 -0700</bug_when>
    <thetext>Comment on attachment 336831
patch

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

r=me with suggestions.

&gt; Source/WTF/ChangeLog:10
&gt; +        WTF::String. These need to forward RetainPtr and Cstring, and

typo: /Cstring/CString/.

&gt; Source/WTF/ChangeLog:11
&gt; +        usually that would require adding RetainPtr.h and CString.h to

nit: I suggest saying &quot;#include&apos;ing&quot; instead of &quot;adding&quot;.

&gt; Source/WTF/wtf/Forward.h:147
&gt; +#define WTF_LAZY_CALL_EACH(F,...) \

I suggest renaming WTF_LAZY_CALL_EACH to WTF_LAZY_FOR_EACH_TERM_IN_VA_ARGS.

&gt; Source/WTF/wtf/Forward.h:149
&gt; +#define WTF_LAZY_LAST(_1, ...) _1

You&apos;re actually picking off the first arg, not the last.  So, I suggest renaming this to WTF_LAZY_FIRST_TERM_IN_VA_ARGS.

&gt; Source/WTF/wtf/Forward.h:150
&gt; +#define WTF_LAZY_MORE(_1, ...) (__VA_ARGS__)

I suggest renaming WTF_LAZY_MORE to WTF_LAZY_REST_OF_TERMS_IN_VA_ARGS.

&gt; Source/WTF/wtf/Forward.h:158
&gt; +#define WTF_LAZY_CALL_EACH_1(F, A) F(WTF_LAZY_LAST A) WTF_LAZY_CALL_EACH_0(F, WTF_LAZY_MORE A)
&gt; +#define WTF_LAZY_CALL_EACH_2(F, A) F(WTF_LAZY_LAST A) WTF_LAZY_CALL_EACH_1(F, WTF_LAZY_MORE A)
&gt; +#define WTF_LAZY_CALL_EACH_3(F, A) F(WTF_LAZY_LAST A) WTF_LAZY_CALL_EACH_2(F, WTF_LAZY_MORE A)
&gt; +#define WTF_LAZY_CALL_EACH_4(F, A) F(WTF_LAZY_LAST A) WTF_LAZY_CALL_EACH_3(F, WTF_LAZY_MORE A)
&gt; +#define WTF_LAZY_CALL_EACH_5(F, A) F(WTF_LAZY_LAST A) WTF_LAZY_CALL_EACH_4(F, WTF_LAZY_MORE A)
&gt; +#define WTF_LAZY_CALL_EACH_6(F, A) F(WTF_LAZY_LAST A) WTF_LAZY_CALL_EACH_5(F, WTF_LAZY_MORE A)
&gt; +#define WTF_LAZY_CALL_EACH_7(F, A) F(WTF_LAZY_LAST A) WTF_LAZY_CALL_EACH_6(F, WTF_LAZY_MORE A)

I suggest renaming A to ArgsInParens.  Took me a while to catch on that WTF_LAZY_CALL_EACH passes in (__VA_ARGS__) as A, and hence WTF_LAZY_LAST A expands to WTF_LAZY_LAST(__VA_ARGS__).  It made sense thereafter, but was not so obvious in the beginning.

I would also suggest renaming WTF_LAZY_CALL_EACH_7 to WTF_LAZY_PROCESS_7 (and similarly for 6 to 0).

&gt; Source/WTF/wtf/Forward.h:159
&gt; +#define WTF_LAZY_TYPE(ALIAS_AND_TYPE) typename ALIAS_AND_TYPE,

I suggest renaming WTF_LAZY_TYPE to WTF_LAZY_DECLARE_TYPE.

So, FOR_EACH_TERM_IN_VA_ARGS, you PROCESS a term, where you pick off the FIRST_TERM_IN_VA_ARGS from the ArgsInParens, DECLARE its TYPE, and pass on the REST_OF_TERMS_IN_VA_ARGS in the ArgsInParens to be processed by the next PROCESS macro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410541</commentid>
    <comment_count>5</comment_count>
      <attachid>336831</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-29 21:50:25 -0700</bug_when>
    <thetext>Comment on attachment 336831
patch

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

&gt;&gt; Source/WTF/wtf/Forward.h:147
&gt;&gt; +#define WTF_LAZY_CALL_EACH(F,...) \
&gt; 
&gt; I suggest renaming WTF_LAZY_CALL_EACH to WTF_LAZY_FOR_EACH_TERM_IN_VA_ARGS.

Please also fix style checker complaint: add a space between &quot;F,&quot; and &quot;...&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410643</commentid>
    <comment_count>6</comment_count>
      <attachid>336866</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-30 09:59:35 -0700</bug_when>
    <thetext>Created attachment 336866
patch for landing, rebased onto my other patch which touched WTFString.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410655</commentid>
    <comment_count>7</comment_count>
      <attachid>336866</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-30 10:36:24 -0700</bug_when>
    <thetext>Comment on attachment 336866
patch for landing, rebased onto my other patch which touched WTFString.h

Clearing flags on attachment: 336866

Committed r230109: &lt;https://trac.webkit.org/changeset/230109&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410656</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-30 10:36:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410665</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-03-30 10:55:52 -0700</bug_when>
    <thetext>Can we roll this out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410666</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-30 10:56:45 -0700</bug_when>
    <thetext>(In reply to Filip Pizlo from comment #9)
&gt; Can we roll this out?

I think this could be useful for other things.  Why do you want to roll it out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410667</commentid>
    <comment_count>11</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-30 10:57:39 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #10)
&gt; (In reply to Filip Pizlo from comment #9)
&gt; &gt; Can we roll this out?
&gt; 
&gt; I think this could be useful for other things.  Why do you want to roll it
&gt; out?

Right, based on Alex&apos;s comment on the bigger patch, I&apos;m splitting things up into workable units that are easier to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410671</commentid>
    <comment_count>12</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2018-03-30 11:15:46 -0700</bug_when>
    <thetext>IMO name &quot;...INSTANTIATE&quot; implies (template) instantiation, while what actually happens here is delayed type name lookup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410672</commentid>
    <comment_count>13</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-30 11:20:02 -0700</bug_when>
    <thetext>(In reply to Konstantin Tokarev from comment #12)
&gt; IMO name &quot;...INSTANTIATE&quot; implies (template) instantiation, while what
&gt; actually happens here is delayed type name lookup

The macro makes the (usually non-templated function) a template, and the parameters / argument types are then delayed until the template function is called (which instantiates it). I&apos;m not sure how to best capture that subtlety, when the net effect is that we effectively just need valid syntax in the function, and all else (handwaving here) is figured out lazily wherever the function is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410675</commentid>
    <comment_count>14</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2018-03-30 11:27:21 -0700</bug_when>
    <thetext>BTW, did you consider *Inlines.h way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410684</commentid>
    <comment_count>15</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-30 11:40:41 -0700</bug_when>
    <thetext>(In reply to Konstantin Tokarev from comment #14)
&gt; BTW, did you consider *Inlines.h way?

Yes, feels weird to do in WTFString.h, and this approach is way simpler IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410691</commentid>
    <comment_count>16</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-03-30 12:00:26 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #10)
&gt; (In reply to Filip Pizlo from comment #9)
&gt; &gt; Can we roll this out?
&gt; 
&gt; I think this could be useful for other things.  Why do you want to roll it
&gt; out?

Are those things happening now or far off in the future?

Because if they are happening far off in the future, then per WebKit policy towards dead code, we should roll it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410705</commentid>
    <comment_count>17</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-30 12:43:40 -0700</bug_when>
    <thetext>(In reply to Filip Pizlo from comment #16)
&gt; (In reply to Alex Christensen from comment #10)
&gt; &gt; (In reply to Filip Pizlo from comment #9)
&gt; &gt; &gt; Can we roll this out?
&gt; &gt; 
&gt; &gt; I think this could be useful for other things.  Why do you want to roll it
&gt; &gt; out?
&gt; 
&gt; Are those things happening now or far off in the future?
&gt; 
&gt; Because if they are happening far off in the future, then per WebKit policy
&gt; towards dead code, we should roll it out.

Alex requested that I split cleanup / refactor code in https://bugs.webkit.org/show_bug.cgi?id=184164 from the parts that do poisoning. This patch is one of the requested splits, and a subsequent one will use the macro. Once these cleanups / refactors are in we&apos;ll see what&apos;s left in #184164, whether it&apos;s still big or not (I expect it to be quite a bit smaller). With that we can decide whether to check it in now with the JSC usage follow-up I&apos;ve got locally, or hold off.

I&apos;m doing all of this asynchronously as I work on something else, so it may be a few days until I&apos;m done unwinding #184164.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410706</commentid>
    <comment_count>18</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-03-30 12:45:18 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #17)
&gt; (In reply to Filip Pizlo from comment #16)
&gt; &gt; (In reply to Alex Christensen from comment #10)
&gt; &gt; &gt; (In reply to Filip Pizlo from comment #9)
&gt; &gt; &gt; &gt; Can we roll this out?
&gt; &gt; &gt; 
&gt; &gt; &gt; I think this could be useful for other things.  Why do you want to roll it
&gt; &gt; &gt; out?
&gt; &gt; 
&gt; &gt; Are those things happening now or far off in the future?
&gt; &gt; 
&gt; &gt; Because if they are happening far off in the future, then per WebKit policy
&gt; &gt; towards dead code, we should roll it out.
&gt; 
&gt; Alex requested that I split cleanup / refactor code in
&gt; https://bugs.webkit.org/show_bug.cgi?id=184164 from the parts that do
&gt; poisoning. This patch is one of the requested splits, and a subsequent one
&gt; will use the macro. Once these cleanups / refactors are in we&apos;ll see what&apos;s
&gt; left in #184164, whether it&apos;s still big or not (I expect it to be quite a
&gt; bit smaller). With that we can decide whether to check it in now with the
&gt; JSC usage follow-up I&apos;ve got locally, or hold off.
&gt; 
&gt; I&apos;m doing all of this asynchronously as I work on something else, so it may
&gt; be a few days until I&apos;m done unwinding #184164.

We&apos;re not doing bug 184164 anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410720</commentid>
    <comment_count>19</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-30 13:34:25 -0700</bug_when>
    <thetext>I guess we should roll this out then and put it back in with adoption if we are going to use it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336831</attachid>
            <date>2018-03-29 18:49:56 -0700</date>
            <delta_ts>2018-03-30 09:59:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Introduce-WTF_LAZY_INSTANTIATE.patch</filename>
            <type>text/plain</type>
            <size>4852</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA4MWU0NWQwMTg4ZmI1NjQxYzBkMjE0MDM3NzE2ZmQ2MTk4YmYxNzkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDI5IE1hciAyMDE4IDE4OjQ5OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gSW50cm9k
dWNlIFdURl9MQVpZX0lOU1RBTlRJQVRFCgotLS0KIFNvdXJjZS9XVEYvQ2hhbmdlTG9nICAgICB8
IDIyICsrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCB8IDQ4
ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxl
cyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAyMGUzZGY4Li5kZjc5Yjg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDE4LTAzLTI5ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxl
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgV1RGX0xBWllfSU5TVEFOVElBVEUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE2OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzkwMjMzODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQXMgcGFydCBvZiAjMTg0MTY0IEknbSBhZGRpbmcgc29tZSBmb3J3
YXJkaW5nIG1ldGhvZHMgdG8KKyAgICAgICAgV1RGOjpTdHJpbmcuIFRoZXNlIG5lZWQgdG8gZm9y
d2FyZCBSZXRhaW5QdHIgYW5kIENzdHJpbmcsIGFuZAorICAgICAgICB1c3VhbGx5IHRoYXQgd291
bGQgcmVxdWlyZSBhZGRpbmcgUmV0YWluUHRyLmggYW5kIENTdHJpbmcuaCB0bworICAgICAgICBX
VEZTdHJpbmcuaCB3aGljaCBpc24ndCByZWFsbHkgc29tZXRoaW5nIHdlIHNob3VsZCBkby4KKwor
ICAgICAgICBJbnRyb2R1Y2UgV1RGX0xBWllfSU5TVEFOVElBVEUgdG8gZm9yd2FyZC1kZWNsYXJl
IGZ1bmN0aW9ucyB3aGljaAorICAgICAgICBqdXN0IHBhc3MgcGFyYW1ldGVycyB0byBhbm90aGVy
IGZ1bmN0aW9uLCBhbmQgcmV0dXJuIHdoYXRldmVyIHRoYXQKKyAgICAgICAgb3RoZXIgZnVuY3Rp
b24gcmV0dXJuZWQsIHdpdGhvdXQgaGF2aW5nIHRvIGluY2x1ZGUgdGhlIHJldHVybidzIC8KKyAg
ICAgICAgcGFyYW1ldGVycycgdHlwZSBoZWFkZXIuCisKKyAgICAgICAgVHJ5IGl0IG91dCBoZXJl
OiBnb2Rib2x0Lm9yZy9nL29WOEc1UQorCisgICAgICAgICogd3RmL0ZvcndhcmQuaDoKKwogMjAx
OC0wMy0yOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMDA2Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAppbmRleCA0MmZhZDgx
Li43MTY3M2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291
cmNlL1dURi93dGYvRm9yd2FyZC5oCkBAIC0xMTMsMyArMTEzLDUxIEBAIHVzaW5nIFdURjo6VmVj
dG9yOwogCiB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBFPiB1c2luZyBFeHBlY3RlZCA9IHN0ZDo6
ZXhwZXJpbWVudGFsOjpleHBlY3RlZDxULCBFPjsKIHRlbXBsYXRlPGNsYXNzIEU+IHVzaW5nIFVu
ZXhwZWN0ZWQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBlY3RlZDxFPjsKKworLy8gU29tZXRp
bWVzIGFuIGlubGluZSBtZXRob2Qgc2ltcGx5IGZvcndhcmRzIHRvIGFub3RoZXIgb25lIGFuZCBk
b2VzIG5vdGhpbmcgZWxzZS4gSWYgaXQgd2VyZQorLy8ganVzdCBhIGZvcndhcmQgZGVjbGFyYXRp
b24gb2YgdGhhdCBtZXRob2QgdGhlbiB5b3Ugd291bGQgb25seSBuZWVkIGEgZm9yd2FyZCBkZWNs
YXJhdGlvbiBvZgorLy8gaXRzIHJldHVybiB0eXBlcyBhbmQgcGFyYW1ldGVyIHR5cGVzIHRvbywg
YnV0IGJlY2F1c2UgaXQncyBpbmxpbmUgYW5kIGl0IGFjdHVhbGx5IG5lZWRzIHRvCisvLyByZXR1
cm4gLyBwYXNzIHRoZXNlIHR5cGVzIChldmVuIHRob3VnaCBpdCdzIGp1c3QgcGFzc2luZyB0aHJv
dWdoIHdoYXRldmVyIGl0IGNhbGxlZCkgeW91CisvLyBub3cgZmluZCB5b3Vyc2VsZiBoYXZpbmcg
dG8gYWN0dWFsbHkgaGF2ZSBhIGZ1bGwgZGVjbGFyYXRpb24gb2YgdGhlc2UgdHlwZXMuIFRoYXQg
bWlnaHQgYmUKKy8vIGFuIGluY2x1ZGUgeW91J2QgcmF0aGVyIGF2b2lkLgorLy8KKy8vIE5vIG1v
cmUuIEVudGVyIHRlbXBsYXRlIG1hZ2ljIHRvIGxhemlseSBpbnN0YW50aWF0ZSB0aGF0IG1ldGhv
ZCEKKy8vCisvLyBUaGlzIG1hY3JvIG1ha2VzIHRoZSBtZXRob2Qgd29yayBhcyBpZiB5b3UnZCBk
ZWNsYXJlZCB0aGUgcmV0dXJuIC8gcGFyYW1ldGVyIHR5cGVzIGFzIG5vcm1hbCwKKy8vIGJ1dCBm
b3JjZXMgbGF6eSBpbnN0YW50aWF0aW9uIG9mIHRoZSBtZXRob2QgYXQgdGhlIGNhbGwgc2l0ZSwg
YXQgd2hpY2ggcG9pbnQgdGhlIGNhbGxlciAobm90CisvLyB0aGUgZGVjbGFyYXRpb24pIGhhZCBi
ZXR0ZXIgaGF2ZSBhIGZ1bGwgZGVjbGFyYXRpb24gb2YgdGhlIHJldHVybiAvIHBhcmFtZXRlciB0
eXBlcy4KKy8vCisvLyBTaW1wbHkgcGFzcyB0aGUgZm9yd2FyZC1kZWNsYXJlZCB0eXBlcyB0byB0
aGUgbWFjcm8sIHdpdGggYW4gYWxpYXMgZm9yIGVhY2gsIGFuZCB0aGVuIGRlZmluZQorLy8geW91
ciBmdW5jdGlvbiBhcyB5b3Ugb3RoZXJ3aXNlIHdvdWxkIGhhdmUgYnV0IHVzaW5nIHRoZSBhbGlh
c2VkIG5hbWUuIFdoeSB0aGUgYWxpYXM/IFNvIHlvdQorLy8gY2FuIGJlIGxhenkgb24gdGVtcGxh
dGVkIHR5cGVzISBTYW1wbGUgdXNhZ2U6CisvLworLy8gc3RydWN0IEZvbzsgLy8gTm8gbmVlZCB0
byBkZWZpbmUgRm9vIQorLy8gdGVtcGxhdGU8dHlwZW5hbWUgVD4KKy8vIHN0cnVjdCBBIHsKKy8v
ICAgICBGb28gZGVjbGFyZWQoQmFyKTsgLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgb2YgRm9vIGFu
ZCBCYXIgYXJlIHN1ZmZpY2llbnQgaGVyZS4KKy8vICAgICAvLyBUaGUgYmVsb3cgY29kZSB3b3Vs
ZCBub3JtYWxseSByZXF1aXJlIGEgZGVmaW5pdGlvbiBvZiBGb28gYW5kIEJhci4KKy8vICAgICBX
VEZfTEFaWV9JTlNUQU5USUFURShGb289Rm9vLCBCYXI9QmFyKSBGb28gZm9yd2FyZGVyKEJhciBi
KSB7IHJldHVybiBkZWNsYXJlZChiKTsgfQorLy8gfTsKKyNkZWZpbmUgV1RGX0xBWllfSk9JTl9V
TkxBWkUoQSwgQikgQSMjQgorI2RlZmluZSBXVEZfTEFaWV9KT0lOKEEsIEIpIFdURl9MQVpZX0pP
SU5fVU5MQVpFKEEsIEIpCisjZGVmaW5lIFdURl9MQVpZX0FSR1VNRU5UX05VTUJFUihfMSwgXzIs
IF8zLCBfNCwgXzUsIF82LCBfNywgTiwgLi4uKSBOCisjZGVmaW5lIFdURl9MQVpZX1JFVkVSU0Vf
U0VRVUVOQ0UoKSA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwCisjZGVmaW5lIFdURl9MQVpZX05VTV9B
UkdTXyguLi4pIFdURl9MQVpZX0FSR1VNRU5UX05VTUJFUihfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
V1RGX0xBWllfTlVNX0FSR1MoLi4uKSBXVEZfTEFaWV9OVU1fQVJHU18oX19WQV9BUkdTX18sIFdU
Rl9MQVpZX1JFVkVSU0VfU0VRVUVOQ0UoKSkKKyNkZWZpbmUgV1RGX0xBWllfQ0FMTF9FQUNIKEYs
Li4uKSBcCisgICAgV1RGX0xBWllfSk9JTihXVEZfTEFaWV9DQUxMX0VBQ0hfLCBXVEZfTEFaWV9O
VU1fQVJHUyhfX1ZBX0FSR1NfXykpKEYsIChfX1ZBX0FSR1NfXykpCisjZGVmaW5lIFdURl9MQVpZ
X0xBU1QoXzEsIC4uLikgXzEKKyNkZWZpbmUgV1RGX0xBWllfTU9SRShfMSwgLi4uKSAoX19WQV9B
UkdTX18pCisjZGVmaW5lIFdURl9MQVpZX0NBTExfRUFDSF8wKC4uLikKKyNkZWZpbmUgV1RGX0xB
WllfQ0FMTF9FQUNIXzEoRiwgQSkgRihXVEZfTEFaWV9MQVNUIEEpIFdURl9MQVpZX0NBTExfRUFD
SF8wKEYsIFdURl9MQVpZX01PUkUgQSkKKyNkZWZpbmUgV1RGX0xBWllfQ0FMTF9FQUNIXzIoRiwg
QSkgRihXVEZfTEFaWV9MQVNUIEEpIFdURl9MQVpZX0NBTExfRUFDSF8xKEYsIFdURl9MQVpZX01P
UkUgQSkKKyNkZWZpbmUgV1RGX0xBWllfQ0FMTF9FQUNIXzMoRiwgQSkgRihXVEZfTEFaWV9MQVNU
IEEpIFdURl9MQVpZX0NBTExfRUFDSF8yKEYsIFdURl9MQVpZX01PUkUgQSkKKyNkZWZpbmUgV1RG
X0xBWllfQ0FMTF9FQUNIXzQoRiwgQSkgRihXVEZfTEFaWV9MQVNUIEEpIFdURl9MQVpZX0NBTExf
RUFDSF8zKEYsIFdURl9MQVpZX01PUkUgQSkKKyNkZWZpbmUgV1RGX0xBWllfQ0FMTF9FQUNIXzUo
RiwgQSkgRihXVEZfTEFaWV9MQVNUIEEpIFdURl9MQVpZX0NBTExfRUFDSF80KEYsIFdURl9MQVpZ
X01PUkUgQSkKKyNkZWZpbmUgV1RGX0xBWllfQ0FMTF9FQUNIXzYoRiwgQSkgRihXVEZfTEFaWV9M
QVNUIEEpIFdURl9MQVpZX0NBTExfRUFDSF81KEYsIFdURl9MQVpZX01PUkUgQSkKKyNkZWZpbmUg
V1RGX0xBWllfQ0FMTF9FQUNIXzcoRiwgQSkgRihXVEZfTEFaWV9MQVNUIEEpIFdURl9MQVpZX0NB
TExfRUFDSF82KEYsIFdURl9MQVpZX01PUkUgQSkKKyNkZWZpbmUgV1RGX0xBWllfVFlQRShBTElB
U19BTkRfVFlQRSkgdHlwZW5hbWUgQUxJQVNfQU5EX1RZUEUsCisjZGVmaW5lIFdURl9MQVpZX0lO
U1RBTlRJQVRFKC4uLikgICAgICAgICAgICAgICAgICAgXAorICAgIHRlbXBsYXRlPCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBXVEZfTEFaWV9DQUxMX0VBQ0go
V1RGX0xBWllfVFlQRSwgX19WQV9BUkdTX18pICBcCisgICAgdHlwZW5hbWUgPSB2b2lkPgotLSAK
Mi45LjMKCg==
</data>
<flag name="review"
          id="355318"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336866</attachid>
            <date>2018-03-30 09:59:35 -0700</date>
            <delta_ts>2018-03-30 10:36:24 -0700</delta_ts>
            <desc>patch for landing, rebased onto my other patch which touched WTFString.h</desc>
            <filename>0001-Introduce-WTF_LAZY_INSTANTIATE.patch</filename>
            <type>text/plain</type>
            <size>5180</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA2MTk2NDdlNmQ5YTE5N2I5M2I4ZGU0YjQ4ZWNlNWJmOTc1MTY2MGJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDI5IE1hciAyMDE4IDE4OjQ5OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gSW50cm9k
dWNlIFdURl9MQVpZX0lOU1RBTlRJQVRFCgotLS0KIFNvdXJjZS9XVEYvQ2hhbmdlTG9nICAgICB8
IDIyICsrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCB8IDQ4
ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxl
cyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBhMmViZmRlLi5lNTMyOTU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDI3IEBACiAyMDE4LTAzLTI5ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxl
LmNvbT4KIAorICAgICAgICBJbnRyb2R1Y2UgV1RGX0xBWllfSU5TVEFOVElBVEUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE2OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzkwMjMzODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0u
CisKKyAgICAgICAgQXMgcGFydCBvZiAjMTg0MTY0IEknbSBhZGRpbmcgc29tZSBmb3J3YXJkaW5n
IG1ldGhvZHMgdG8KKyAgICAgICAgV1RGOjpTdHJpbmcuIFRoZXNlIG5lZWQgdG8gZm9yd2FyZCBS
ZXRhaW5QdHIgYW5kIENTdHJpbmcsIGFuZAorICAgICAgICB1c3VhbGx5IHRoYXQgd291bGQgcmVx
dWlyZSAjaW5jbHVkZSdpbmcgUmV0YWluUHRyLmggYW5kIENTdHJpbmcuaAorICAgICAgICB0byBX
VEZTdHJpbmcuaCB3aGljaCBpc24ndCByZWFsbHkgc29tZXRoaW5nIHdlIHNob3VsZCBkby4KKwor
ICAgICAgICBJbnRyb2R1Y2UgV1RGX0xBWllfSU5TVEFOVElBVEUgdG8gZm9yd2FyZC1kZWNsYXJl
IGZ1bmN0aW9ucyB3aGljaAorICAgICAgICBqdXN0IHBhc3MgcGFyYW1ldGVycyB0byBhbm90aGVy
IGZ1bmN0aW9uLCBhbmQgcmV0dXJuIHdoYXRldmVyIHRoYXQKKyAgICAgICAgb3RoZXIgZnVuY3Rp
b24gcmV0dXJuZWQsIHdpdGhvdXQgaGF2aW5nIHRvIGluY2x1ZGUgdGhlIHJldHVybidzIC8KKyAg
ICAgICAgcGFyYW1ldGVycycgdHlwZSBoZWFkZXIuCisKKyAgICAgICAgVHJ5IGl0IG91dCBoZXJl
OiBnb2Rib2x0Lm9yZy9nL29WOEc1UQorCisgICAgICAgICogd3RmL0ZvcndhcmQuaDoKKworMjAx
OC0wMy0yOSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKICAgICAgICAgVXNl
IEZvcndhcmQuaCBpbnN0ZWFkIG9mIGZvcndhcmQtZGVjbGFyaW5nIFdURjo6U3RyaW5nCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxNzIKICAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM5MDI2MTQ2PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDNkOWMzZmUuLjFmNDNm
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Gb3J3YXJkLmgKQEAgLTExNCwzICsxMTQsNTEgQEAgdXNpbmcgV1RGOjpWZWN0b3I7CiAK
IHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIEU+IHVzaW5nIEV4cGVjdGVkID0gc3RkOjpleHBlcmlt
ZW50YWw6OmV4cGVjdGVkPFQsIEU+OwogdGVtcGxhdGU8Y2xhc3MgRT4gdXNpbmcgVW5leHBlY3Rl
ZCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdGVkPEU+OworCisvLyBTb21ldGltZXMgYW4g
aW5saW5lIG1ldGhvZCBzaW1wbHkgZm9yd2FyZHMgdG8gYW5vdGhlciBvbmUgYW5kIGRvZXMgbm90
aGluZyBlbHNlLiBJZiBpdCB3ZXJlCisvLyBqdXN0IGEgZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiB0
aGF0IG1ldGhvZCB0aGVuIHlvdSB3b3VsZCBvbmx5IG5lZWQgYSBmb3J3YXJkIGRlY2xhcmF0aW9u
IG9mCisvLyBpdHMgcmV0dXJuIHR5cGVzIGFuZCBwYXJhbWV0ZXIgdHlwZXMgdG9vLCBidXQgYmVj
YXVzZSBpdCdzIGlubGluZSBhbmQgaXQgYWN0dWFsbHkgbmVlZHMgdG8KKy8vIHJldHVybiAvIHBh
c3MgdGhlc2UgdHlwZXMgKGV2ZW4gdGhvdWdoIGl0J3MganVzdCBwYXNzaW5nIHRocm91Z2ggd2hh
dGV2ZXIgaXQgY2FsbGVkKSB5b3UKKy8vIG5vdyBmaW5kIHlvdXJzZWxmIGhhdmluZyB0byBhY3R1
YWxseSBoYXZlIGEgZnVsbCBkZWNsYXJhdGlvbiBvZiB0aGVzZSB0eXBlcy4gVGhhdCBtaWdodCBi
ZQorLy8gYW4gaW5jbHVkZSB5b3UnZCByYXRoZXIgYXZvaWQuCisvLworLy8gTm8gbW9yZS4gRW50
ZXIgdGVtcGxhdGUgbWFnaWMgdG8gbGF6aWx5IGluc3RhbnRpYXRlIHRoYXQgbWV0aG9kIQorLy8K
Ky8vIFRoaXMgbWFjcm8gbWFrZXMgdGhlIG1ldGhvZCB3b3JrIGFzIGlmIHlvdSdkIGRlY2xhcmVk
IHRoZSByZXR1cm4gLyBwYXJhbWV0ZXIgdHlwZXMgYXMgbm9ybWFsLAorLy8gYnV0IGZvcmNlcyBs
YXp5IGluc3RhbnRpYXRpb24gb2YgdGhlIG1ldGhvZCBhdCB0aGUgY2FsbCBzaXRlLCBhdCB3aGlj
aCBwb2ludCB0aGUgY2FsbGVyIChub3QKKy8vIHRoZSBkZWNsYXJhdGlvbikgaGFkIGJldHRlciBo
YXZlIGEgZnVsbCBkZWNsYXJhdGlvbiBvZiB0aGUgcmV0dXJuIC8gcGFyYW1ldGVyIHR5cGVzLgor
Ly8KKy8vIFNpbXBseSBwYXNzIHRoZSBmb3J3YXJkLWRlY2xhcmVkIHR5cGVzIHRvIHRoZSBtYWNy
bywgd2l0aCBhbiBhbGlhcyBmb3IgZWFjaCwgYW5kIHRoZW4gZGVmaW5lCisvLyB5b3VyIGZ1bmN0
aW9uIGFzIHlvdSBvdGhlcndpc2Ugd291bGQgaGF2ZSBidXQgdXNpbmcgdGhlIGFsaWFzZWQgbmFt
ZS4gV2h5IHRoZSBhbGlhcz8gU28geW91CisvLyBjYW4gYmUgbGF6eSBvbiB0ZW1wbGF0ZWQgdHlw
ZXMhIFNhbXBsZSB1c2FnZToKKy8vCisvLyBzdHJ1Y3QgRm9vOyAvLyBObyBuZWVkIHRvIGRlZmlu
ZSBGb28hCisvLyB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorLy8gc3RydWN0IEEgeworLy8gICAgIEZv
byBkZWNsYXJlZChCYXIpOyAvLyBGb3J3YXJkIGRlY2xhcmF0aW9ucyBvZiBGb28gYW5kIEJhciBh
cmUgc3VmZmljaWVudCBoZXJlLgorLy8gICAgIC8vIFRoZSBiZWxvdyBjb2RlIHdvdWxkIG5vcm1h
bGx5IHJlcXVpcmUgYSBkZWZpbml0aW9uIG9mIEZvbyBhbmQgQmFyLgorLy8gICAgIFdURl9MQVpZ
X0lOU1RBTlRJQVRFKEZvbz1Gb28sIEJhcj1CYXIpIEZvbyBmb3J3YXJkZXIoQmFyIGIpIHsgcmV0
dXJuIGRlY2xhcmVkKGIpOyB9CisvLyB9OworI2RlZmluZSBXVEZfTEFaWV9KT0lOX1VOTEFaRShB
LCBCKSBBIyNCCisjZGVmaW5lIFdURl9MQVpZX0pPSU4oQSwgQikgV1RGX0xBWllfSk9JTl9VTkxB
WkUoQSwgQikKKyNkZWZpbmUgV1RGX0xBWllfQVJHVU1FTlRfTlVNQkVSKF8xLCBfMiwgXzMsIF80
LCBfNSwgXzYsIF83LCBOLCAuLi4pIE4KKyNkZWZpbmUgV1RGX0xBWllfUkVWRVJTRV9TRVFVRU5D
RSgpIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAKKyNkZWZpbmUgV1RGX0xBWllfTlVNX0FSR1NfKC4u
LikgV1RGX0xBWllfQVJHVU1FTlRfTlVNQkVSKF9fVkFfQVJHU19fKQorI2RlZmluZSBXVEZfTEFa
WV9OVU1fQVJHUyguLi4pIFdURl9MQVpZX05VTV9BUkdTXyhfX1ZBX0FSR1NfXywgV1RGX0xBWllf
UkVWRVJTRV9TRVFVRU5DRSgpKQorI2RlZmluZSBXVEZfTEFaWV9GT1JfRUFDSF9URVJNKEYsIC4u
LikgXAorICAgIFdURl9MQVpZX0pPSU4oV1RGX0xBWllfRk9SX0VBQ0hfVEVSTV8sIFdURl9MQVpZ
X05VTV9BUkdTKF9fVkFfQVJHU19fKSkoRiwgKF9fVkFfQVJHU19fKSkKKyNkZWZpbmUgV1RGX0xB
WllfRklSU1QoXzEsIC4uLikgXzEKKyNkZWZpbmUgV1RGX0xBWllfUkVTVChfMSwgLi4uKSAoX19W
QV9BUkdTX18pCisjZGVmaW5lIFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fMCguLi4pCisjZGVmaW5l
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fMShGLCBBUkdTKSBGKFdURl9MQVpZX0ZJUlNUIEFSR1Mp
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fMChGLCBXVEZfTEFaWV9SRVNUIEFSR1MpCisjZGVmaW5l
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fMihGLCBBUkdTKSBGKFdURl9MQVpZX0ZJUlNUIEFSR1Mp
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fMShGLCBXVEZfTEFaWV9SRVNUIEFSR1MpCisjZGVmaW5l
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fMyhGLCBBUkdTKSBGKFdURl9MQVpZX0ZJUlNUIEFSR1Mp
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fMihGLCBXVEZfTEFaWV9SRVNUIEFSR1MpCisjZGVmaW5l
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fNChGLCBBUkdTKSBGKFdURl9MQVpZX0ZJUlNUIEFSR1Mp
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fMyhGLCBXVEZfTEFaWV9SRVNUIEFSR1MpCisjZGVmaW5l
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fNShGLCBBUkdTKSBGKFdURl9MQVpZX0ZJUlNUIEFSR1Mp
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fNChGLCBXVEZfTEFaWV9SRVNUIEFSR1MpCisjZGVmaW5l
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fNihGLCBBUkdTKSBGKFdURl9MQVpZX0ZJUlNUIEFSR1Mp
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fNShGLCBXVEZfTEFaWV9SRVNUIEFSR1MpCisjZGVmaW5l
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fNyhGLCBBUkdTKSBGKFdURl9MQVpZX0ZJUlNUIEFSR1Mp
IFdURl9MQVpZX0ZPUl9FQUNIX1RFUk1fNihGLCBXVEZfTEFaWV9SRVNUIEFSR1MpCisjZGVmaW5l
IFdURl9MQVpZX0RFQ0xBUkVfQUxJQVNfQU5EX1RZUEUoQUxJQVNfQU5EX1RZUEUpIHR5cGVuYW1l
IEFMSUFTX0FORF9UWVBFLAorI2RlZmluZSBXVEZfTEFaWV9JTlNUQU5USUFURSguLi4pICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZTwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgV1RGX0xBWllfRk9SX0VBQ0hfVEVSTShXVEZfTEFaWV9ERUNMQVJFX0FMSUFTX0FORF9UWVBF
LCBfX1ZBX0FSR1NfXykgXAorICAgIHR5cGVuYW1lID0gdm9pZD4KLS0gCjIuOS4zCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>