<?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>191776</bug_id>
          
          <creation_ts>2018-11-16 14:38:47 -0800</creation_ts>
          <short_desc>Creating a wasm memory that is bigger than the ArrayBuffer limit but smaller than the spec limit should throw OOME not RangeError</short_desc>
          <delta_ts>2018-11-21 17:51:44 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1479638</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-11-16 14:38:47 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480822</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-11-21 12:48:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/46152851&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480828</commentid>
    <comment_count>2</comment_count>
      <attachid>355436</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-11-21 13:36:45 -0800</bug_when>
    <thetext>Created attachment 355436
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480833</commentid>
    <comment_count>3</comment_count>
      <attachid>355436</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-11-21 14:22:31 -0800</bug_when>
    <thetext>Comment on attachment 355436
proposed patch.

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

&gt; JSTests/wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:88
&gt; +var exception;
&gt; +try {
&gt; +    var module = new WasmModuleBuilder();
&gt; +    module.addMemory(32768);
&gt; +    module.instantiate();
&gt; +} catch (e) {
&gt; +    exception = e;
&gt; +}
&gt; +
&gt; +if (exception != &quot;Error: Out of memory&quot;) {
&gt; +    print(exception);
&gt; +    throw &quot;FAILED&quot;;
&gt; +}

Why not just write this as a wasm test so you&apos;re not copying part of the module builder?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480836</commentid>
    <comment_count>4</comment_count>
      <attachid>355436</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-11-21 14:36:34 -0800</bug_when>
    <thetext>Comment on attachment 355436
proposed patch.

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

Thanks for the review.

&gt;&gt; JSTests/wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:88
&gt;&gt; +}
&gt; 
&gt; Why not just write this as a wasm test so you&apos;re not copying part of the module builder?

This test is a cleaned up version of one provided by an external contributor.  I rather keep it close to its original form.

Also, this &quot;Out of memory&quot; behavior is not required (though allowed) by the WASM spec: it is an artifact of our implementation that does not allow ArrayBuffers to be greater than MAX_ARRAY_BUFFER_SIZE in size.  The bug is that we were previously throwing a RangeError or crashing on a RELEASE_ASSERT.  This patch fixes it to throw an OOME instead.  Since this is not spec required behavior, I don&apos;t think it&apos;s right to put it in the wasm/spec-tests directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480839</commentid>
    <comment_count>5</comment_count>
      <attachid>355436</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-21 15:04:40 -0800</bug_when>
    <thetext>Comment on attachment 355436
proposed patch.

Attachment 355436 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/10102730

New failing tests:
stress/big-wasm-memory-grow-no-max.js.ftl-eager-no-cjit
stress/big-wasm-memory.js.ftl-eager
stress/big-wasm-memory-grow-no-max.js.no-cjit-validate-phases
stress/big-wasm-memory-grow.js.dfg-eager
stress/big-wasm-memory-grow.js.no-cjit-collect-continuously
stress/big-wasm-memory.js.ftl-eager-no-cjit-b3o1
stress/big-wasm-memory-grow.js.no-cjit-validate-phases
stress/big-wasm-memory.js.ftl-no-cjit-small-pool
stress/big-wasm-memory-grow-no-max.js.ftl-eager-no-cjit-b3o1
stress/big-wasm-memory-grow.js.default
stress/big-wasm-memory-grow-no-max.js.ftl-eager
stress/big-wasm-memory-grow-no-max.js.no-ftl
stress/big-wasm-memory-grow-no-max.js.default
stress/big-wasm-memory-grow-no-max.js.dfg-eager-no-cjit-validate
stress/big-wasm-memory-grow.js.ftl-no-cjit-small-pool
stress/big-wasm-memory-grow.js.ftl-eager
stress/big-wasm-memory-grow.js.ftl-no-cjit-validate-sampling-profiler
stress/big-wasm-memory.js.ftl-no-cjit-no-inline-validate
stress/big-wasm-memory.js.ftl-no-cjit-validate-sampling-profiler
stress/big-wasm-memory-grow-no-max.js.no-llint
stress/big-wasm-memory-grow.js.ftl-no-cjit-no-inline-validate
stress/big-wasm-memory.js.default
stress/big-wasm-memory.js.dfg-eager-no-cjit-validate
stress/big-wasm-memory-grow.js.no-ftl
stress/big-wasm-memory-grow-no-max.js.ftl-no-cjit-no-inline-validate
stress/big-wasm-memory.js.no-llint
stress/big-wasm-memory.js.ftl-eager-no-cjit
stress/big-wasm-memory-grow.js.ftl-no-cjit-no-put-stack-validate
stress/big-wasm-memory.js.no-cjit-validate-phases
stress/big-wasm-memory-grow-no-max.js.dfg-eager
stress/big-wasm-memory-grow.js.dfg-eager-no-cjit-validate
stress/big-wasm-memory.js.no-cjit-collect-continuously
stress/big-wasm-memory-grow.js.dfg-maximal-flush-validate-no-cjit
stress/big-wasm-memory-grow.js.no-llint
stress/big-wasm-memory.js.ftl-no-cjit-b3o1
stress/big-wasm-memory.js.dfg-maximal-flush-validate-no-cjit
stress/big-wasm-memory.js.ftl-no-cjit-no-put-stack-validate
stress/big-wasm-memory-grow-no-max.js.dfg-maximal-flush-validate-no-cjit
stress/big-wasm-memory-grow.js.ftl-no-cjit-b3o1
stress/big-wasm-memory-grow-no-max.js.ftl-no-cjit-small-pool
stress/big-wasm-memory-grow.js.ftl-eager-no-cjit-b3o1
stress/big-wasm-memory.js.dfg-eager
stress/big-wasm-memory-grow-no-max.js.no-cjit-collect-continuously
stress/big-wasm-memory-grow-no-max.js.ftl-no-cjit-validate-sampling-profiler
stress/big-wasm-memory-grow-no-max.js.ftl-no-cjit-no-put-stack-validate
stress/big-wasm-memory-grow-no-max.js.ftl-no-cjit-b3o1
stress/big-wasm-memory.js.no-ftl
stress/big-wasm-memory-grow.js.ftl-eager-no-cjit
apiTests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480848</commentid>
    <comment_count>6</comment_count>
      <attachid>355442</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-11-21 15:56:50 -0800</bug_when>
    <thetext>Created attachment 355442
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480849</commentid>
    <comment_count>7</comment_count>
      <attachid>355443</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-11-21 15:58:05 -0800</bug_when>
    <thetext>Created attachment 355443
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480864</commentid>
    <comment_count>8</comment_count>
      <attachid>355443</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-21 17:51:43 -0800</bug_when>
    <thetext>Comment on attachment 355443
patch for landing.

Clearing flags on attachment: 355443

Committed r238433: &lt;https://trac.webkit.org/changeset/238433&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480865</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-21 17:51:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355436</attachid>
            <date>2018-11-21 13:36:45 -0800</date>
            <delta_ts>2018-11-21 15:56:50 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-191776.patch</filename>
            <type>text/plain</type>
            <size>8800</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzg0MjgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI2IEBACisyMDE4LTExLTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBDcmVhdGluZyBhIHdhc20gbWVtb3J5IHRoYXQgaXMgYmlnZ2VyIHRoYW4g
dGhlIEFycmF5QnVmZmVyIGxpbWl0IGJ1dCBzbWFsbGVyIHRoYW4gdGhlIHNwZWMgbGltaXQgc2hv
dWxkIHRocm93IE9PTUUgbm90IFJhbmdlRXJyb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2
MTUyODUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2FzbS9yZWdyZXNzL3dhc20tbWVtb3J5LXJlcXVlc3RlZC1tb3JlLXRoYW4tTUFYX0FSUkFZ
X0JVRkZFUl9TSVpFLTIuanM6IEFkZGVkLgorICAgICAgICAoQmluYXJ5LnByb3RvdHlwZS5lbWl0
X3U4KToKKyAgICAgICAgKEJpbmFyeS5wcm90b3R5cGUuZW1pdF91MzJ2KToKKyAgICAgICAgKEJp
bmFyeS5wcm90b3R5cGUuZW1pdF9oZWFkZXIpOgorICAgICAgICAoQmluYXJ5LnByb3RvdHlwZS5l
bWl0X3NlY3Rpb24pOgorICAgICAgICAoQmluYXJ5KToKKyAgICAgICAgKFdhc21Nb2R1bGVCdWls
ZGVyKToKKyAgICAgICAgKFdhc21Nb2R1bGVCdWlsZGVyLnByb3RvdHlwZS5hZGRNZW1vcnkpOgor
ICAgICAgICAoV2FzbU1vZHVsZUJ1aWxkZXIucHJvdG90eXBlLnRvQXJyYXkpOgorICAgICAgICAo
V2FzbU1vZHVsZUJ1aWxkZXIucHJvdG90eXBlLnRvQnVmZmVyKToKKyAgICAgICAgKFdhc21Nb2R1
bGVCdWlsZGVyLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6CisgICAgICAgIChjYXRjaCk6CisgICAg
ICAgICogd2FzbS9yZWdyZXNzL3dhc20tbWVtb3J5LXJlcXVlc3RlZC1tb3JlLXRoYW4tTUFYX0FS
UkFZX0JVRkZFUl9TSVpFLmpzOiBBZGRlZC4KKyAgICAgICAgKGNhdGNoKToKKwogMjAxOC0xMS0y
MSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0g
SlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGggc2hvdWxkIHRocm93IHdoZW4gbGVuZ3RoIGlzIGdy
ZWF0ZXIgdGhhbiBKU0JpZ0ludDo6bWF4TGVuZ3RoCkluZGV4OiBKU1Rlc3RzL3dhc20vcmVncmVz
cy93YXNtLW1lbW9yeS1yZXF1ZXN0ZWQtbW9yZS10aGFuLU1BWF9BUlJBWV9CVUZGRVJfU0laRS0y
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvd2FzbS9yZWdyZXNzL3dhc20tbWVtb3J5LXJlcXVl
c3RlZC1tb3JlLXRoYW4tTUFYX0FSUkFZX0JVRkZFUl9TSVpFLTIuanMJKG5vbmV4aXN0ZW50KQor
KysgSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvd2FzbS1tZW1vcnktcmVxdWVzdGVkLW1vcmUtdGhhbi1N
QVhfQVJSQVlfQlVGRkVSX1NJWkUtMi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg4IEBA
Cit2YXIga1dhc21IMCA9IDA7Cit2YXIga1dhc21IMSA9IDB4NjE7Cit2YXIga1dhc21IMiA9IDB4
NzM7Cit2YXIga1dhc21IMyA9IDB4NmQ7Cit2YXIga1dhc21WMCA9IDB4MTsKK3ZhciBrV2FzbVYx
ID0gMDsKK3ZhciBrV2FzbVYyID0gMDsKK3ZhciBrV2FzbVYzID0gMDsKK2xldCBrTWVtb3J5U2Vj
dGlvbkNvZGUgPSA1OworCitjbGFzcyBCaW5hcnkgZXh0ZW5kcyBBcnJheSB7CisgICAgZW1pdF91
OCh2YWwpIHsKKyAgICAgICAgdGhpcy5wdXNoKHZhbCk7CisgICAgfQorICAgIGVtaXRfdTMydih2
YWwpIHsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGxldCB2ID0gdmFsICYg
MHhmZjsKKyAgICAgICAgICAgIHZhbCA9IHZhbCA+Pj4gNzsKKyAgICAgICAgICAgIGlmICh2YWwg
PT0gMCkgeworICAgICAgICAgICAgICAgIHRoaXMucHVzaCh2KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMucHVzaCh2IHwgMHg4MCk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBlbWl0X2hlYWRlcigpIHsKKyAgICAgICAgdGhpcy5wdXNo
KGtXYXNtSDAsIGtXYXNtSDEsIGtXYXNtSDIsIGtXYXNtSDMsIGtXYXNtVjAsIGtXYXNtVjEsIGtX
YXNtVjIsIGtXYXNtVjMpOworICAgIH0KKyAgICBlbWl0X3NlY3Rpb24oc2VjdGlvbl9jb2RlLCBj
b250ZW50X2dlbmVyYXRvcikgeworICAgICAgICB0aGlzLmVtaXRfdTgoc2VjdGlvbl9jb2RlKTsK
KyAgICAgICAgY29uc3Qgc2VjdGlvbiA9IG5ldyBCaW5hcnkoKTsKKyAgICAgICAgY29udGVudF9n
ZW5lcmF0b3Ioc2VjdGlvbik7CisgICAgICAgIHRoaXMuZW1pdF91MzJ2KHNlY3Rpb24ubGVuZ3Ro
KTsKKyAgICAgICAgZm9yIChsZXQgYiBvZiBzZWN0aW9uKQorICAgICAgICAgICAgdGhpcy5wdXNo
KGIpOworICAgIH0KK30KKworY2xhc3MgV2FzbU1vZHVsZUJ1aWxkZXIgeworICAgIGNvbnN0cnVj
dG9yKCkgeyB9CisgICAgYWRkTWVtb3J5KG1pbikgeworICAgICAgICB0aGlzLm1lbW9yeSA9IHsg
bWluOiBtaW4gfTsKKyAgICB9CisgICAgdG9BcnJheSgpIHsKKyAgICAgICAgbGV0IGJpbmFyeSA9
IG5ldyBCaW5hcnkoKTsKKyAgICAgICAgbGV0IHdhc20gPSB0aGlzOworICAgICAgICBiaW5hcnku
ZW1pdF9oZWFkZXIoKTsKKyAgICAgICAgYmluYXJ5LmVtaXRfc2VjdGlvbihrTWVtb3J5U2VjdGlv
bkNvZGUsIHNlY3Rpb24gPT4geworICAgICAgICAgICAgc2VjdGlvbi5lbWl0X3U4KDEpOworICAg
ICAgICAgICAgY29uc3QgaXNfc2hhcmVkID0gd2FzbS5tZW1vcnkuc2hhcmVkICE9PSB1bmRlZmlu
ZWQ7CisgICAgICAgICAgICBpZiAoaXNfc2hhcmVkKSB7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIHNlY3Rpb24uZW1pdF91OCgpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgc2VjdGlvbi5lbWl0X3UzMnYod2FzbS5tZW1vcnkubWluKTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIHJldHVybiBiaW5hcnk7CisgICAgfQorICAgIHRvQnVmZmVyKCkgeworICAgICAgICBs
ZXQgYnl0ZXMgPSB0aGlzLnRvQXJyYXkoKTsKKyAgICAgICAgbGV0IGJ1ZmZlciA9IG5ldyBBcnJh
eUJ1ZmZlcihieXRlcy5sZW5ndGgpOworICAgICAgICBsZXQgdmlldyA9IG5ldyBVaW50OEFycmF5
KGJ1ZmZlcik7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKysp
IHsKKyAgICAgICAgICAgIGxldCB2YWwgPSBieXRlc1tpXTsKKyAgICAgICAgICAgIHZpZXdbaV0g
PSB2YWwgfCAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZmZXI7CisgICAgfQorICAg
IGluc3RhbnRpYXRlKCkgeworICAgICAgICBsZXQgbW9kdWxlID0gbmV3IFdlYkFzc2VtYmx5Lk1v
ZHVsZSh0aGlzLnRvQnVmZmVyKCkpOworICAgICAgICBsZXQgaW5zdGFuY2UgPSBuZXcgV2ViQXNz
ZW1ibHkuSW5zdGFuY2UobW9kdWxlKTsKKyAgICB9Cit9CisKK3ZhciBleGNlcHRpb247Cit0cnkg
eworICAgIHZhciBtb2R1bGUgPSBuZXcgV2FzbU1vZHVsZUJ1aWxkZXIoKTsKKyAgICBtb2R1bGUu
YWRkTWVtb3J5KDMyNzY4KTsKKyAgICBtb2R1bGUuaW5zdGFudGlhdGUoKTsKK30gY2F0Y2ggKGUp
IHsKKyAgICBleGNlcHRpb24gPSBlOworfQorCitpZiAoZXhjZXB0aW9uICE9ICJFcnJvcjogT3V0
IG9mIG1lbW9yeSIpIHsKKyAgICBwcmludChleGNlcHRpb24pOworICAgIHRocm93ICJGQUlMRUQi
OworfQpJbmRleDogSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvd2FzbS1tZW1vcnktcmVxdWVzdGVkLW1v
cmUtdGhhbi1NQVhfQVJSQVlfQlVGRkVSX1NJWkUuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy93
YXNtL3JlZ3Jlc3Mvd2FzbS1tZW1vcnktcmVxdWVzdGVkLW1vcmUtdGhhbi1NQVhfQVJSQVlfQlVG
RkVSX1NJWkUuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvd2FzbS1t
ZW1vcnktcmVxdWVzdGVkLW1vcmUtdGhhbi1NQVhfQVJSQVlfQlVGRkVSX1NJWkUuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAordmFyIGV4Y2VwdGlvbjsKKwordHJ5IHsKKyAgICBu
ZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHsgaW5pdGlhbDogMHg4MDAwLCBtYXhpbXVtOiAweDgwMDAg
fSkuYnVmZmVyOworfSBjYXRjaCAoZSkgeworICAgIGV4Y2VwdGlvbiA9IGU7Cit9CisKK2lmIChl
eGNlcHRpb24gIT0gIkVycm9yOiBPdXQgb2YgbWVtb3J5IikKKyAgICB0aHJvdyAiRkFJTEVEIjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM4NDI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE4LTExLTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
cmVhdGluZyBhIHdhc20gbWVtb3J5IHRoYXQgaXMgYmlnZ2VyIHRoYW4gdGhlIEFycmF5QnVmZmVy
IGxpbWl0IGJ1dCBzbWFsbGVyIHRoYW4gdGhlIHNwZWMgbGltaXQgc2hvdWxkIHRocm93IE9PTUUg
bm90IFJhbmdlRXJyb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTE3NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2MTUyODUxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2FzbS9XYXNtTWVt
b3J5LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUpOgorICAgICAg
ICAtIHJldHVybiBudWxscHRyIGlmIHRoZSByZXF1ZXN0ZWQgYnl0ZXMgZXhjZWVkIE1BWF9BUlJB
WV9CVUZGRVJfU0laRS4KKyAgICAgICAgICBUaGUgY2xpZW50cyB3aWxsIGFscmVhZHkgZG8gYSBu
dWxsIGNoZWNrIGFuZCB0aHJvdyBhbiBPdXRPZk1lbW9yeUVycm9yIGlmIG5lZWRlZC4KKyAgICAg
ICAgKEpTQzo6V2FzbTo6TWVtb3J5Ojpncm93KToKKyAgICAgICAgLSB0aHJvdyBPT01FIGlmIG5l
d1BhZ2VDb3VudC5ieXRlcygpID4gTUFYX0FSUkFZX0JVRkZFUl9TSVpFLgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNv
bnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnkpOgorICAgICAgICAtIHRocm93IE9PTUUgaWYgbmV3
UGFnZUNvdW50LmJ5dGVzKCkgPiBNQVhfQVJSQVlfQlVGRkVSX1NJWkUuCisKIDIwMTgtMTEtMjEg
IENhaW8gTGltYSAgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgogCiAgICAgICAgIFtCaWdJbnRdIEpT
QmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoIHNob3VsZCB0aHJvdyB3aGVuIGxlbmd0aCBpcyBncmVh
dGVyIHRoYW4gSlNCaWdJbnQ6Om1heExlbmd0aApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1lbW9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1lbW9yeS5jcHAJKHJldmlzaW9uIDIzODQyOCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsNyArMjgy
LDggQEAgUmVmUHRyPE1lbW9yeT4gTWVtb3J5Ojp0cnlDcmVhdGUoUGFnZUNvdQogICAgIGNvbnN0
IHNpemVfdCBpbml0aWFsQnl0ZXMgPSBpbml0aWFsLmJ5dGVzKCk7CiAgICAgY29uc3Qgc2l6ZV90
IG1heGltdW1CeXRlcyA9IG1heGltdW0gPyBtYXhpbXVtLmJ5dGVzKCkgOiAwOwogCi0gICAgUkVM
RUFTRV9BU1NFUlQoaW5pdGlhbEJ5dGVzIDw9IE1BWF9BUlJBWV9CVUZGRVJfU0laRSk7CisgICAg
aWYgKGluaXRpYWxCeXRlcyA+IE1BWF9BUlJBWV9CVUZGRVJfU0laRSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7IC8vIENsaWVudCB3aWxsIHRocm93IE9PTUVycm9yLgogCiAgICAgaWYgKG1heGlt
dW0gJiYgIW1heGltdW1CeXRlcykgewogICAgICAgICAvLyBVc2VyIHNwZWNpZmllZCBhIHplcm8g
bWF4aW11bSwgaW5pdGlhbCBzaXplIG11c3QgYWxzbyBiZSB6ZXJvLgpAQCAtMzc0LDExICszNzUs
MTAgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhcwogICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoR3Jvd0ZhaWxSZWFzb246OkludmFsaWREZWx0YSk7CiAgICAg
CiAgICAgY29uc3QgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCA9IG9sZFBhZ2VDb3VudCAr
IGRlbHRhOwotICAgIC8vIEZJWE1FOiBDcmVhdGluZyBhIHdhc20gbWVtb3J5IHRoYXQgaXMgYmln
Z2VyIHRoYW4gdGhlIEFycmF5QnVmZmVyIGxpbWl0IGJ1dCBzbWFsbGVyIHRoYW4gdGhlIHNwZWMg
bGltaXQgc2hvdWxkIHRocm93Ci0gICAgLy8gT09NRSBub3QgUmFuZ2VFcnJvcgotICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3NzYKLSAgICBpZiAoIW5l
d1BhZ2VDb3VudCB8fCAhbmV3UGFnZUNvdW50LmlzVmFsaWQoKSB8fCBuZXdQYWdlQ291bnQuYnl0
ZXMoKSA+PSBNQVhfQVJSQVlfQlVGRkVSX1NJWkUpCisgICAgaWYgKCFuZXdQYWdlQ291bnQgfHwg
IW5ld1BhZ2VDb3VudC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChH
cm93RmFpbFJlYXNvbjo6SW52YWxpZEdyb3dTaXplKTsKKyAgICBpZiAobmV3UGFnZUNvdW50LmJ5
dGVzKCkgPiBNQVhfQVJSQVlfQlVGRkVSX1NJWkUpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChHcm93RmFpbFJlYXNvbjo6T3V0T2ZNZW1vcnkpOwogCiAgICAgYXV0byBzdWNjZXNzID0g
WyZdICgpIHsKICAgICAgICAgbV9ncm93U3VjY2Vzc0NhbGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBv
bGRQYWdlQ291bnQsIG5ld1BhZ2VDb3VudCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9y
LmNwcAkocmV2aXNpb24gMjM4NDI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03MCwx
MSArNzAsMTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29ucwogICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwog
ICAgICAgICB1aW50MzJfdCBzaXplID0gdG9Ob25XcmFwcGluZ1VpbnQzMihleGVjLCBtaW5TaXpl
VmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRK
U1ZhbHVlKCkpOwotICAgICAgICAvLyBGSVhNRTogQ3JlYXRpbmcgYSB3YXNtIG1lbW9yeSB0aGF0
IGlzIGJpZ2dlciB0aGFuIHRoZSBBcnJheUJ1ZmZlciBsaW1pdCBidXQgc21hbGxlciB0aGFuIHRo
ZSBzcGVjIGxpbWl0IHNob3VsZCB0aHJvdwotICAgICAgICAvLyBPT01FIG5vdCBSYW5nZUVycm9y
Ci0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3
NzYKLSAgICAgICAgaWYgKCFXYXNtOjpQYWdlQ291bnQ6OmlzVmFsaWQoc2l6ZSkgfHwgV2FzbTo6
UGFnZUNvdW50KHNpemUpLmJ5dGVzKCkgPj0gTUFYX0FSUkFZX0JVRkZFUl9TSVpFKQorICAgICAg
ICBpZiAoIVdhc206OlBhZ2VDb3VudDo6aXNWYWxpZChzaXplKSkKICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oZXhlYywgdGhyb3dTY29wZSwgY3JlYXRl
UmFuZ2VFcnJvcihleGVjLCAiV2ViQXNzZW1ibHkuTWVtb3J5ICdpbml0aWFsJyBwYWdlIGNvdW50
IGlzIHRvbyBsYXJnZSJfcykpKTsKKyAgICAgICAgaWYgKFdhc206OlBhZ2VDb3VudChzaXplKS5i
eXRlcygpID4gTUFYX0FSUkFZX0JVRkZFUl9TSVpFKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihleGVjLCB0aHJvd1Njb3BlLCBjcmVhdGVPdXRPZk1l
bW9yeUVycm9yKGV4ZWMpKSk7CiAgICAgICAgIGluaXRpYWxQYWdlQ291bnQgPSBXYXNtOjpQYWdl
Q291bnQoc2l6ZSk7CiAgICAgfQogCg==
</data>
<flag name="review"
          id="372534"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="372537"
          type_id="3"
          status="-"
          setter="ews-watchlist"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355442</attachid>
            <date>2018-11-21 15:56:50 -0800</date>
            <delta_ts>2018-11-21 15:57:42 -0800</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-191776.patch</filename>
            <type>text/plain</type>
            <size>11491</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzg0MzEpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDU0IEBACisyMDE4LTExLTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBDcmVhdGluZyBhIHdhc20gbWVtb3J5IHRoYXQgaXMgYmlnZ2VyIHRoYW4g
dGhlIEFycmF5QnVmZmVyIGxpbWl0IGJ1dCBzbWFsbGVyIHRoYW4gdGhlIHNwZWMgbGltaXQgc2hv
dWxkIHRocm93IE9PTUUgbm90IFJhbmdlRXJyb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2
MTUyODUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICog
c3RyZXNzL2JpZy13YXNtLW1lbW9yeS1ncm93LW5vLW1heC5qczoKKyAgICAgICAgKiBzdHJlc3Mv
YmlnLXdhc20tbWVtb3J5LWdyb3cuanM6CisgICAgICAgICogc3RyZXNzL2JpZy13YXNtLW1lbW9y
eS5qczoKKyAgICAgICAgLSB1cGRhdGVzIHRoZXNlIHRvIGV4cGVjdCBhbiBPdXRPZk1lbW9yeUVy
cm9yLgorCisgICAgICAgICogd2FzbS9yZWdyZXNzL3dhc20tbWVtb3J5LXJlcXVlc3RlZC1tb3Jl
LXRoYW4tTUFYX0FSUkFZX0JVRkZFUl9TSVpFLTIuanM6IEFkZGVkLgorICAgICAgICAoQmluYXJ5
LnByb3RvdHlwZS5lbWl0X3U4KToKKyAgICAgICAgKEJpbmFyeS5wcm90b3R5cGUuZW1pdF91MzJ2
KToKKyAgICAgICAgKEJpbmFyeS5wcm90b3R5cGUuZW1pdF9oZWFkZXIpOgorICAgICAgICAoQmlu
YXJ5LnByb3RvdHlwZS5lbWl0X3NlY3Rpb24pOgorICAgICAgICAoQmluYXJ5KToKKyAgICAgICAg
KFdhc21Nb2R1bGVCdWlsZGVyKToKKyAgICAgICAgKFdhc21Nb2R1bGVCdWlsZGVyLnByb3RvdHlw
ZS5hZGRNZW1vcnkpOgorICAgICAgICAoV2FzbU1vZHVsZUJ1aWxkZXIucHJvdG90eXBlLnRvQXJy
YXkpOgorICAgICAgICAoV2FzbU1vZHVsZUJ1aWxkZXIucHJvdG90eXBlLnRvQnVmZmVyKToKKyAg
ICAgICAgKFdhc21Nb2R1bGVCdWlsZGVyLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6CisgICAgICAg
IChjYXRjaCk6CisgICAgICAgICogd2FzbS9yZWdyZXNzL3dhc20tbWVtb3J5LXJlcXVlc3RlZC1t
b3JlLXRoYW4tTUFYX0FSUkFZX0JVRkZFUl9TSVpFLmpzOiBBZGRlZC4KKyAgICAgICAgKGNhdGNo
KToKKworMjAxOC0xMS0yMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQ3JlYXRpbmcgYSB3YXNtIG1lbW9yeSB0aGF0IGlzIGJpZ2dlciB0aGFuIHRoZSBBcnJheUJ1
ZmZlciBsaW1pdCBidXQgc21hbGxlciB0aGFuIHRoZSBzcGVjIGxpbWl0IHNob3VsZCB0aHJvdyBP
T01FIG5vdCBSYW5nZUVycm9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxNzc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NjE1Mjg1MT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdhc20vcmVn
cmVzcy93YXNtLW1lbW9yeS1yZXF1ZXN0ZWQtbW9yZS10aGFuLU1BWF9BUlJBWV9CVUZGRVJfU0la
RS0yLmpzOiBBZGRlZC4KKyAgICAgICAgKEJpbmFyeS5wcm90b3R5cGUuZW1pdF91OCk6CisgICAg
ICAgIChCaW5hcnkucHJvdG90eXBlLmVtaXRfdTMydik6CisgICAgICAgIChCaW5hcnkucHJvdG90
eXBlLmVtaXRfaGVhZGVyKToKKyAgICAgICAgKEJpbmFyeS5wcm90b3R5cGUuZW1pdF9zZWN0aW9u
KToKKyAgICAgICAgKEJpbmFyeSk6CisgICAgICAgIChXYXNtTW9kdWxlQnVpbGRlcik6CisgICAg
ICAgIChXYXNtTW9kdWxlQnVpbGRlci5wcm90b3R5cGUuYWRkTWVtb3J5KToKKyAgICAgICAgKFdh
c21Nb2R1bGVCdWlsZGVyLnByb3RvdHlwZS50b0FycmF5KToKKyAgICAgICAgKFdhc21Nb2R1bGVC
dWlsZGVyLnByb3RvdHlwZS50b0J1ZmZlcik6CisgICAgICAgIChXYXNtTW9kdWxlQnVpbGRlci5w
cm90b3R5cGUuaW5zdGFudGlhdGUpOgorICAgICAgICAoY2F0Y2gpOgorICAgICAgICAqIHdhc20v
cmVncmVzcy93YXNtLW1lbW9yeS1yZXF1ZXN0ZWQtbW9yZS10aGFuLU1BWF9BUlJBWV9CVUZGRVJf
U0laRS5qczogQWRkZWQuCisgICAgICAgIChjYXRjaCk6CisKIDIwMTgtMTEtMjEgIENhaW8gTGlt
YSAgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgogCiAgICAgICAgIFtCaWdJbnRdIEpTQmlnSW50Ojpj
cmVhdGVXaXRoTGVuZ3RoIHNob3VsZCB0aHJvdyB3aGVuIGxlbmd0aCBpcyBncmVhdGVyIHRoYW4g
SlNCaWdJbnQ6Om1heExlbmd0aApJbmRleDogSlNUZXN0cy9zdHJlc3MvYmlnLXdhc20tbWVtb3J5
LWdyb3ctbm8tbWF4LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2JpZy13YXNtLW1l
bW9yeS1ncm93LW5vLW1heC5qcwkocmV2aXNpb24gMjM4NDMxKQorKysgSlNUZXN0cy9zdHJlc3Mv
YmlnLXdhc20tbWVtb3J5LWdyb3ctbm8tbWF4LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsy
Niw3IEBAIHRyeSB7CiAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBlbmQ6ICIg
KyByZXN1bHQ7CiAgICAgb2sgPSB0cnVlOwogfSBjYXRjaCAoZSkgewotICAgIGlmIChlLnRvU3Ry
aW5nKCkgIT0gIlJhbmdlRXJyb3I6IFdlYkFzc2VtYmx5Lk1lbW9yeS5ncm93IGV4cGVjdHMgdGhl
IGdyb3duIHNpemUgdG8gYmUgYSB2YWxpZCBwYWdlIGNvdW50IikKKyAgICBpZiAoZS50b1N0cmlu
ZygpICE9ICJFcnJvcjogT3V0IG9mIG1lbW9yeSIpCiAgICAgICAgIHRocm93IGU7CiB9CiAKSW5k
ZXg6IEpTVGVzdHMvc3RyZXNzL2JpZy13YXNtLW1lbW9yeS1ncm93LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEpTVGVzdHMvc3RyZXNzL2JpZy13YXNtLW1lbW9yeS1ncm93LmpzCShyZXZpc2lvbiAyMzg0MzEp
CisrKyBKU1Rlc3RzL3N0cmVzcy9iaWctd2FzbS1tZW1vcnktZ3Jvdy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMjYsNyArMjYsNyBAQCB0cnkgewogICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQgYXQgZW5kOiAiICsgcmVzdWx0OwogICAgIG9rID0gdHJ1ZTsKIH0gY2F0Y2ggKGUpIHsKLSAg
ICBpZiAoZS50b1N0cmluZygpICE9ICJSYW5nZUVycm9yOiBXZWJBc3NlbWJseS5NZW1vcnkuZ3Jv
dyBleHBlY3RzIHRoZSBncm93biBzaXplIHRvIGJlIGEgdmFsaWQgcGFnZSBjb3VudCIpCisgICAg
aWYgKGUudG9TdHJpbmcoKSAhPSAiRXJyb3I6IE91dCBvZiBtZW1vcnkiKQogICAgICAgICB0aHJv
dyBlOwogfQogCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9iaWctd2FzbS1tZW1vcnkuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvYmlnLXdhc20tbWVtb3J5LmpzCShyZXZpc2lvbiAyMzg0
MzEpCisrKyBKU1Rlc3RzL3N0cmVzcy9iaWctd2FzbS1tZW1vcnkuanMJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDcgKzI0LDcgQEAgdHJ5IHsKICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
IGF0IGVuZDogIiArIHJlc3VsdDsKICAgICBvayA9IHRydWU7CiB9IGNhdGNoIChlKSB7Ci0gICAg
aWYgKGUudG9TdHJpbmcoKSAhPSAiUmFuZ2VFcnJvcjogV2ViQXNzZW1ibHkuTWVtb3J5ICdpbml0
aWFsJyBwYWdlIGNvdW50IGlzIHRvbyBsYXJnZSIpCisgICAgaWYgKGUudG9TdHJpbmcoKSAhPSAi
RXJyb3I6IE91dCBvZiBtZW1vcnkiKQogICAgICAgICB0aHJvdyBlOwogfQogCkluZGV4OiBKU1Rl
c3RzL3dhc20vcmVncmVzcy93YXNtLW1lbW9yeS1yZXF1ZXN0ZWQtbW9yZS10aGFuLU1BWF9BUlJB
WV9CVUZGRVJfU0laRS0yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvd2FzbS9yZWdyZXNzL3dh
c20tbWVtb3J5LXJlcXVlc3RlZC1tb3JlLXRoYW4tTUFYX0FSUkFZX0JVRkZFUl9TSVpFLTIuanMJ
KG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvd2FzbS1tZW1vcnktcmVxdWVz
dGVkLW1vcmUtdGhhbi1NQVhfQVJSQVlfQlVGRkVSX1NJWkUtMi5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDg4IEBACit2YXIga1dhc21IMCA9IDA7Cit2YXIga1dhc21IMSA9IDB4NjE7Cit2
YXIga1dhc21IMiA9IDB4NzM7Cit2YXIga1dhc21IMyA9IDB4NmQ7Cit2YXIga1dhc21WMCA9IDB4
MTsKK3ZhciBrV2FzbVYxID0gMDsKK3ZhciBrV2FzbVYyID0gMDsKK3ZhciBrV2FzbVYzID0gMDsK
K2xldCBrTWVtb3J5U2VjdGlvbkNvZGUgPSA1OworCitjbGFzcyBCaW5hcnkgZXh0ZW5kcyBBcnJh
eSB7CisgICAgZW1pdF91OCh2YWwpIHsKKyAgICAgICAgdGhpcy5wdXNoKHZhbCk7CisgICAgfQor
ICAgIGVtaXRfdTMydih2YWwpIHsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAg
IGxldCB2ID0gdmFsICYgMHhmZjsKKyAgICAgICAgICAgIHZhbCA9IHZhbCA+Pj4gNzsKKyAgICAg
ICAgICAgIGlmICh2YWwgPT0gMCkgeworICAgICAgICAgICAgICAgIHRoaXMucHVzaCh2KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMucHVz
aCh2IHwgMHg4MCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbWl0X2hlYWRlcigpIHsKKyAg
ICAgICAgdGhpcy5wdXNoKGtXYXNtSDAsIGtXYXNtSDEsIGtXYXNtSDIsIGtXYXNtSDMsIGtXYXNt
VjAsIGtXYXNtVjEsIGtXYXNtVjIsIGtXYXNtVjMpOworICAgIH0KKyAgICBlbWl0X3NlY3Rpb24o
c2VjdGlvbl9jb2RlLCBjb250ZW50X2dlbmVyYXRvcikgeworICAgICAgICB0aGlzLmVtaXRfdTgo
c2VjdGlvbl9jb2RlKTsKKyAgICAgICAgY29uc3Qgc2VjdGlvbiA9IG5ldyBCaW5hcnkoKTsKKyAg
ICAgICAgY29udGVudF9nZW5lcmF0b3Ioc2VjdGlvbik7CisgICAgICAgIHRoaXMuZW1pdF91MzJ2
KHNlY3Rpb24ubGVuZ3RoKTsKKyAgICAgICAgZm9yIChsZXQgYiBvZiBzZWN0aW9uKQorICAgICAg
ICAgICAgdGhpcy5wdXNoKGIpOworICAgIH0KK30KKworY2xhc3MgV2FzbU1vZHVsZUJ1aWxkZXIg
eworICAgIGNvbnN0cnVjdG9yKCkgeyB9CisgICAgYWRkTWVtb3J5KG1pbikgeworICAgICAgICB0
aGlzLm1lbW9yeSA9IHsgbWluOiBtaW4gfTsKKyAgICB9CisgICAgdG9BcnJheSgpIHsKKyAgICAg
ICAgbGV0IGJpbmFyeSA9IG5ldyBCaW5hcnkoKTsKKyAgICAgICAgbGV0IHdhc20gPSB0aGlzOwor
ICAgICAgICBiaW5hcnkuZW1pdF9oZWFkZXIoKTsKKyAgICAgICAgYmluYXJ5LmVtaXRfc2VjdGlv
bihrTWVtb3J5U2VjdGlvbkNvZGUsIHNlY3Rpb24gPT4geworICAgICAgICAgICAgc2VjdGlvbi5l
bWl0X3U4KDEpOworICAgICAgICAgICAgY29uc3QgaXNfc2hhcmVkID0gd2FzbS5tZW1vcnkuc2hh
cmVkICE9PSB1bmRlZmluZWQ7CisgICAgICAgICAgICBpZiAoaXNfc2hhcmVkKSB7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNlY3Rpb24uZW1pdF91OCgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgc2VjdGlvbi5lbWl0X3UzMnYod2FzbS5tZW1vcnkubWluKTsK
KyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBiaW5hcnk7CisgICAgfQorICAgIHRvQnVmZmVy
KCkgeworICAgICAgICBsZXQgYnl0ZXMgPSB0aGlzLnRvQXJyYXkoKTsKKyAgICAgICAgbGV0IGJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihieXRlcy5sZW5ndGgpOworICAgICAgICBsZXQgdmlldyA9
IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0
ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGxldCB2YWwgPSBieXRlc1tpXTsKKyAgICAg
ICAgICAgIHZpZXdbaV0gPSB2YWwgfCAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZm
ZXI7CisgICAgfQorICAgIGluc3RhbnRpYXRlKCkgeworICAgICAgICBsZXQgbW9kdWxlID0gbmV3
IFdlYkFzc2VtYmx5Lk1vZHVsZSh0aGlzLnRvQnVmZmVyKCkpOworICAgICAgICBsZXQgaW5zdGFu
Y2UgPSBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UobW9kdWxlKTsKKyAgICB9Cit9CisKK3ZhciBl
eGNlcHRpb247Cit0cnkgeworICAgIHZhciBtb2R1bGUgPSBuZXcgV2FzbU1vZHVsZUJ1aWxkZXIo
KTsKKyAgICBtb2R1bGUuYWRkTWVtb3J5KDMyNzY4KTsKKyAgICBtb2R1bGUuaW5zdGFudGlhdGUo
KTsKK30gY2F0Y2ggKGUpIHsKKyAgICBleGNlcHRpb24gPSBlOworfQorCitpZiAoZXhjZXB0aW9u
ICE9ICJFcnJvcjogT3V0IG9mIG1lbW9yeSIpIHsKKyAgICBwcmludChleGNlcHRpb24pOworICAg
IHRocm93ICJGQUlMRUQiOworfQpJbmRleDogSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvd2FzbS1tZW1v
cnktcmVxdWVzdGVkLW1vcmUtdGhhbi1NQVhfQVJSQVlfQlVGRkVSX1NJWkUuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvd2FzbS1tZW1vcnktcmVxdWVzdGVkLW1vcmUtdGhh
bi1NQVhfQVJSQVlfQlVGRkVSX1NJWkUuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy93YXNt
L3JlZ3Jlc3Mvd2FzbS1tZW1vcnktcmVxdWVzdGVkLW1vcmUtdGhhbi1NQVhfQVJSQVlfQlVGRkVS
X1NJWkUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAordmFyIGV4Y2VwdGlvbjsK
KwordHJ5IHsKKyAgICBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHsgaW5pdGlhbDogMHg4MDAwLCBt
YXhpbXVtOiAweDgwMDAgfSkuYnVmZmVyOworfSBjYXRjaCAoZSkgeworICAgIGV4Y2VwdGlvbiA9
IGU7Cit9CisKK2lmIChleGNlcHRpb24gIT0gIkVycm9yOiBPdXQgb2YgbWVtb3J5IikKKyAgICB0
aHJvdyAiRkFJTEVEIjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM4
NDMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIxIEBACisyMDE4LTExLTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBDcmVhdGluZyBhIHdhc20gbWVtb3J5IHRoYXQgaXMgYmlnZ2VyIHRoYW4g
dGhlIEFycmF5QnVmZmVyIGxpbWl0IGJ1dCBzbWFsbGVyIHRoYW4gdGhlIHNwZWMgbGltaXQgc2hv
dWxkIHRocm93IE9PTUUgbm90IFJhbmdlRXJyb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2
MTUyODUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICog
d2FzbS9XYXNtTWVtb3J5LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5Ojp0cnlDcmVh
dGUpOgorICAgICAgICAtIHJldHVybiBudWxscHRyIGlmIHRoZSByZXF1ZXN0ZWQgYnl0ZXMgZXhj
ZWVkIE1BWF9BUlJBWV9CVUZGRVJfU0laRS4KKyAgICAgICAgICBUaGUgY2xpZW50cyB3aWxsIGFs
cmVhZHkgZG8gYSBudWxsIGNoZWNrIGFuZCB0aHJvdyBhbiBPdXRPZk1lbW9yeUVycm9yIGlmIG5l
ZWRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5Ojpncm93KToKKyAgICAgICAgLSB0aHJv
dyBPT01FIGlmIG5ld1BhZ2VDb3VudC5ieXRlcygpID4gTUFYX0FSUkFZX0JVRkZFUl9TSVpFLgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnkpOgorICAgICAgICAtIHRocm93
IE9PTUUgaWYgbmV3UGFnZUNvdW50LmJ5dGVzKCkgPiBNQVhfQVJSQVlfQlVGRkVSX1NJWkUuCisK
IDIwMTgtMTEtMjEgIENhaW8gTGltYSAgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgogCiAgICAgICAg
IFtCaWdJbnRdIEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoIHNob3VsZCB0aHJvdyB3aGVuIGxl
bmd0aCBpcyBncmVhdGVyIHRoYW4gSlNCaWdJbnQ6Om1heExlbmd0aApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAJKHJldmlzaW9uIDIzODQzMSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yODIsNyArMjgyLDggQEAgUmVmUHRyPE1lbW9yeT4gTWVtb3J5Ojp0cnlDcmVhdGUoUGFnZUNv
dQogICAgIGNvbnN0IHNpemVfdCBpbml0aWFsQnl0ZXMgPSBpbml0aWFsLmJ5dGVzKCk7CiAgICAg
Y29uc3Qgc2l6ZV90IG1heGltdW1CeXRlcyA9IG1heGltdW0gPyBtYXhpbXVtLmJ5dGVzKCkgOiAw
OwogCi0gICAgUkVMRUFTRV9BU1NFUlQoaW5pdGlhbEJ5dGVzIDw9IE1BWF9BUlJBWV9CVUZGRVJf
U0laRSk7CisgICAgaWYgKGluaXRpYWxCeXRlcyA+IE1BWF9BUlJBWV9CVUZGRVJfU0laRSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7IC8vIENsaWVudCB3aWxsIHRocm93IE9PTUVycm9yLgogCiAg
ICAgaWYgKG1heGltdW0gJiYgIW1heGltdW1CeXRlcykgewogICAgICAgICAvLyBVc2VyIHNwZWNp
ZmllZCBhIHplcm8gbWF4aW11bSwgaW5pdGlhbCBzaXplIG11c3QgYWxzbyBiZSB6ZXJvLgpAQCAt
Mzc0LDExICszNzUsMTAgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVh
cwogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoR3Jvd0ZhaWxSZWFzb246OkludmFsaWRE
ZWx0YSk7CiAgICAgCiAgICAgY29uc3QgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCA9IG9s
ZFBhZ2VDb3VudCArIGRlbHRhOwotICAgIC8vIEZJWE1FOiBDcmVhdGluZyBhIHdhc20gbWVtb3J5
IHRoYXQgaXMgYmlnZ2VyIHRoYW4gdGhlIEFycmF5QnVmZmVyIGxpbWl0IGJ1dCBzbWFsbGVyIHRo
YW4gdGhlIHNwZWMgbGltaXQgc2hvdWxkIHRocm93Ci0gICAgLy8gT09NRSBub3QgUmFuZ2VFcnJv
cgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3NzYK
LSAgICBpZiAoIW5ld1BhZ2VDb3VudCB8fCAhbmV3UGFnZUNvdW50LmlzVmFsaWQoKSB8fCBuZXdQ
YWdlQ291bnQuYnl0ZXMoKSA+PSBNQVhfQVJSQVlfQlVGRkVSX1NJWkUpCisgICAgaWYgKCFuZXdQ
YWdlQ291bnQgfHwgIW5ld1BhZ2VDb3VudC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChHcm93RmFpbFJlYXNvbjo6SW52YWxpZEdyb3dTaXplKTsKKyAgICBpZiAobmV3
UGFnZUNvdW50LmJ5dGVzKCkgPiBNQVhfQVJSQVlfQlVGRkVSX1NJWkUpCisgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChHcm93RmFpbFJlYXNvbjo6T3V0T2ZNZW1vcnkpOwogCiAgICAgYXV0
byBzdWNjZXNzID0gWyZdICgpIHsKICAgICAgICAgbV9ncm93U3VjY2Vzc0NhbGxiYWNrKEdyb3dT
dWNjZXNzVGFnLCBvbGRQYWdlQ291bnQsIG5ld1BhZ2VDb3VudCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9y
eUNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMjM4NDMxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC03MCwxMSArNzAsMTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29ucwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRK
U1ZhbHVlKCkpOwogICAgICAgICB1aW50MzJfdCBzaXplID0gdG9Ob25XcmFwcGluZ1VpbnQzMihl
eGVjLCBtaW5TaXplVmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgICAgICAvLyBGSVhNRTogQ3JlYXRpbmcgYSB3YXNt
IG1lbW9yeSB0aGF0IGlzIGJpZ2dlciB0aGFuIHRoZSBBcnJheUJ1ZmZlciBsaW1pdCBidXQgc21h
bGxlciB0aGFuIHRoZSBzcGVjIGxpbWl0IHNob3VsZCB0aHJvdwotICAgICAgICAvLyBPT01FIG5v
dCBSYW5nZUVycm9yCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTE3NzYKLSAgICAgICAgaWYgKCFXYXNtOjpQYWdlQ291bnQ6OmlzVmFsaWQoc2l6
ZSkgfHwgV2FzbTo6UGFnZUNvdW50KHNpemUpLmJ5dGVzKCkgPj0gTUFYX0FSUkFZX0JVRkZFUl9T
SVpFKQorICAgICAgICBpZiAoIVdhc206OlBhZ2VDb3VudDo6aXNWYWxpZChzaXplKSkKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oZXhlYywgdGhyb3dT
Y29wZSwgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiV2ViQXNzZW1ibHkuTWVtb3J5ICdpbml0aWFs
JyBwYWdlIGNvdW50IGlzIHRvbyBsYXJnZSJfcykpKTsKKyAgICAgICAgaWYgKFdhc206OlBhZ2VD
b3VudChzaXplKS5ieXRlcygpID4gTUFYX0FSUkFZX0JVRkZFUl9TSVpFKQorICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihleGVjLCB0aHJvd1Njb3BlLCBj
cmVhdGVPdXRPZk1lbW9yeUVycm9yKGV4ZWMpKSk7CiAgICAgICAgIGluaXRpYWxQYWdlQ291bnQg
PSBXYXNtOjpQYWdlQ291bnQoc2l6ZSk7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355443</attachid>
            <date>2018-11-21 15:58:05 -0800</date>
            <delta_ts>2018-11-21 17:51:43 -0800</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-191776.patch</filename>
            <type>text/plain</type>
            <size>10548</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzg0MzEpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDMxIEBACisyMDE4LTExLTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBDcmVhdGluZyBhIHdhc20gbWVtb3J5IHRoYXQgaXMgYmlnZ2VyIHRoYW4g
dGhlIEFycmF5QnVmZmVyIGxpbWl0IGJ1dCBzbWFsbGVyIHRoYW4gdGhlIHNwZWMgbGltaXQgc2hv
dWxkIHRocm93IE9PTUUgbm90IFJhbmdlRXJyb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2
MTUyODUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICog
c3RyZXNzL2JpZy13YXNtLW1lbW9yeS1ncm93LW5vLW1heC5qczoKKyAgICAgICAgKiBzdHJlc3Mv
YmlnLXdhc20tbWVtb3J5LWdyb3cuanM6CisgICAgICAgICogc3RyZXNzL2JpZy13YXNtLW1lbW9y
eS5qczoKKyAgICAgICAgLSB1cGRhdGVkIHRoZXNlIHRvIGV4cGVjdCBhbiBPdXRPZk1lbW9yeUVy
cm9yLgorCisgICAgICAgICogd2FzbS9yZWdyZXNzL3dhc20tbWVtb3J5LXJlcXVlc3RlZC1tb3Jl
LXRoYW4tTUFYX0FSUkFZX0JVRkZFUl9TSVpFLTIuanM6IEFkZGVkLgorICAgICAgICAoQmluYXJ5
LnByb3RvdHlwZS5lbWl0X3U4KToKKyAgICAgICAgKEJpbmFyeS5wcm90b3R5cGUuZW1pdF91MzJ2
KToKKyAgICAgICAgKEJpbmFyeS5wcm90b3R5cGUuZW1pdF9oZWFkZXIpOgorICAgICAgICAoQmlu
YXJ5LnByb3RvdHlwZS5lbWl0X3NlY3Rpb24pOgorICAgICAgICAoQmluYXJ5KToKKyAgICAgICAg
KFdhc21Nb2R1bGVCdWlsZGVyKToKKyAgICAgICAgKFdhc21Nb2R1bGVCdWlsZGVyLnByb3RvdHlw
ZS5hZGRNZW1vcnkpOgorICAgICAgICAoV2FzbU1vZHVsZUJ1aWxkZXIucHJvdG90eXBlLnRvQXJy
YXkpOgorICAgICAgICAoV2FzbU1vZHVsZUJ1aWxkZXIucHJvdG90eXBlLnRvQnVmZmVyKToKKyAg
ICAgICAgKFdhc21Nb2R1bGVCdWlsZGVyLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6CisgICAgICAg
IChjYXRjaCk6CisgICAgICAgICogd2FzbS9yZWdyZXNzL3dhc20tbWVtb3J5LXJlcXVlc3RlZC1t
b3JlLXRoYW4tTUFYX0FSUkFZX0JVRkZFUl9TSVpFLmpzOiBBZGRlZC4KKyAgICAgICAgKGNhdGNo
KToKKwogMjAxOC0xMS0yMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAKICAg
ICAgICAgW0JpZ0ludF0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGggc2hvdWxkIHRocm93IHdo
ZW4gbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiBKU0JpZ0ludDo6bWF4TGVuZ3RoCkluZGV4OiBKU1Rl
c3RzL3N0cmVzcy9iaWctd2FzbS1tZW1vcnktZ3Jvdy1uby1tYXguanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy9zdHJlc3MvYmlnLXdhc20tbWVtb3J5LWdyb3ctbm8tbWF4LmpzCShyZXZpc2lvbiAy
Mzg0MzEpCisrKyBKU1Rlc3RzL3N0cmVzcy9iaWctd2FzbS1tZW1vcnktZ3Jvdy1uby1tYXguanMJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAgdHJ5IHsKICAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0IGF0IGVuZDogIiArIHJlc3VsdDsKICAgICBvayA9IHRydWU7CiB9IGNh
dGNoIChlKSB7Ci0gICAgaWYgKGUudG9TdHJpbmcoKSAhPSAiUmFuZ2VFcnJvcjogV2ViQXNzZW1i
bHkuTWVtb3J5Lmdyb3cgZXhwZWN0cyB0aGUgZ3Jvd24gc2l6ZSB0byBiZSBhIHZhbGlkIHBhZ2Ug
Y291bnQiKQorICAgIGlmIChlLnRvU3RyaW5nKCkgIT0gIkVycm9yOiBPdXQgb2YgbWVtb3J5IikK
ICAgICAgICAgdGhyb3cgZTsKIH0KIApJbmRleDogSlNUZXN0cy9zdHJlc3MvYmlnLXdhc20tbWVt
b3J5LWdyb3cuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvYmlnLXdhc20tbWVtb3J5
LWdyb3cuanMJKHJldmlzaW9uIDIzODQzMSkKKysrIEpTVGVzdHMvc3RyZXNzL2JpZy13YXNtLW1l
bW9yeS1ncm93LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIHRyeSB7CiAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBlbmQ6ICIgKyByZXN1bHQ7CiAgICAgb2sg
PSB0cnVlOwogfSBjYXRjaCAoZSkgewotICAgIGlmIChlLnRvU3RyaW5nKCkgIT0gIlJhbmdlRXJy
b3I6IFdlYkFzc2VtYmx5Lk1lbW9yeS5ncm93IGV4cGVjdHMgdGhlIGdyb3duIHNpemUgdG8gYmUg
YSB2YWxpZCBwYWdlIGNvdW50IikKKyAgICBpZiAoZS50b1N0cmluZygpICE9ICJFcnJvcjogT3V0
IG9mIG1lbW9yeSIpCiAgICAgICAgIHRocm93IGU7CiB9CiAKSW5kZXg6IEpTVGVzdHMvc3RyZXNz
L2JpZy13YXNtLW1lbW9yeS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9iaWctd2Fz
bS1tZW1vcnkuanMJKHJldmlzaW9uIDIzODQzMSkKKysrIEpTVGVzdHMvc3RyZXNzL2JpZy13YXNt
LW1lbW9yeS5qcwkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQCB0cnkgewogICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgYXQgZW5kOiAiICsgcmVzdWx0OwogICAgIG9rID0g
dHJ1ZTsKIH0gY2F0Y2ggKGUpIHsKLSAgICBpZiAoZS50b1N0cmluZygpICE9ICJSYW5nZUVycm9y
OiBXZWJBc3NlbWJseS5NZW1vcnkgJ2luaXRpYWwnIHBhZ2UgY291bnQgaXMgdG9vIGxhcmdlIikK
KyAgICBpZiAoZS50b1N0cmluZygpICE9ICJFcnJvcjogT3V0IG9mIG1lbW9yeSIpCiAgICAgICAg
IHRocm93IGU7CiB9CiAKSW5kZXg6IEpTVGVzdHMvd2FzbS9yZWdyZXNzL3dhc20tbWVtb3J5LXJl
cXVlc3RlZC1tb3JlLXRoYW4tTUFYX0FSUkFZX0JVRkZFUl9TSVpFLTIuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvd2FzbS1tZW1vcnktcmVxdWVzdGVkLW1vcmUtdGhhbi1N
QVhfQVJSQVlfQlVGRkVSX1NJWkUtMi5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3dhc20v
cmVncmVzcy93YXNtLW1lbW9yeS1yZXF1ZXN0ZWQtbW9yZS10aGFuLU1BWF9BUlJBWV9CVUZGRVJf
U0laRS0yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODggQEAKK3ZhciBrV2FzbUgwID0g
MDsKK3ZhciBrV2FzbUgxID0gMHg2MTsKK3ZhciBrV2FzbUgyID0gMHg3MzsKK3ZhciBrV2FzbUgz
ID0gMHg2ZDsKK3ZhciBrV2FzbVYwID0gMHgxOwordmFyIGtXYXNtVjEgPSAwOwordmFyIGtXYXNt
VjIgPSAwOwordmFyIGtXYXNtVjMgPSAwOworbGV0IGtNZW1vcnlTZWN0aW9uQ29kZSA9IDU7CisK
K2NsYXNzIEJpbmFyeSBleHRlbmRzIEFycmF5IHsKKyAgICBlbWl0X3U4KHZhbCkgeworICAgICAg
ICB0aGlzLnB1c2godmFsKTsKKyAgICB9CisgICAgZW1pdF91MzJ2KHZhbCkgeworICAgICAgICB3
aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgbGV0IHYgPSB2YWwgJiAweGZmOworICAgICAgICAg
ICAgdmFsID0gdmFsID4+PiA3OworICAgICAgICAgICAgaWYgKHZhbCA9PSAwKSB7CisgICAgICAg
ICAgICAgICAgdGhpcy5wdXNoKHYpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgdGhpcy5wdXNoKHYgfCAweDgwKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGVtaXRfaGVhZGVyKCkgeworICAgICAgICB0aGlzLnB1c2goa1dhc21IMCwga1dhc21I
MSwga1dhc21IMiwga1dhc21IMywga1dhc21WMCwga1dhc21WMSwga1dhc21WMiwga1dhc21WMyk7
CisgICAgfQorICAgIGVtaXRfc2VjdGlvbihzZWN0aW9uX2NvZGUsIGNvbnRlbnRfZ2VuZXJhdG9y
KSB7CisgICAgICAgIHRoaXMuZW1pdF91OChzZWN0aW9uX2NvZGUpOworICAgICAgICBjb25zdCBz
ZWN0aW9uID0gbmV3IEJpbmFyeSgpOworICAgICAgICBjb250ZW50X2dlbmVyYXRvcihzZWN0aW9u
KTsKKyAgICAgICAgdGhpcy5lbWl0X3UzMnYoc2VjdGlvbi5sZW5ndGgpOworICAgICAgICBmb3Ig
KGxldCBiIG9mIHNlY3Rpb24pCisgICAgICAgICAgICB0aGlzLnB1c2goYik7CisgICAgfQorfQor
CitjbGFzcyBXYXNtTW9kdWxlQnVpbGRlciB7CisgICAgY29uc3RydWN0b3IoKSB7IH0KKyAgICBh
ZGRNZW1vcnkobWluKSB7CisgICAgICAgIHRoaXMubWVtb3J5ID0geyBtaW46IG1pbiB9OworICAg
IH0KKyAgICB0b0FycmF5KCkgeworICAgICAgICBsZXQgYmluYXJ5ID0gbmV3IEJpbmFyeSgpOwor
ICAgICAgICBsZXQgd2FzbSA9IHRoaXM7CisgICAgICAgIGJpbmFyeS5lbWl0X2hlYWRlcigpOwor
ICAgICAgICBiaW5hcnkuZW1pdF9zZWN0aW9uKGtNZW1vcnlTZWN0aW9uQ29kZSwgc2VjdGlvbiA9
PiB7CisgICAgICAgICAgICBzZWN0aW9uLmVtaXRfdTgoMSk7CisgICAgICAgICAgICBjb25zdCBp
c19zaGFyZWQgPSB3YXNtLm1lbW9yeS5zaGFyZWQgIT09IHVuZGVmaW5lZDsKKyAgICAgICAgICAg
IGlmIChpc19zaGFyZWQpIHsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
c2VjdGlvbi5lbWl0X3U4KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWN0aW9uLmVt
aXRfdTMydih3YXNtLm1lbW9yeS5taW4pOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIGJp
bmFyeTsKKyAgICB9CisgICAgdG9CdWZmZXIoKSB7CisgICAgICAgIGxldCBieXRlcyA9IHRoaXMu
dG9BcnJheSgpOworICAgICAgICBsZXQgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVzLmxl
bmd0aCk7CisgICAgICAgIGxldCB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKKyAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAg
bGV0IHZhbCA9IGJ5dGVzW2ldOworICAgICAgICAgICAgdmlld1tpXSA9IHZhbCB8IDA7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICB9CisgICAgaW5zdGFudGlhdGUoKSB7
CisgICAgICAgIGxldCBtb2R1bGUgPSBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKHRoaXMudG9CdWZm
ZXIoKSk7CisgICAgICAgIGxldCBpbnN0YW5jZSA9IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZSht
b2R1bGUpOworICAgIH0KK30KKwordmFyIGV4Y2VwdGlvbjsKK3RyeSB7CisgICAgdmFyIG1vZHVs
ZSA9IG5ldyBXYXNtTW9kdWxlQnVpbGRlcigpOworICAgIG1vZHVsZS5hZGRNZW1vcnkoMzI3Njgp
OworICAgIG1vZHVsZS5pbnN0YW50aWF0ZSgpOworfSBjYXRjaCAoZSkgeworICAgIGV4Y2VwdGlv
biA9IGU7Cit9CisKK2lmIChleGNlcHRpb24gIT0gIkVycm9yOiBPdXQgb2YgbWVtb3J5Iikgewor
ICAgIHByaW50KGV4Y2VwdGlvbik7CisgICAgdGhyb3cgIkZBSUxFRCI7Cit9CkluZGV4OiBKU1Rl
c3RzL3dhc20vcmVncmVzcy93YXNtLW1lbW9yeS1yZXF1ZXN0ZWQtbW9yZS10aGFuLU1BWF9BUlJB
WV9CVUZGRVJfU0laRS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3dhc20vcmVncmVzcy93YXNt
LW1lbW9yeS1yZXF1ZXN0ZWQtbW9yZS10aGFuLU1BWF9BUlJBWV9CVUZGRVJfU0laRS5qcwkobm9u
ZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3dhc20vcmVncmVzcy93YXNtLW1lbW9yeS1yZXF1ZXN0ZWQt
bW9yZS10aGFuLU1BWF9BUlJBWV9CVUZGRVJfU0laRS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEwIEBACit2YXIgZXhjZXB0aW9uOworCit0cnkgeworICAgIG5ldyBXZWJBc3NlbWJseS5N
ZW1vcnkoeyBpbml0aWFsOiAweDgwMDAsIG1heGltdW06IDB4ODAwMCB9KS5idWZmZXI7Cit9IGNh
dGNoIChlKSB7CisgICAgZXhjZXB0aW9uID0gZTsKK30KKworaWYgKGV4Y2VwdGlvbiAhPSAiRXJy
b3I6IE91dCBvZiBtZW1vcnkiKQorICAgIHRocm93ICJGQUlMRUQiOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzg0MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMTEtMjEgIE1h
cmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0aW5nIGEgd2FzbSBt
ZW1vcnkgdGhhdCBpcyBiaWdnZXIgdGhhbiB0aGUgQXJyYXlCdWZmZXIgbGltaXQgYnV0IHNtYWxs
ZXIgdGhhbiB0aGUgc3BlYyBsaW1pdCBzaG91bGQgdGhyb3cgT09NRSBub3QgUmFuZ2VFcnJvci4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTc3Ngor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYxNTI4NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnkuY3BwOgorICAgICAgICAo
SlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CisgICAgICAgIC0gcmV0dXJuIG51bGxwdHIg
aWYgdGhlIHJlcXVlc3RlZCBieXRlcyBleGNlZWQgTUFYX0FSUkFZX0JVRkZFUl9TSVpFLgorICAg
ICAgICAgIFRoZSBjbGllbnRzIHdpbGwgYWxyZWFkeSBkbyBhIG51bGwgY2hlY2sgYW5kIHRocm93
IGFuIE91dE9mTWVtb3J5RXJyb3IgaWYgbmVlZGVkLgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1v
cnk6Omdyb3cpOgorICAgICAgICAtIHRocm93IE9PTUUgaWYgbmV3UGFnZUNvdW50LmJ5dGVzKCkg
PiBNQVhfQVJSQVlfQlVGRkVSX1NJWkUuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1l
bW9yeUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNXZWJBc3NlbWJs
eU1lbW9yeSk6CisgICAgICAgIC0gdGhyb3cgT09NRSBpZiBuZXdQYWdlQ291bnQuYnl0ZXMoKSA+
IE1BWF9BUlJBWV9CVUZGRVJfU0laRS4KKwogMjAxOC0xMS0yMSAgQ2FpbyBMaW1hICA8dGljYWlv
bGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhM
ZW5ndGggc2hvdWxkIHRocm93IHdoZW4gbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiBKU0JpZ0ludDo6
bWF4TGVuZ3RoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNw
cAkocmV2aXNpb24gMjM4NDMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1l
bW9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Miw3ICsyODIsOCBAQCBSZWZQdHI8TWVtb3J5
PiBNZW1vcnk6OnRyeUNyZWF0ZShQYWdlQ291CiAgICAgY29uc3Qgc2l6ZV90IGluaXRpYWxCeXRl
cyA9IGluaXRpYWwuYnl0ZXMoKTsKICAgICBjb25zdCBzaXplX3QgbWF4aW11bUJ5dGVzID0gbWF4
aW11bSA/IG1heGltdW0uYnl0ZXMoKSA6IDA7CiAKLSAgICBSRUxFQVNFX0FTU0VSVChpbml0aWFs
Qnl0ZXMgPD0gTUFYX0FSUkFZX0JVRkZFUl9TSVpFKTsKKyAgICBpZiAoaW5pdGlhbEJ5dGVzID4g
TUFYX0FSUkFZX0JVRkZFUl9TSVpFKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsgLy8gQ2xpZW50
IHdpbGwgdGhyb3cgT09NRXJyb3IuCiAKICAgICBpZiAobWF4aW11bSAmJiAhbWF4aW11bUJ5dGVz
KSB7CiAgICAgICAgIC8vIFVzZXIgc3BlY2lmaWVkIGEgemVybyBtYXhpbXVtLCBpbml0aWFsIHNp
emUgbXVzdCBhbHNvIGJlIHplcm8uCkBAIC0zNzQsMTEgKzM3NSwxMCBAQCBFeHBlY3RlZDxQYWdl
Q291bnQsIE1lbW9yeTo6R3Jvd0ZhaWxSZWFzCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChHcm93RmFpbFJlYXNvbjo6SW52YWxpZERlbHRhKTsKICAgICAKICAgICBjb25zdCBXYXNtOjpQ
YWdlQ291bnQgbmV3UGFnZUNvdW50ID0gb2xkUGFnZUNvdW50ICsgZGVsdGE7Ci0gICAgLy8gRklY
TUU6IENyZWF0aW5nIGEgd2FzbSBtZW1vcnkgdGhhdCBpcyBiaWdnZXIgdGhhbiB0aGUgQXJyYXlC
dWZmZXIgbGltaXQgYnV0IHNtYWxsZXIgdGhhbiB0aGUgc3BlYyBsaW1pdCBzaG91bGQgdGhyb3cK
LSAgICAvLyBPT01FIG5vdCBSYW5nZUVycm9yCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTc3NgotICAgIGlmICghbmV3UGFnZUNvdW50IHx8ICFuZXdQ
YWdlQ291bnQuaXNWYWxpZCgpIHx8IG5ld1BhZ2VDb3VudC5ieXRlcygpID49IE1BWF9BUlJBWV9C
VUZGRVJfU0laRSkKKyAgICBpZiAoIW5ld1BhZ2VDb3VudCB8fCAhbmV3UGFnZUNvdW50LmlzVmFs
aWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEdyb3dGYWlsUmVhc29uOjpJbnZh
bGlkR3Jvd1NpemUpOworICAgIGlmIChuZXdQYWdlQ291bnQuYnl0ZXMoKSA+IE1BWF9BUlJBWV9C
VUZGRVJfU0laRSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEdyb3dGYWlsUmVhc29u
OjpPdXRPZk1lbW9yeSk7CiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBbJl0gKCkgewogICAgICAgICBt
X2dyb3dTdWNjZXNzQ2FsbGJhY2soR3Jvd1N1Y2Nlc3NUYWcsIG9sZFBhZ2VDb3VudCwgbmV3UGFn
ZUNvdW50KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
TWVtb3J5Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAyMzg0
MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNv
bnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcwLDExICs3MCwxMCBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zCiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgICAgIHVpbnQzMl90IHNp
emUgPSB0b05vbldyYXBwaW5nVWludDMyKGV4ZWMsIG1pblNpemVWYWx1ZSk7CiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgICAg
IC8vIEZJWE1FOiBDcmVhdGluZyBhIHdhc20gbWVtb3J5IHRoYXQgaXMgYmlnZ2VyIHRoYW4gdGhl
IEFycmF5QnVmZmVyIGxpbWl0IGJ1dCBzbWFsbGVyIHRoYW4gdGhlIHNwZWMgbGltaXQgc2hvdWxk
IHRocm93Ci0gICAgICAgIC8vIE9PTUUgbm90IFJhbmdlRXJyb3IKLSAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTc3NgotICAgICAgICBpZiAoIVdh
c206OlBhZ2VDb3VudDo6aXNWYWxpZChzaXplKSB8fCBXYXNtOjpQYWdlQ291bnQoc2l6ZSkuYnl0
ZXMoKSA+PSBNQVhfQVJSQVlfQlVGRkVSX1NJWkUpCisgICAgICAgIGlmICghV2FzbTo6UGFnZUNv
dW50Ojppc1ZhbGlkKHNpemUpKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd0V4Y2VwdGlvbihleGVjLCB0aHJvd1Njb3BlLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJX
ZWJBc3NlbWJseS5NZW1vcnkgJ2luaXRpYWwnIHBhZ2UgY291bnQgaXMgdG9vIGxhcmdlIl9zKSkp
OworICAgICAgICBpZiAoV2FzbTo6UGFnZUNvdW50KHNpemUpLmJ5dGVzKCkgPiBNQVhfQVJSQVlf
QlVGRkVSX1NJWkUpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhj
ZXB0aW9uKGV4ZWMsIHRocm93U2NvcGUsIGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZXhlYykpKTsK
ICAgICAgICAgaW5pdGlhbFBhZ2VDb3VudCA9IFdhc206OlBhZ2VDb3VudChzaXplKTsKICAgICB9
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>