<?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>204442</bug_id>
          
          <creation_ts>2019-11-20 20:40:03 -0800</creation_ts>
          <short_desc>[JSC] Extend MacroAssemblerARM64::load/store for datasize = 16</short_desc>
          <delta_ts>2019-11-20 22:02:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1592281</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-20 20:40:03 -0800</bug_when>
    <thetext>[JSC] Extend MacroAssemblerARM64::load/store for datasize = 16</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592282</commentid>
    <comment_count>1</comment_count>
      <attachid>384026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-20 20:40:27 -0800</bug_when>
    <thetext>Created attachment 384026
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592283</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-20 20:40:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/57366761&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592284</commentid>
    <comment_count>3</comment_count>
      <attachid>384027</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-20 20:43:49 -0800</bug_when>
    <thetext>Created attachment 384027
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592289</commentid>
    <comment_count>4</comment_count>
      <attachid>384029</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-20 21:04:43 -0800</bug_when>
    <thetext>Created attachment 384029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592292</commentid>
    <comment_count>5</comment_count>
      <attachid>384029</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-20 21:19:10 -0800</bug_when>
    <thetext>Comment on attachment 384029
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Our `void load16(const void* address, RegisterID dest)` and `void store16(RegisterID src, const void* address)` do not aware of

/do not aware/are not aware/.

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        the condition that passed register is memoryTempRegister, while `MacroAssemblerARM64::{load,store}` handles it correctly, e.g.

/is memoryTempRegister/can be memoryTempRegister/

&gt; Source/JavaScriptCore/ChangeLog:24
&gt; +        to support 16 so that `or16` implementation looks like almost the same to `or32` etc.

/looks like almost the same to/is similar to/

&gt; Source/JavaScriptCore/assembler/testmasm.cpp:1137
&gt; +    // Just compiling test.
&gt; +    compile([&amp;] (CCallHelpers&amp; jit) {
&gt; +        emitFunctionPrologue(jit);
&gt; +        jit.or16(CCallHelpers::TrustedImm32(42), CCallHelpers::AbsoluteAddress(nullptr));
&gt; +        emitFunctionEpilogue(jit);
&gt; +        jit.ret();
&gt; +    });

How is this test case different than the one immediately above it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592293</commentid>
    <comment_count>6</comment_count>
      <attachid>384029</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-20 21:20:02 -0800</bug_when>
    <thetext>Comment on attachment 384029
Patch

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

&gt;&gt; Source/JavaScriptCore/assembler/testmasm.cpp:1137
&gt;&gt; +    });
&gt; 
&gt; How is this test case different than the one immediately above it?

nullptr is always invalid logical imm in ARM64, so this takes the path this patch is fixing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592295</commentid>
    <comment_count>7</comment_count>
      <attachid>384029</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-20 21:57:13 -0800</bug_when>
    <thetext>Comment on attachment 384029
Patch

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

r=me with fixes.

&gt;&gt;&gt; Source/JavaScriptCore/assembler/testmasm.cpp:1137
&gt;&gt;&gt; +    });
&gt;&gt; 
&gt;&gt; How is this test case different than the one immediately above it?
&gt; 
&gt; nullptr is always invalid logical imm in ARM64, so this takes the path this patch is fixing.

Yusuke told me offline that his intent is to take the !logicalImm.isValid() case in or16.  For that, we need to pass TrustedImm(0), not AbsoluteAddress(nullptr).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592296</commentid>
    <comment_count>8</comment_count>
      <attachid>384029</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-20 21:57:47 -0800</bug_when>
    <thetext>Comment on attachment 384029
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt; +        Our `void load16(const void* address, RegisterID dest)` and `void store16(RegisterID src, const void* address)` do not aware of
&gt; 
&gt; /do not aware/are not aware/.

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt; +        the condition that passed register is memoryTempRegister, while `MacroAssemblerARM64::{load,store}` handles it correctly, e.g.
&gt; 
&gt; /is memoryTempRegister/can be memoryTempRegister/

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:24
&gt;&gt; +        to support 16 so that `or16` implementation looks like almost the same to `or32` etc.
&gt; 
&gt; /looks like almost the same to/is similar to/

Fixed.

&gt;&gt;&gt;&gt; Source/JavaScriptCore/assembler/testmasm.cpp:1137
&gt;&gt;&gt;&gt; +    });
&gt;&gt;&gt; 
&gt;&gt;&gt; How is this test case different than the one immediately above it?
&gt;&gt; 
&gt;&gt; nullptr is always invalid logical imm in ARM64, so this takes the path this patch is fixing.
&gt; 
&gt; Yusuke told me offline that his intent is to take the !logicalImm.isValid() case in or16.  For that, we need to pass TrustedImm(0), not AbsoluteAddress(nullptr).

Nice, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592297</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-20 22:02:57 -0800</bug_when>
    <thetext>Committed r252728: &lt;https://trac.webkit.org/changeset/252728&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384026</attachid>
            <date>2019-11-20 20:40:27 -0800</date>
            <delta_ts>2019-11-20 20:43:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204442-20191120204026.patch</filename>
            <type>text/plain</type>
            <size>6123</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Y2YwMGExMjJkNmRlY2I5OWMzOTkxMzBkODRlOTc5ZjE5NDY3NDY1Li5jZjUzODM4OWNhNjlmN2Q1
ODg2MmE3N2ViM2VkNjJkMDk5NjEwNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0xMS0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEV4dGVuZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkL3N0b3Jl
IGZvciBkYXRhc2l6ZSA9IDE2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ0NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0
Ojpsb2FkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmUpOgorCiAy
MDE5LTExLTIwICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IGxvYWQ8MTY+IG9uIEFSTTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IGRiZmYyZDcxNzYxZmNlZGMx
NmJmM2QxMmM0NTVjNDdlNjRlODI5NzcuLmUzODU1MTA5ZTVmMWM0Zjc0ZTUxODExNTkzMjg1N2M0
ZmU4OGY5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC0xMjU0LDggKzEyNTQsNyBAQCBjbGFzcyBNYWNyb0Fz
c2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7
CiAKICAgICB2b2lkIGxvYWQxNihjb25zdCB2b2lkKiBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewotICAgICAgICBtb3ZlVG9DYWNoZWRSZWcoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwg
Y2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5sZHJoKGRl
c3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgMCk7CisgICAgICAgIGxvYWQ8MTY+KGFkZHJlc3MsIGRl
c3QpOwogICAgIH0KIAogICAgIHZvaWQgbG9hZDE2VW5hbGlnbmVkKEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0xNTY4LDggKzE1NjcsNyBAQCBjbGFzcyBNYWNy
b0Fzc2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVy
PiB7CiAKICAgICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJl
c3MpCiAgICAgewotICAgICAgICBtb3ZlVG9DYWNoZWRSZWcoVHJ1c3RlZEltbVB0cihhZGRyZXNz
KSwgY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdHJo
KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCAwKTsKKyAgICAgICAgc3RvcmU8MTY+KHNyYywgYWRk
cmVzcyk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9yZTE2KFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0
IHZvaWQqIGFkZHJlc3MpCkBAIC00MjIwLDEyICs0MjE4LDEyIEBAIGNsYXNzIE1hY3JvQXNzZW1i
bGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKIAog
ICAgICAgICAgICAgaWYgKGlzSW50PDMyPihhZGRyZXNzRGVsdGEpKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKEFzc2VtYmxlcjo6Y2FuRW5jb2RlU0ltbU9mZnNldChhZGRyZXNzRGVsdGEpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkdXI8ZGF0YXNpemU+KGRlc3QsICBtZW1v
cnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NEZWx0YSk7CisgICAgICAgICAgICAgICAgICAgIGxvYWRV
bnNjYWxlZEltbWVkaWF0ZTxkYXRhc2l6ZT4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzRGVsdGEpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICAgICAgaWYgKEFzc2VtYmxlcjo6Y2FuRW5jb2RlUEltbU9mZnNldDxk
YXRhc2l6ZT4oYWRkcmVzc0RlbHRhKSkgewotICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5sZHI8ZGF0YXNpemU+KGRlc3QsICBtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NEZWx0YSk7
CisgICAgICAgICAgICAgICAgICAgIGxvYWRVbnNpZ25lZEltbWVkaWF0ZTxkYXRhc2l6ZT4oZGVz
dCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNzRGVsdGEpOwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNDIzMyw3ICs0
MjMxLDEwIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNy
b0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKICAgICAgICAgICAgIGlmICgoYWRkcmVzc0FzSW50ICYg
KH5tYXNrSGFsZldvcmQwKSkgPT0gKGN1cnJlbnRSZWdpc3RlckNvbnRlbnRzICYgKH5tYXNrSGFs
ZldvcmQwKSkpIHsKICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZrPDY0PihtZW1vcnlU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3NBc0ludCAmIG1hc2tIYWxmV29yZDAsIDApOwogICAgICAgICAg
ICAgICAgIGNhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcigpLnNldFZhbHVlKHJlaW50ZXJwcmV0X2Nh
c3Q8aW50cHRyX3Q+KGFkZHJlc3MpKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHI8
ZGF0YXNpemU+KGRlc3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsK
KyAgICAgICAgICAgICAgICBpZiBjb25zdGV4cHIgKGRhdGFzaXplID09IDE2KQorICAgICAgICAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHJoPGRhdGFzaXplPihkZXN0LCBtZW1vcnlUZW1wUmVn
aXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp6cik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHI8ZGF0YXNpemU+KGRlc3QsIG1lbW9yeVRlbXBS
ZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTQyNDMsNyArNDI0NCwxMCBAQCBjbGFzcyBNYWNy
b0Fzc2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVy
PiB7CiAgICAgICAgICAgICBjYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXIoKS5pbnZhbGlkYXRlKCk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcigpLnNl
dFZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFkZHJlc3MpKTsKLSAgICAgICAgbV9h
c3NlbWJsZXIubGRyPGRhdGFzaXplPihkZXN0LCBtZW1vcnlUZW1wUmVnaXN0ZXIsIEFSTTY0UmVn
aXN0ZXJzOjp6cik7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoZGF0YXNpemUgPT0gMTYpCisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5sZHJoPGRhdGFzaXplPihkZXN0LCBtZW1vcnlUZW1wUmVnaXN0
ZXIsIEFSTTY0UmVnaXN0ZXJzOjp6cik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmxkcjxkYXRhc2l6ZT4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lz
dGVyczo6enIpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KQEAgLTQyNTcs
MTIgKzQyNjEsMTIgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJBUk02NCA6IHB1YmxpYyBBYnN0cmFj
dE1hY3JvQXNzZW1ibGVyPEFzc2VtYmxlcj4gewogCiAgICAgICAgICAgICBpZiAoaXNJbnQ8MzI+
KGFkZHJlc3NEZWx0YSkpIHsKICAgICAgICAgICAgICAgICBpZiAoQXNzZW1ibGVyOjpjYW5FbmNv
ZGVTSW1tT2Zmc2V0KGFkZHJlc3NEZWx0YSkpIHsKLSAgICAgICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc3R1cjxkYXRhc2l6ZT4oc3JjLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NEZWx0
YSk7CisgICAgICAgICAgICAgICAgICAgIHN0b3JlVW5zY2FsZWRJbW1lZGlhdGU8ZGF0YXNpemU+
KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNzRGVsdGEpOwogICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKEFz
c2VtYmxlcjo6Y2FuRW5jb2RlUEltbU9mZnNldDxkYXRhc2l6ZT4oYWRkcmVzc0RlbHRhKSkgewot
ICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdHI8ZGF0YXNpemU+KHNyYywgbWVtb3J5
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzRGVsdGEpOworICAgICAgICAgICAgICAgICAgICBzdG9yZVVu
c2lnbmVkSW1tZWRpYXRlPGRhdGFzaXplPihzcmMsIG1lbW9yeVRlbXBSZWdpc3RlciwgYWRkcmVz
c0RlbHRhKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KQEAgLTQyNzAsMTQgKzQyNzQsMjAgQEAgY2xhc3MgTWFjcm9Bc3NlbWJs
ZXJBUk02NCA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2VtYmxlcj4gewogICAg
ICAgICAgICAgaWYgKChhZGRyZXNzQXNJbnQgJiAofm1hc2tIYWxmV29yZDApKSA9PSAoY3VycmVu
dFJlZ2lzdGVyQ29udGVudHMgJiAofm1hc2tIYWxmV29yZDApKSkgewogICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLm1vdms8NjQ+KG1lbW9yeVRlbXBSZWdpc3RlciwgYWRkcmVzc0FzSW50ICYg
bWFza0hhbGZXb3JkMCwgMCk7CiAgICAgICAgICAgICAgICAgY2FjaGVkTWVtb3J5VGVtcFJlZ2lz
dGVyKCkuc2V0VmFsdWUocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oYWRkcmVzcykpOwotICAg
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0cjxkYXRhc2l6ZT4oc3JjLCBtZW1vcnlUZW1wUmVn
aXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp6cik7CisgICAgICAgICAgICAgICAgaWYgY29uc3RleHBy
IChkYXRhc2l6ZSA9PSAxNikKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3RyaDxk
YXRhc2l6ZT4oc3JjLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp6cik7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdHI8
ZGF0YXNpemU+KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAg
ICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKICAg
ICAgICAgY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkuc2V0VmFsdWUocmVpbnRlcnByZXRfY2Fz
dDxpbnRwdHJfdD4oYWRkcmVzcykpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdHI8ZGF0YXNpemU+
KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOworICAgICAgICBp
ZiBjb25zdGV4cHIgKGRhdGFzaXplID09IDE2KQorICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3Ry
aDxkYXRhc2l6ZT4oc3JjLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp6cik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0cjxkYXRhc2l6ZT4oc3Jj
LCBtZW1vcnlUZW1wUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp6cik7CiAgICAgfQogCiAgICAg
dGVtcGxhdGUgPGludCBkYXRhU2l6ZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384027</attachid>
            <date>2019-11-20 20:43:49 -0800</date>
            <delta_ts>2019-11-20 21:04:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204442-20191120204349.patch</filename>
            <type>text/plain</type>
            <size>6083</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Y2YwMGExMjJkNmRlY2I5OWMzOTkxMzBkODRlOTc5ZjE5NDY3NDY1Li5jZjUzODM4OWNhNjlmN2Q1
ODg2MmE3N2ViM2VkNjJkMDk5NjEwNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0xMS0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEV4dGVuZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkL3N0b3Jl
IGZvciBkYXRhc2l6ZSA9IDE2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ0NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0
Ojpsb2FkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmUpOgorCiAy
MDE5LTExLTIwICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IGxvYWQ8MTY+IG9uIEFSTTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IGRiZmYyZDcxNzYxZmNlZGMx
NmJmM2QxMmM0NTVjNDdlNjRlODI5NzcuLjNmZTM1NGVlNzUxYzIyNDI1OTNjYTA5NTkyOGY3OTkx
NTEzNzdhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC0xMjU0LDggKzEyNTQsNyBAQCBjbGFzcyBNYWNyb0Fz
c2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7
CiAKICAgICB2b2lkIGxvYWQxNihjb25zdCB2b2lkKiBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewotICAgICAgICBtb3ZlVG9DYWNoZWRSZWcoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwg
Y2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5sZHJoKGRl
c3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgMCk7CisgICAgICAgIGxvYWQ8MTY+KGFkZHJlc3MsIGRl
c3QpOwogICAgIH0KIAogICAgIHZvaWQgbG9hZDE2VW5hbGlnbmVkKEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0xNTY4LDggKzE1NjcsNyBAQCBjbGFzcyBNYWNy
b0Fzc2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVy
PiB7CiAKICAgICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJl
c3MpCiAgICAgewotICAgICAgICBtb3ZlVG9DYWNoZWRSZWcoVHJ1c3RlZEltbVB0cihhZGRyZXNz
KSwgY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdHJo
KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCAwKTsKKyAgICAgICAgc3RvcmU8MTY+KHNyYywgYWRk
cmVzcyk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9yZTE2KFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0
IHZvaWQqIGFkZHJlc3MpCkBAIC00MjIwLDEyICs0MjE4LDEyIEBAIGNsYXNzIE1hY3JvQXNzZW1i
bGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKIAog
ICAgICAgICAgICAgaWYgKGlzSW50PDMyPihhZGRyZXNzRGVsdGEpKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKEFzc2VtYmxlcjo6Y2FuRW5jb2RlU0ltbU9mZnNldChhZGRyZXNzRGVsdGEpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkdXI8ZGF0YXNpemU+KGRlc3QsICBtZW1v
cnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NEZWx0YSk7CisgICAgICAgICAgICAgICAgICAgIGxvYWRV
bnNjYWxlZEltbWVkaWF0ZTxkYXRhc2l6ZT4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzRGVsdGEpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICAgICAgaWYgKEFzc2VtYmxlcjo6Y2FuRW5jb2RlUEltbU9mZnNldDxk
YXRhc2l6ZT4oYWRkcmVzc0RlbHRhKSkgewotICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5sZHI8ZGF0YXNpemU+KGRlc3QsICBtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NEZWx0YSk7
CisgICAgICAgICAgICAgICAgICAgIGxvYWRVbnNpZ25lZEltbWVkaWF0ZTxkYXRhc2l6ZT4oZGVz
dCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNzRGVsdGEpOwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNDIzMyw3ICs0
MjMxLDEwIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNy
b0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKICAgICAgICAgICAgIGlmICgoYWRkcmVzc0FzSW50ICYg
KH5tYXNrSGFsZldvcmQwKSkgPT0gKGN1cnJlbnRSZWdpc3RlckNvbnRlbnRzICYgKH5tYXNrSGFs
ZldvcmQwKSkpIHsKICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZrPDY0PihtZW1vcnlU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3NBc0ludCAmIG1hc2tIYWxmV29yZDAsIDApOwogICAgICAgICAg
ICAgICAgIGNhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcigpLnNldFZhbHVlKHJlaW50ZXJwcmV0X2Nh
c3Q8aW50cHRyX3Q+KGFkZHJlc3MpKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHI8
ZGF0YXNpemU+KGRlc3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsK
KyAgICAgICAgICAgICAgICBpZiBjb25zdGV4cHIgKGRhdGFzaXplID09IDE2KQorICAgICAgICAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHJoKGRlc3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJN
NjRSZWdpc3RlcnM6OnpyKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmxkcjxkYXRhc2l6ZT4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBB
Uk02NFJlZ2lzdGVyczo6enIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtNDI0Myw3ICs0MjQ0LDEwIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVy
QVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKICAgICAg
ICAgICAgIGNhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcigpLmludmFsaWRhdGUoKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkuc2V0VmFsdWUocmVp
bnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oYWRkcmVzcykpOwotICAgICAgICBtX2Fzc2VtYmxlci5s
ZHI8ZGF0YXNpemU+KGRlc3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6Onpy
KTsKKyAgICAgICAgaWYgY29uc3RleHByIChkYXRhc2l6ZSA9PSAxNikKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmxkcmgoZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6
enIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHI8ZGF0YXNpemU+
KGRlc3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CkBAIC00MjU3LDEyICs0MjYxLDEyIEBAIGNsYXNz
IE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3Nl
bWJsZXI+IHsKIAogICAgICAgICAgICAgaWYgKGlzSW50PDMyPihhZGRyZXNzRGVsdGEpKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKEFzc2VtYmxlcjo6Y2FuRW5jb2RlU0ltbU9mZnNldChhZGRyZXNz
RGVsdGEpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0dXI8ZGF0YXNpemU+
KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNzRGVsdGEpOworICAgICAgICAgICAgICAg
ICAgICBzdG9yZVVuc2NhbGVkSW1tZWRpYXRlPGRhdGFzaXplPihzcmMsIG1lbW9yeVRlbXBSZWdp
c3RlciwgYWRkcmVzc0RlbHRhKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmIChBc3NlbWJsZXI6OmNhbkVuY29kZVBJ
bW1PZmZzZXQ8ZGF0YXNpemU+KGFkZHJlc3NEZWx0YSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc3RyPGRhdGFzaXplPihzcmMsIG1lbW9yeVRlbXBSZWdpc3RlciwgYWRkcmVz
c0RlbHRhKTsKKyAgICAgICAgICAgICAgICAgICAgc3RvcmVVbnNpZ25lZEltbWVkaWF0ZTxkYXRh
c2l6ZT4oc3JjLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NEZWx0YSk7CiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC00
MjcwLDE0ICs0Mjc0LDIwIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJz
dHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKICAgICAgICAgICAgIGlmICgoYWRkcmVz
c0FzSW50ICYgKH5tYXNrSGFsZldvcmQwKSkgPT0gKGN1cnJlbnRSZWdpc3RlckNvbnRlbnRzICYg
KH5tYXNrSGFsZldvcmQwKSkpIHsKICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZrPDY0
PihtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NBc0ludCAmIG1hc2tIYWxmV29yZDAsIDApOwog
ICAgICAgICAgICAgICAgIGNhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcigpLnNldFZhbHVlKHJlaW50
ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFkZHJlc3MpKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zdHI8ZGF0YXNpemU+KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVy
czo6enIpOworICAgICAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAoZGF0YXNpemUgPT0gMTYpCisg
ICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0cmgoc3JjLCBtZW1vcnlUZW1wUmVnaXN0
ZXIsIEFSTTY0UmVnaXN0ZXJzOjp6cik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5zdHI8ZGF0YXNpemU+KHNyYywgbWVtb3J5VGVtcFJlZ2lz
dGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNz
KSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKICAgICAgICAgY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVy
KCkuc2V0VmFsdWUocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oYWRkcmVzcykpOwotICAgICAg
ICBtX2Fzc2VtYmxlci5zdHI8ZGF0YXNpemU+KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02
NFJlZ2lzdGVyczo6enIpOworICAgICAgICBpZiBjb25zdGV4cHIgKGRhdGFzaXplID09IDE2KQor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3RyaChzcmMsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJN
NjRSZWdpc3RlcnM6OnpyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9hc3NlbWJsZXIu
c3RyPGRhdGFzaXplPihzcmMsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6Onpy
KTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8aW50IGRhdGFTaXplPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384029</attachid>
            <date>2019-11-20 21:04:43 -0800</date>
            <delta_ts>2019-11-20 21:57:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204442-20191120210442.patch</filename>
            <type>text/plain</type>
            <size>8305</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Y2YwMGExMjJkNmRlY2I5OWMzOTkxMzBkODRlOTc5ZjE5NDY3NDY1Li42NDFhZWRiODkwYWVjYTgw
NGM1M2EyZjY3OTZkZjUxZjE1ZTIxOTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0xMS0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEV4dGVuZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkL3N0b3Jl
IGZvciBkYXRhc2l6ZSA9IDE2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ0NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MzY2NzYxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE91ciBgdm9pZCBs
b2FkMTYoY29uc3Qgdm9pZCogYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KWAgYW5kIGB2b2lkIHN0
b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3MpYCBkbyBub3QgYXdhcmUg
b2YKKyAgICAgICAgdGhlIGNvbmRpdGlvbiB0aGF0IHBhc3NlZCByZWdpc3RlciBpcyBtZW1vcnlU
ZW1wUmVnaXN0ZXIsIHdoaWxlIGBNYWNyb0Fzc2VtYmxlckFSTTY0Ojp7bG9hZCxzdG9yZX1gIGhh
bmRsZXMgaXQgY29ycmVjdGx5LCBlLmcuCisgICAgICAgIGBsb2FkYCBpbnZhbGlkYXRlcyBgY2Fj
aGVkTWVtb3J5VGVtcFJlZ2lzdGVyYCBpZiBkZXN0aW5hdGlvbiByZWdpc3RlciBpcyBtZW1vcnlU
ZW1wUmVnaXN0ZXIuIEFzIGEgcmVzdWx0LCB3aGVuIHdlIGFyZSBlbWl0dGluZworICAgICAgICBg
b3IxNihUcnVzdGVkSW1tMzIgaW1tLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcylgIHdpdGggYWRk
cmVzcyB3aGVyZSB0aGUgYWRkcmVzcydzIHZhbHVlIGRvZXMgbm90IGZpdCBpbiBpbW0sIHRoZSBn
ZW5lcmF0ZWQgY29kZQorICAgICAgICBpcyByZXVzaW5nIG1lbW9yeVRlbXBSZWdpc3RlciBpbmNv
cnJlY3RseS4KKworICAgICAgICAgICAgMHhlZGY4ZDRmYjQ6IG1vdiAgICB4MTcsICMweDdhZjAK
KyAgICAgICAgICAgIDB4ZWRmOGQ0ZmI4OiBtb3ZrICAgeDE3LCAjMHhkNWEsIGxzbCAjMTYKKyAg
ICAgICAgICAgIDB4ZWRmOGQ0ZmJjOiBtb3ZrICAgeDE3LCAjMHgxLCBsc2wgIzMyICAgICAgICAv
LyBDb25zdHJ1Y3QgaW1tIHJlZ2lzdGVyIG9uIHgxNy4KKyAgICAgICAgICAgIDB4ZWRmOGQ0ZmMw
OiBsZHJoICAgdzE3LCBbeDE3XSAgICAgICAgICAgICAgICAvLyBMb2FkIGhhbGYgd29yZCBmcm9t
IHgxNyB0byB3MTcgKHdlIHNob3VsZCBpbnZhbGlkYXRlIHgxNyBtZW1vcnlUZW1wUmVnaXN0ZXIg
aGVyZSkuCisgICAgICAgICAgICAweGVkZjhkNGZjNDogbW92ICAgIHcxNiwgIzB4MWIKKyAgICAg
ICAgICAgIDB4ZWRmOGQ0ZmM4OiBvcnIgICAgdzE2LCB3MTcsIHcxNgorICAgICAgICAgICAgMHhl
ZGY4ZDRmY2M6IHN0cmggICB3MTYsIFt4MTddICAgICAgICAgICAgICAgIC8vIHgxNyBtZW1vcnlU
ZW1wUmVnaXN0ZXIgaXMgcmV1c2VkIHdoaWxlIGl0cyBjb250ZW50IGlzIGludmFsaWQuCisKKyAg
ICAgICAgVGhlIHByb2JsZW0gaXMgdGhhdCBgbG9hZGAgYW5kIGBzdG9yZWAgZnVuY3Rpb25zIGFy
ZSBub3Qgc3VwcG9ydGluZyBkYXRhc2l6ZSA9IDE2IGNhc2UuIFRoaXMgcGF0Y2ggZXh0ZW5kcyBg
TWFjcm9Bc3NlbWJsZXJBUk02NDo6e2xvYWQsc3RvcmV9YAorICAgICAgICB0byBzdXBwb3J0IDE2
IHNvIHRoYXQgYG9yMTZgIGltcGxlbWVudGF0aW9uIGxvb2tzIGxpa2UgYWxtb3N0IHRoZSBzYW1l
IHRvIGBvcjMyYCBldGMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02
NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkMTYpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZTE2KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6bG9hZCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
NjQ6OnN0b3JlKToKKyAgICAgICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAo
SlNDOjp0ZXN0T3JJbW1NZW0pOgorCiAyMDE5LTExLTIwICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jp
c3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGxvYWQ8MTY+IG9uIEFSTTY0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5o
CmluZGV4IGRiZmYyZDcxNzYxZmNlZGMxNmJmM2QxMmM0NTVjNDdlNjRlODI5NzcuLjNmZTM1NGVl
NzUxYzIyNDI1OTNjYTA5NTkyOGY3OTkxNTEzNzdhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC0xMjU0LDgg
KzEyNTQsNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0TWFj
cm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAKICAgICB2b2lkIGxvYWQxNihjb25zdCB2b2lkKiBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtb3ZlVG9DYWNoZWRSZWco
VHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkpOwotICAg
ICAgICBtX2Fzc2VtYmxlci5sZHJoKGRlc3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgMCk7CisgICAg
ICAgIGxvYWQ8MTY+KGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIAogICAgIHZvaWQgbG9hZDE2VW5h
bGlnbmVkKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0xNTY4
LDggKzE1NjcsNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0
TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAKICAgICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJ
RCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewotICAgICAgICBtb3ZlVG9DYWNoZWRS
ZWcoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkpOwot
ICAgICAgICBtX2Fzc2VtYmxlci5zdHJoKHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCAwKTsKKyAg
ICAgICAgc3RvcmU8MTY+KHNyYywgYWRkcmVzcyk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9yZTE2
KFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0IHZvaWQqIGFkZHJlc3MpCkBAIC00MjIwLDEyICs0MjE4
LDEyIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fz
c2VtYmxlcjxBc3NlbWJsZXI+IHsKIAogICAgICAgICAgICAgaWYgKGlzSW50PDMyPihhZGRyZXNz
RGVsdGEpKSB7CiAgICAgICAgICAgICAgICAgaWYgKEFzc2VtYmxlcjo6Y2FuRW5jb2RlU0ltbU9m
ZnNldChhZGRyZXNzRGVsdGEpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxk
dXI8ZGF0YXNpemU+KGRlc3QsICBtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NEZWx0YSk7Cisg
ICAgICAgICAgICAgICAgICAgIGxvYWRVbnNjYWxlZEltbWVkaWF0ZTxkYXRhc2l6ZT4oZGVzdCwg
bWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNzRGVsdGEpOwogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKEFzc2VtYmxl
cjo6Y2FuRW5jb2RlUEltbU9mZnNldDxkYXRhc2l6ZT4oYWRkcmVzc0RlbHRhKSkgewotICAgICAg
ICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHI8ZGF0YXNpemU+KGRlc3QsICBtZW1vcnlUZW1w
UmVnaXN0ZXIsIGFkZHJlc3NEZWx0YSk7CisgICAgICAgICAgICAgICAgICAgIGxvYWRVbnNpZ25l
ZEltbWVkaWF0ZTxkYXRhc2l6ZT4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNzRGVs
dGEpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQpAQCAtNDIzMyw3ICs0MjMxLDEwIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJN
NjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKICAgICAgICAg
ICAgIGlmICgoYWRkcmVzc0FzSW50ICYgKH5tYXNrSGFsZldvcmQwKSkgPT0gKGN1cnJlbnRSZWdp
c3RlckNvbnRlbnRzICYgKH5tYXNrSGFsZldvcmQwKSkpIHsKICAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5tb3ZrPDY0PihtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NBc0ludCAmIG1hc2tI
YWxmV29yZDAsIDApOwogICAgICAgICAgICAgICAgIGNhY2hlZE1lbW9yeVRlbXBSZWdpc3Rlcigp
LnNldFZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFkZHJlc3MpKTsKLSAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5sZHI8ZGF0YXNpemU+KGRlc3QsIG1lbW9yeVRlbXBSZWdpc3Rl
ciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsKKyAgICAgICAgICAgICAgICBpZiBjb25zdGV4cHIgKGRh
dGFzaXplID09IDE2KQorICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHJoKGRlc3Qs
IG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkcjxkYXRhc2l6ZT4oZGVz
dCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNDI0Myw3ICs0MjQ0LDEw
IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2Vt
YmxlcjxBc3NlbWJsZXI+IHsKICAgICAgICAgICAgIGNhY2hlZE1lbW9yeVRlbXBSZWdpc3Rlcigp
LmludmFsaWRhdGUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2FjaGVkTWVtb3J5VGVt
cFJlZ2lzdGVyKCkuc2V0VmFsdWUocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oYWRkcmVzcykp
OwotICAgICAgICBtX2Fzc2VtYmxlci5sZHI8ZGF0YXNpemU+KGRlc3QsIG1lbW9yeVRlbXBSZWdp
c3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsKKyAgICAgICAgaWYgY29uc3RleHByIChkYXRhc2l6
ZSA9PSAxNikKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkcmgoZGVzdCwgbWVtb3J5VGVtcFJl
Z2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5sZHI8ZGF0YXNpemU+KGRlc3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRS
ZWdpc3RlcnM6OnpyKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CkBAIC00
MjU3LDEyICs0MjYxLDEyIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJz
dHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKIAogICAgICAgICAgICAgaWYgKGlzSW50
PDMyPihhZGRyZXNzRGVsdGEpKSB7CiAgICAgICAgICAgICAgICAgaWYgKEFzc2VtYmxlcjo6Y2Fu
RW5jb2RlU0ltbU9mZnNldChhZGRyZXNzRGVsdGEpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnN0dXI8ZGF0YXNpemU+KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNz
RGVsdGEpOworICAgICAgICAgICAgICAgICAgICBzdG9yZVVuc2NhbGVkSW1tZWRpYXRlPGRhdGFz
aXplPihzcmMsIG1lbW9yeVRlbXBSZWdpc3RlciwgYWRkcmVzc0RlbHRhKTsKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlm
IChBc3NlbWJsZXI6OmNhbkVuY29kZVBJbW1PZmZzZXQ8ZGF0YXNpemU+KGFkZHJlc3NEZWx0YSkp
IHsKLSAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPGRhdGFzaXplPihzcmMsIG1l
bW9yeVRlbXBSZWdpc3RlciwgYWRkcmVzc0RlbHRhKTsKKyAgICAgICAgICAgICAgICAgICAgc3Rv
cmVVbnNpZ25lZEltbWVkaWF0ZTxkYXRhc2l6ZT4oc3JjLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3NEZWx0YSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CkBAIC00MjcwLDE0ICs0Mjc0LDIwIEBAIGNsYXNzIE1hY3JvQXNz
ZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsK
ICAgICAgICAgICAgIGlmICgoYWRkcmVzc0FzSW50ICYgKH5tYXNrSGFsZldvcmQwKSkgPT0gKGN1
cnJlbnRSZWdpc3RlckNvbnRlbnRzICYgKH5tYXNrSGFsZldvcmQwKSkpIHsKICAgICAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5tb3ZrPDY0PihtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3NBc0lu
dCAmIG1hc2tIYWxmV29yZDAsIDApOwogICAgICAgICAgICAgICAgIGNhY2hlZE1lbW9yeVRlbXBS
ZWdpc3RlcigpLnNldFZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFkZHJlc3MpKTsK
LSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdHI8ZGF0YXNpemU+KHNyYywgbWVtb3J5VGVt
cFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOworICAgICAgICAgICAgICAgIGlmIGNvbnN0
ZXhwciAoZGF0YXNpemUgPT0gMTYpCisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0
cmgoc3JjLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp6cik7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdHI8ZGF0YXNp
emU+KHNyYywgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIG1v
dmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKICAgICAgICAg
Y2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkuc2V0VmFsdWUocmVpbnRlcnByZXRfY2FzdDxpbnRw
dHJfdD4oYWRkcmVzcykpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdHI8ZGF0YXNpemU+KHNyYywg
bWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOworICAgICAgICBpZiBjb25z
dGV4cHIgKGRhdGFzaXplID09IDE2KQorICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3RyaChzcmMs
IG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPGRhdGFzaXplPihzcmMsIG1lbW9yeVRlbXBSZWdp
c3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8aW50IGRh
dGFTaXplPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0
bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApp
bmRleCA1OWJiYzI3N2ZhZGNkMjRjZmNmNjM0Y2M3NmY4ZDcyZDBkZDhmM2M0Li5mZmQxYzhhMTQ1
NTJlMjEwYTU5MTkwN2NjNTJiYTZjNzQwNDczM2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMTEyNyw2ICsxMTI3LDE0IEBAIHZvaWQgdGVz
dE9ySW1tTWVtKCkKICAgICB9KTsKICAgICBpbnZva2U8dm9pZD4ob3IxNik7CiAgICAgQ0hFQ0tf
RVEobWVtb3J5TG9jYXRpb24sIDB4MTIzNDEyMzQgfCA0Mik7CisKKyAgICAvLyBKdXN0IGNvbXBp
bGluZyB0ZXN0LgorICAgIGNvbXBpbGUoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAg
ICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworICAgICAgICBqaXQub3IxNihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMig0MiksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG51bGxw
dHIpKTsKKyAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgaml0LnJl
dCgpOworICAgIH0pOwogfQogCiB2b2lkIHRlc3RCeXRlU3dhcCgpCg==
</data>
<flag name="review"
          id="399815"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>