<?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>46654</bug_id>
          
          <creation_ts>2010-09-27 14:33:33 -0700</creation_ts>
          <short_desc>Add support for autogenerating synchronous message handlers</short_desc>
          <delta_ts>2010-09-27 15:03:54 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>285750</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-27 14:33:33 -0700</bug_when>
    <thetext>Add support for autogenerating synchronous message handlers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285765</commentid>
    <comment_count>1</comment_count>
      <attachid>68964</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-27 14:52:37 -0700</bug_when>
    <thetext>Created attachment 68964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285777</commentid>
    <comment_count>2</comment_count>
      <attachid>68964</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-27 14:59:39 -0700</bug_when>
    <thetext>Comment on attachment 68964
Patch

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

&gt; WebKit2/Scripts/webkit2/messages.py:384
&gt; +    if async_messages:
&gt; +        result.append(&apos;void %s::didReceive%sMessage(CoreIPC::Connection*, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)\n&apos; % (receiver.name, receiver.name))
&gt; +        result.append(&apos;{\n&apos;)
&gt; +        result.append(&apos;    switch (messageID.get&lt;Messages::%s::Kind&gt;()) {\n&apos; % receiver.name)
&gt; +        result += [async_case_statement(receiver, message) for message in async_messages]
&gt; +        result.append(&apos;    default:\n&apos;)
&gt; +        result.append(&apos;        break;\n&apos;)
&gt; +        result.append(&apos;    }\n\n&apos;)
&gt; +        result.append(&apos;    ASSERT_NOT_REACHED();\n&apos;)
&gt; +        result.append(&apos;}\n&apos;)
&gt; +
&gt; +    if sync_messages:
&gt; +        result.append(&apos;\n&apos;)
&gt; +        result.append(&apos;CoreIPC::SyncReplyMode %s::didReceiveSync%sMessage(CoreIPC::Connection*, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, CoreIPC::ArgumentEncoder* reply)\n&apos; % (receiver.name, receiver.name))
&gt; +        result.append(&apos;{\n&apos;)
&gt; +        result.append(&apos;    switch (messageID.get&lt;Messages::%s::Kind&gt;()) {\n&apos; % receiver.name)
&gt; +        result += [sync_case_statement(receiver, message) for message in sync_messages]
&gt; +        result.append(&apos;    default:\n&apos;)
&gt; +        result.append(&apos;        break;\n&apos;)
&gt; +        result.append(&apos;    }\n\n&apos;)
&gt; +        result.append(&apos;    ASSERT_NOT_REACHED();\n&apos;)
&gt; +        result.append(&apos;    return CoreIPC::AutomaticReply;\n&apos;)
&gt; +        result.append(&apos;}\n&apos;)

It would be nice not to duplicate so much code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285783</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-27 15:03:54 -0700</bug_when>
    <thetext>Committed r68428: &lt;http://trac.webkit.org/changeset/68428&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68964</attachid>
            <date>2010-09-27 14:52:37 -0700</date>
            <delta_ts>2010-09-27 14:59:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46654-20100927145235.patch</filename>
            <type>text/plain</type>
            <size>10722</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NDQyNzVmNjVkYzAxMjRmODdjZDNmMWQ3ZmIwOWM1ZGE3NGRjYTNhZi4uZTQ4ZTRhN2Y2ZTQyNWU1
ZDU0ZDNmMjExMGMxNDNjMjhmYWVkYmU2OSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0yNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhdXRvZ2VuZXJhdGlu
ZyBzeW5jaHJvbm91cyBtZXNzYWdlIGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjY1NAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQy
L21lc3NhZ2VzLnB5OgorICAgICAgICAocmVwbHlfdHlwZSk6IFJlbmFtZWQgZnJvbSByZXBseV9i
YXNlX2NsYXNzLgorICAgICAgICAoZGVsYXllZF9yZXBseV90eXBlKTogUmVuYW1lZCBmcm9tIGRl
bGF5ZWRfcmVwbHlfYmFzZV9jbGFzcy4KKyAgICAgICAgKG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xh
cmF0aW9uKTogQWRkIGEgUmVwbHkgdHlwZSB0eXBlZGVmLgorICAgICAgICAoYXN5bmNfY2FzZV9z
dGF0ZW1lbnQpOiBSZW5hbWUgZnJvbSBjYXNlX3N0YXRlbWVudC4KKyAgICAgICAgKGdlbmVyYXRl
X21lc3NhZ2VfaGFuZGxlcik6IEdlbmVyYXRlIGEgc3luYyBtZXNzYWdlIGhhbmRsZXIgYXMgd2Vs
bC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weToKKyAg
ICAgICAgVXBkYXRlIGV4cGVjdGVkIHJlc3VsdHMuCisKIDIwMTAtMDktMjcgIEFuZHJhcyBCZWNz
aSAgPGFiZWNzaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRy
b2dvbsOhYy4KZGlmZiAtLWdpdCBhL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5
IGIvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKaW5kZXggYjI0NmQ3NTc4Mzgw
MzMxMjdiMTdkZDIzODVmYWExYzM0YzY1MTJkOS4uYjc3ZmE0ODBjNGNmZGZlYThjZjcwOWRmZDcz
MGMzYjI5NDU2NWViOCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKKysrIGIvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTE2Miwy
OCArMTYyLDIzIEBAIGRlZiByZXBseV9wYXJhbWV0ZXJfdHlwZSh0eXBlKToKICAgICByZXR1cm4g
JyVzJicgJSB0eXBlCiAKIAotZGVmIGFyZ3VtZW50c19iYXNlX2NsYXNzKHBhcmFtZXRlcnMsIHBh
cmFtZXRlcl90eXBlX2Z1bmN0aW9uKToKLSAgICBhcmd1bWVudHNfY2xhc3MgPSAnQ29yZUlQQzo6
QXJndW1lbnRzJWQnICUgbGVuKHBhcmFtZXRlcnMpCitkZWYgYXJndW1lbnRzX3R5cGUocGFyYW1l
dGVycywgcGFyYW1ldGVyX3R5cGVfZnVuY3Rpb24pOgorICAgIGFyZ3VtZW50c190eXBlID0gJ0Nv
cmVJUEM6OkFyZ3VtZW50cyVkJyAlIGxlbihwYXJhbWV0ZXJzKQogICAgIGlmIGxlbihwYXJhbWV0
ZXJzKToKLSAgICAgICAgYXJndW1lbnRzX2NsYXNzID0gJyVzPCVzPicgJSAoYXJndW1lbnRzX2Ns
YXNzLCAnLCAnLmpvaW4ocGFyYW1ldGVyX3R5cGVfZnVuY3Rpb24ocGFyYW1ldGVyLnR5cGUpIGZv
ciBwYXJhbWV0ZXIgaW4gcGFyYW1ldGVycykpCi0gICAgcmV0dXJuIGFyZ3VtZW50c19jbGFzcwor
ICAgICAgICBhcmd1bWVudHNfdHlwZSA9ICclczwlcz4nICUgKGFyZ3VtZW50c190eXBlLCAnLCAn
LmpvaW4ocGFyYW1ldGVyX3R5cGVfZnVuY3Rpb24ocGFyYW1ldGVyLnR5cGUpIGZvciBwYXJhbWV0
ZXIgaW4gcGFyYW1ldGVycykpCisgICAgcmV0dXJuIGFyZ3VtZW50c190eXBlCiAKIAogZGVmIGJh
c2VfY2xhc3MobWVzc2FnZSk6Ci0gICAgcmV0dXJuIGFyZ3VtZW50c19iYXNlX2NsYXNzKG1lc3Nh
Z2UucGFyYW1ldGVycywgZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUpCisgICAgcmV0dXJuIGFyZ3Vt
ZW50c190eXBlKG1lc3NhZ2UucGFyYW1ldGVycywgZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUpCiAK
LSAgICBiYXNlX2NsYXNzID0gJ0NvcmVJUEM6OkFyZ3VtZW50cyVkJyAlIGxlbihtZXNzYWdlLnBh
cmFtZXRlcnMpCi0gICAgaWYgbGVuKG1lc3NhZ2UucGFyYW1ldGVycyk6Ci0gICAgICAgIGJhc2Vf
Y2xhc3MgPSAnJXM8JXM+JyAlIChiYXNlX2NsYXNzLCAnLCAnLmpvaW4oZnVuY3Rpb25fcGFyYW1l
dGVyX3R5cGUocGFyYW1ldGVyLnR5cGUpIGZvciBwYXJhbWV0ZXIgaW4gbWVzc2FnZS5wYXJhbWV0
ZXJzKSkKLSAgICByZXR1cm4gYmFzZV9jbGFzcwogCitkZWYgcmVwbHlfdHlwZShtZXNzYWdlKToK
KyAgICByZXR1cm4gYXJndW1lbnRzX3R5cGUobWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzLCByZXBs
eV9wYXJhbWV0ZXJfdHlwZSkKIAotZGVmIHJlcGx5X2Jhc2VfY2xhc3MobWVzc2FnZSk6Ci0gICAg
cmV0dXJuIGFyZ3VtZW50c19iYXNlX2NsYXNzKG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycywgcmVw
bHlfcGFyYW1ldGVyX3R5cGUpCiAKLQotZGVmIGRlbGF5ZWRfcmVwbHlfYmFzZV9jbGFzcyhtZXNz
YWdlKToKLSAgICByZXR1cm4gYXJndW1lbnRzX2Jhc2VfY2xhc3MobWVzc2FnZS5yZXBseV9wYXJh
bWV0ZXJzLCBmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSkKK2RlZiBkZWxheWVkX3JlcGx5X3R5cGUo
bWVzc2FnZSk6CisgICAgcmV0dXJuIGFyZ3VtZW50c190eXBlKG1lc3NhZ2UucmVwbHlfcGFyYW1l
dGVycywgZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUpCiAKIAogZGVmIG1lc3NhZ2VfdG9fc3RydWN0
X2RlY2xhcmF0aW9uKG1lc3NhZ2UpOgpAQCAtMTkyLDYgKzE4Nyw4IEBAIGRlZiBtZXNzYWdlX3Rv
X3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAgICByZXN1bHQuYXBwZW5kKCdzdHJ1Y3Qg
JXMgOiAlcycgJSAobWVzc2FnZS5uYW1lLCBiYXNlX2NsYXNzKG1lc3NhZ2UpKSkKICAgICByZXN1
bHQuYXBwZW5kKCcge1xuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIGNvbnN0IEtp
bmQgbWVzc2FnZUlEID0gJXM7XG4nICUgbWVzc2FnZS5pZCgpKQorICAgIGlmIG1lc3NhZ2UucmVw
bHlfcGFyYW1ldGVycyAhPSBOb25lOgorICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdHlwZWRl
ZiAlcyBSZXBseTtcbicgJSByZXBseV90eXBlKG1lc3NhZ2UpKQogICAgIGlmIGxlbihmdW5jdGlv
bl9wYXJhbWV0ZXJzKToKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICVzJXMoJXMpJyAlIChs
ZW4oZnVuY3Rpb25fcGFyYW1ldGVycykgPT0gMSBhbmQgJ2V4cGxpY2l0ICcgb3IgJycsIG1lc3Nh
Z2UubmFtZSwgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3IgeCBpbiBmdW5jdGlvbl9wYXJhbWV0
ZXJzXSkpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAgICAgOiAlcyglcylcbicgJSAo
YmFzZV9jbGFzcyhtZXNzYWdlKSwgJywgJy5qb2luKFt4WzFdIGZvciB4IGluIGZ1bmN0aW9uX3Bh
cmFtZXRlcnNdKSkpCkBAIC0yNzIsNyArMjY5LDcgQEAgZGVmIGhhbmRsZXJfZnVuY3Rpb24ocmVj
ZWl2ZXIsIG1lc3NhZ2UpOgogICAgIHJldHVybiAnJXM6OiVzJyAlIChyZWNlaXZlci5uYW1lLCBt
ZXNzYWdlLm5hbWVbMF0ubG93ZXIoKSArIG1lc3NhZ2UubmFtZVsxOl0pCiAKIAotZGVmIGNhc2Vf
c3RhdGVtZW50KHJlY2VpdmVyLCBtZXNzYWdlKToKK2RlZiBhc3luY19jYXNlX3N0YXRlbWVudChy
ZWNlaXZlciwgbWVzc2FnZSk6CiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBwZW5kKCcg
ICAgY2FzZSBNZXNzYWdlczo6JXM6OiVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLmlk
KCkpKQogICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxN
ZXNzYWdlczo6JXM6OiVzPihhcmd1bWVudHMsIHRoaXMsICYlcyk7XG4nICUgKHJlY2VpdmVyLm5h
bWUsIG1lc3NhZ2UubmFtZSwgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSkpKQpA
QCAtMjgwLDYgKzI3NywxNSBAQCBkZWYgY2FzZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2Up
OgogICAgIHJldHVybiBzdXJyb3VuZF9pbl9jb25kaXRpb24oJycuam9pbihyZXN1bHQpLCBtZXNz
YWdlLmNvbmRpdGlvbikKIAogCitkZWYgc3luY19jYXNlX3N0YXRlbWVudChyZWNlaXZlciwgbWVz
c2FnZSk6CisgICAgcmVzdWx0ID0gW10KKyAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNz
YWdlczo6JXM6OiVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLmlkKCkpKQorICAgIHJl
c3VsdC5hcHBlbmQoJyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6JXM6
OiVzPihhcmd1bWVudHMsIHJlcGx5LCB0aGlzLCAmJXMpO1xuJyAlIChyZWNlaXZlci5uYW1lLCBt
ZXNzYWdlLm5hbWUsIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1lc3NhZ2UpKSkKKyAgICAj
IEZJWE1FOiBIYW5kbGUgZGVsYXllZCByZXBsaWVzCisgICAgcmVzdWx0LmFwcGVuZCgnICAgICAg
ICByZXR1cm4gQ29yZUlQQzo6QXV0b21hdGljUmVwbHk7XG4nKQorICAgIHJldHVybiBzdXJyb3Vu
ZF9pbl9jb25kaXRpb24oJycuam9pbihyZXN1bHQpLCBtZXNzYWdlLmNvbmRpdGlvbikKKworCiBk
ZWYgYXJndW1lbnRfY29kZXJfaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICBzcGVjaWFsX2Nh
c2VzID0gewogICAgICAgICAnV1RGOjpTdHJpbmcnOiAnIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IicsCkBAIC0zNDUsMTMgKzM1MSwzNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZp
bGUpOgogCiAgICAgcmVzdWx0LmFwcGVuZCgnbmFtZXNwYWNlIFdlYktpdCB7XG5cbicpCiAKLSAg
ICByZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZlJXNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cylcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSkp
Ci0gICAgcmVzdWx0LmFwcGVuZCgne1xuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNo
IChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjolczo6S2luZD4oKSkge1xuJyAlIHJlY2VpdmVyLm5h
bWUpCi0gICAgcmVzdWx0ICs9IFtjYXNlX3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9y
IG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXNdCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgIH1c
blxuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7XG4nKQot
ICAgIHJlc3VsdC5hcHBlbmQoJ31cbicpCisgICAgYXN5bmNfbWVzc2FnZXMgPSBbXQorICAgIHN5
bmNfbWVzc2FnZXMgPSBbXQorICAgIGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgor
ICAgICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBzeW5jX21lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgYXN5bmNfbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCisKKyAgICBpZiBhc3luY19tZXNz
YWdlczoKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJl
Y2VpdmVyLm5hbWUpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQorICAgICAgICByZXN1
bHQuYXBwZW5kKCcgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjolczo6S2luZD4o
KSkge1xuJyAlIHJlY2VpdmVyLm5hbWUpCisgICAgICAgIHJlc3VsdCArPSBbYXN5bmNfY2FzZV9z
dGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpIGZvciBtZXNzYWdlIGluIGFzeW5jX21lc3NhZ2Vz
XQorICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgZGVmYXVsdDpcbicpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICAgICAgYnJlYWs7XG4nKQorICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAg
fVxuXG4nKQorICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
XG4nKQorICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQorCisgICAgaWYgc3luY19tZXNzYWdl
czoKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQorICAgICAgICByZXN1bHQuYXBwZW5kKCdD
b3JlSVBDOjpTeW5jUmVwbHlNb2RlICVzOjpkaWRSZWNlaXZlU3luYyVzTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkp
XG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQorICAgICAgICByZXN1bHQuYXBw
ZW5kKCd7XG4nKQorICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChtZXNzYWdlSUQu
Z2V0PE1lc3NhZ2VzOjolczo6S2luZD4oKSkge1xuJyAlIHJlY2VpdmVyLm5hbWUpCisgICAgICAg
IHJlc3VsdCArPSBbc3luY19jYXNlX3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9yIG1l
c3NhZ2UgaW4gc3luY19tZXNzYWdlc10KKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGRlZmF1
bHQ6XG4nKQorICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIGJyZWFrO1xuJykKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnICAgIH1cblxuJykKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpO1xuJykKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJl
dHVybiBDb3JlSVBDOjpBdXRvbWF0aWNSZXBseTtcbicpCisgICAgICAgIHJlc3VsdC5hcHBlbmQo
J31cbicpCiAKICAgICByZXN1bHQuYXBwZW5kKCdcbn0gLy8gbmFtZXNwYWNlIFdlYktpdFxuJykK
IApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3Qu
cHkgYi9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQppbmRleCA3
NmRiYzg2NTg2YTIzYTdhOTcyNmYzM2Y0ZTI3ZWUzYjQ5MjBiMDNlLi5mNTViOGIyN2Q3MjE0ZDAz
NGQ1ZjJlNGFhYjU4Njc2MWI2NjE5MTg4IDEwMDY0NAotLS0gYS9XZWJLaXQyL1NjcmlwdHMvd2Vi
a2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQorKysgYi9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9t
ZXNzYWdlc191bml0dGVzdC5weQpAQCAtMzEwLDYgKzMxMCw3IEBAIHN0cnVjdCBTZW5kSW50cyA6
IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgVmVjdG9yPHVpbnQ2NF90PiY+IHsKIAogc3RydWN0
IFJ1bkphdmFTY3JpcHRBbGVydCA6IENvcmVJUEM6OkFyZ3VtZW50czI8dWludDY0X3QsIGNvbnN0
IFdURjo6U3RyaW5nJj4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IFJ1bkph
dmFTY3JpcHRBbGVydElEOworICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMCBSZXBseTsK
ICAgICBSdW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV1RGOjpTdHJp
bmcmIG1lc3NhZ2UpCiAgICAgICAgIDogQ29yZUlQQzo6QXJndW1lbnRzMjx1aW50NjRfdCwgY29u
c3QgV1RGOjpTdHJpbmcmPihmcmFtZUlELCBtZXNzYWdlKQogICAgIHsKQEAgLTMxOCw2ICszMTks
NyBAQCBzdHJ1Y3QgUnVuSmF2YVNjcmlwdEFsZXJ0IDogQ29yZUlQQzo6QXJndW1lbnRzMjx1aW50
NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcmPiB7CiAKIHN0cnVjdCBHZXRQbHVnaW5zIDogQ29yZUlQ
Qzo6QXJndW1lbnRzMTxib29sPiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0g
R2V0UGx1Z2luc0lEOworICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxWZWN0b3I8V2Vi
Q29yZTo6UGx1Z2luSW5mbz4mPiBSZXBseTsKICAgICBleHBsaWNpdCBHZXRQbHVnaW5zKGJvb2wg
cmVmcmVzaCkKICAgICAgICAgOiBDb3JlSVBDOjpBcmd1bWVudHMxPGJvb2w+KHJlZnJlc2gpCiAg
ICAgewpAQCAtMzI2LDYgKzMyOCw3IEBAIHN0cnVjdCBHZXRQbHVnaW5zIDogQ29yZUlQQzo6QXJn
dW1lbnRzMTxib29sPiB7CiAKIHN0cnVjdCBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiA6IENv
cmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpTdHJpbmcmPiB7CiAgICAgc3RhdGljIGNvbnN0
IEtpbmQgbWVzc2FnZUlEID0gR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25JRDsKKyAgICB0eXBl
ZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Q29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJj4gUmVw
bHk7CiAgICAgZXhwbGljaXQgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgV1RGOjpT
dHJpbmcmIHBsdWdpblBhdGgpCiAgICAgICAgIDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBX
VEY6OlN0cmluZyY+KHBsdWdpblBhdGgpCiAgICAgewpAQCAtNDE3LDIxICs0MjAsMzQgQEAgdm9p
ZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRAogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRJbnRz
SUQ6CiAgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNl
bmRJbnRzPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpzZW5kSW50cyk7CiAgICAgICAgIHJl
dHVybjsKLSAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnRJRDoK
LSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6UnVuSmF2
YVNjcmlwdEFsZXJ0Pihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpydW5KYXZhU2NyaXB0QWxl
cnQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6R2V0UGx1
Z2luc0lEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdl
OjpHZXRQbHVnaW5zPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpnZXRQbHVnaW5zKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIGNhc2UgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6
OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihhcmd1bWVudHMsIHRoaXMsICZX
ZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik7Ci0gICAgICAgIHJldHVybjsKICAg
ICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbklE
OgogICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRD
cmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6ZGlk
Q3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgICAgICByZXR1cm47CisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKK0NvcmVJUEM6OlN5bmNSZXBseU1vZGUgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciogcmVwbHkpCit7CisgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjpX
ZWJQYWdlOjpLaW5kPigpKSB7CisgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6UnVuSmF2YVNj
cmlwdEFsZXJ0SUQ6CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OlJ1bkphdmFTY3JpcHRBbGVydD4oYXJndW1lbnRzLCByZXBseSwgdGhpcywgJldlYlBh
Z2U6OnJ1bkphdmFTY3JpcHRBbGVydCk7CisgICAgICAgIHJldHVybiBDb3JlSVBDOjpBdXRvbWF0
aWNSZXBseTsKKyAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQbHVnaW5zSUQ6CisgICAg
ICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpbnM+
KGFyZ3VtZW50cywgcmVwbHksIHRoaXMsICZXZWJQYWdlOjpnZXRQbHVnaW5zKTsKKyAgICAgICAg
cmV0dXJuIENvcmVJUEM6OkF1dG9tYXRpY1JlcGx5OworICAgIGNhc2UgTWVzc2FnZXM6OldlYlBh
Z2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uSUQ6CisgICAgICAgIENvcmVJUEM6OmhhbmRs
ZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihh
cmd1bWVudHMsIHJlcGx5LCB0aGlzLCAmV2ViUGFnZTo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24pOworICAgICAgICByZXR1cm4gQ29yZUlQQzo6QXV0b21hdGljUmVwbHk7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIENvcmVJUEM6OkF1dG9tYXRpY1JlcGx5OwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQK
</data>
<flag name="review"
          id="58568"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>