<?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>165839</bug_id>
          
          <creation_ts>2016-12-13 22:04:51 -0800</creation_ts>
          <short_desc>Deleting a character converted from pinyin after an image causes a Safari crash</short_desc>
          <delta_ts>2016-12-16 20:04:52 -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>HTML Editing</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>enrica</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1259645</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-13 22:04:51 -0800</bug_when>
    <thetext>Deleting a Chinese character typed using pinyin on Mac on the same line as an image causes Safari to crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259646</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-13 22:05:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/27951933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259649</commentid>
    <comment_count>2</comment_count>
      <attachid>297066</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-13 22:13:28 -0800</bug_when>
    <thetext>Created attachment 297066
Fixes the crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259741</commentid>
    <comment_count>3</comment_count>
      <attachid>297066</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-12-14 08:39:34 -0800</bug_when>
    <thetext>Comment on attachment 297066
Fixes the crash

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

&gt; Source/WebKit2/ChangeLog:11
&gt; +        Fixed it buy omitting the image as done in r176412 since encoding NSFileWrapper, etc... would require

Nit - buy =&gt; by</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259865</commentid>
    <comment_count>4</comment_count>
      <attachid>297066</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-12-14 13:05:00 -0800</bug_when>
    <thetext>Comment on attachment 297066
Fixes the crash

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

&gt; ChangeLog:8
&gt; +        Added a manual test. I tried but I couldn&apos;t make textInputController to trigger the crash.

Very surprising! textInputController can do everything that an input method does.

&gt; Source/WebKit2/ChangeLog:12
&gt; +        quite a bit of work, and IME doesn&apos;t really need to see the image in its attributed string.

Is the change in string length and character offsets observable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259888</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-14 13:50:46 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 297066 [details]
&gt; Fixes the crash
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=297066&amp;action=review
&gt; 
&gt; &gt; ChangeLog:8
&gt; &gt; +        Added a manual test. I tried but I couldn&apos;t make textInputController to trigger the crash.
&gt; 
&gt; Very surprising! textInputController can do everything that an input method
&gt; does.

I think Chinese IME somehow calls into WKWebView via one of the standard AppKit NSView selectors.

&gt; &gt; Source/WebKit2/ChangeLog:12
&gt; &gt; +        quite a bit of work, and IME doesn&apos;t really need to see the image in its attributed string.
&gt; 
&gt; Is the change in string length and character offsets observable?

I can’t think of a way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259976</commentid>
    <comment_count>6</comment_count>
      <attachid>297066</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-12-14 17:14:26 -0800</bug_when>
    <thetext>Comment on attachment 297066
Fixes the crash

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

&gt; Source/WebKit2/ChangeLog:15
&gt; +        Also converted assertions in typeFromObject and encode inside ArgumentCodersMac to release assertions
&gt; +        to crash early inside a WebProcess instead of killing the entire UIProcess for a similar bug in the future.

I don&apos;t think this is the right fix for this part of the problem: the UI process should guard against this crash (and kill the offending Web process), not the Web process (otherwise, a compromised Web process could still cause this).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260024</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-14 19:34:01 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 297066 [details]
&gt; Fixes the crash
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=297066&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:15
&gt; &gt; +        Also converted assertions in typeFromObject and encode inside ArgumentCodersMac to release assertions
&gt; &gt; +        to crash early inside a WebProcess instead of killing the entire UIProcess for a similar bug in the future.
&gt; 
&gt; I don&apos;t think this is the right fix for this part of the problem: the UI
&gt; process should guard against this crash (and kill the offending Web
&gt; process), not the Web process (otherwise, a compromised Web process could
&gt; still cause this).

Okay, I’d just revert this part of the change then since I’m not familiar with IPC / WebKit2 enough to make that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260029</commentid>
    <comment_count>8</comment_count>
      <attachid>297160</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-14 19:46:32 -0800</bug_when>
    <thetext>Created attachment 297160
Updated per review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260156</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-12-15 09:47:28 -0800</bug_when>
    <thetext>&gt; I think Chinese IME somehow calls into WKWebView via one of the standard AppKit NSView selectors.

An input method can&apos;t do that, they are out of process and limited by API provided to them. AppKit itself can, of course. If it&apos;s something it does, the right thing to do it to make that testable.

Additionally, commands can be sent via -doCommandBySelector: - this is not quite the same as calling WebHTMLView methods directly, but could be close enough to trigger the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260417</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-15 17:42:26 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; I think Chinese IME somehow calls into WKWebView via one of the standard AppKit NSView selectors.
&gt; 
&gt; An input method can&apos;t do that, they are out of process and limited by API
&gt; provided to them. AppKit itself can, of course. If it&apos;s something it does,
&gt; the right thing to do it to make that testable.
&gt; 
&gt; Additionally, commands can be sent via -doCommandBySelector: - this is not
&gt; quite the same as calling WebHTMLView methods directly, but could be close
&gt; enough to trigger the crash.

In that case, I think it&apos;s probably better if someone who knows about AppKit worked on this bug. I really don&apos;t know how to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260851</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-16 18:57:20 -0800</bug_when>
    <thetext>It turns out that we can just call attributedSubstringForProposedRange on WKWebView and it’d reproduce the crash since the code doesn’t depend on any states related to input methods. After a whole day of fiddling with the exact condition, I’ve successfully made a WebKit API test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260852</commentid>
    <comment_count>12</comment_count>
      <attachid>297380</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-16 19:01:14 -0800</bug_when>
    <thetext>Created attachment 297380
Added a API test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260853</commentid>
    <comment_count>13</comment_count>
      <attachid>297381</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-16 19:03:56 -0800</bug_when>
    <thetext>Created attachment 297381
Added a API test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260856</commentid>
    <comment_count>14</comment_count>
      <attachid>297381</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-12-16 19:12:58 -0800</bug_when>
    <thetext>Comment on attachment 297381
Added a API test

Test looks good to me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260866</commentid>
    <comment_count>15</comment_count>
      <attachid>297385</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-16 19:40:09 -0800</bug_when>
    <thetext>Created attachment 297385
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260876</commentid>
    <comment_count>16</comment_count>
      <attachid>297385</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-16 20:04:45 -0800</bug_when>
    <thetext>Comment on attachment 297385
Patch for landing

Clearing flags on attachment: 297385

Committed r209957: &lt;http://trac.webkit.org/changeset/209957&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260877</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-16 20:04:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297066</attachid>
            <date>2016-12-13 22:13:28 -0800</date>
            <delta_ts>2016-12-14 19:46:29 -0800</delta_ts>
            <desc>Fixes the crash</desc>
            <filename>bug-165839-20161213221238.patch</filename>
            <type>text/plain</type>
            <size>4644</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTc4
NSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE2LTEy
LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0aW5n
IGEgY2hhcmFjdGVyIGNvbnZlcnRlZCBmcm9tIHBpbnlpbiBhZnRlciBhbiBpbWFnZSBjYXVzZXMg
YSBTYWZhcmkgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIGEgbWFudWFsIHRlc3QuIEkgdHJpZWQgYnV0IEkgY291bGRuJ3QgbWFrZSB0
ZXh0SW5wdXRDb250cm9sbGVyIHRvIHRyaWdnZXIgdGhlIGNyYXNoLgorCisgICAgICAgIFRoZSBj
cmFzaCBpcyBwcm9iYWJseSBvbmx5IHJlcHJvZHVjaWJsZSB3aXRoIENoaW5lc2UgcGlueWluIElN
RSBvbiBNYWMgc2luY2UgSSBjYW4ndCByZXByb2R1Y2UKKyAgICAgICAgaXQgd2l0aCBKYXBhbmVz
ZSBJTUUgZWl0aGVyLgorCisgICAgICAgICogTWFudWFsVGVzdHMvZGVsZXRlLWNoaW5lc2UtY2hh
cmFjdGVyLXdpdGgtaW1hZ2UuaHRtbDogQWRkZWQuCisKIDIwMTYtMTItMTAgIEtvbnN0YW50aW4g
VG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFtjbWFrZV0gSW5jbHVkZSBX
VEYsIEpTQywgYW5kIFdlYkNvcmUgaGVhZGVycyBhdXRvbWF0aWNhbGx5IHRvIHRhcmdlcnMgdXNp
bmcgdGhlbQpJbmRleDogTWFudWFsVGVzdHMvZGVsZXRlLWNoaW5lc2UtY2hhcmFjdGVyLXdpdGgt
aW1hZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBNYW51YWxUZXN0cy9kZWxldGUtY2hpbmVzZS1jaGFy
YWN0ZXItd2l0aC1pbWFnZS5odG1sCShub25leGlzdGVudCkKKysrIE1hbnVhbFRlc3RzL2RlbGV0
ZS1jaGluZXNlLWNoYXJhY3Rlci13aXRoLWltYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGh0dHAtZXF1aXY9J2Nv
bnRlbnQtdHlwZScgY29udGVudD0ndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jz4KKzxib2R5Pgor
PHA+VHlwZSBpbiAibmloYW8iIGFmdGVyIHRoZSBMaW5jb24ncyBpbWFnZSB1c2luZyBDaGluZXNl
IHBpbnlpbiBrZXlib2FyZCAoYW5kIG9ic2VydmUgaXQgZ2V0dGluZyBjb252ZXJ0ZWQgdG8gIiYj
eDRmNjA7JiN4NTk3RDsiKSwKK2FuZCB0aGVuIHByZXNzIGRlbGV0ZSBrZXkuIFNhZmFyaSBzaG91
bGRuJ3QgY3Jhc2guPC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGU+Cis8cD48YnI+PC9wPgorPHAg
c3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxNXB4OyI+PGltZyBzcmM9Imh0
dHBzOi8vc3ZuLndlYmtpdC5vcmcvcmVwb3NpdG9yeS93ZWJraXQvdHJ1bmsvTGF5b3V0VGVzdHMv
ZWRpdGluZy9yZXNvdXJjZXMvYWJlLnBuZyI+PC9wPgorPHA+aGVsbG8sIHdvcmxkPC9wPgorPC9k
aXY+Cis8c2NyaXB0PgorZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2JykuZm9jdXMoKTsKK2dl
dFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpLnBh
cmVudE5vZGUsIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDk3ODkpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxNi0xMi0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KKworICAgICAgICBEZWxldGluZyBhIGNoYXJhY3RlciBjb252ZXJ0ZWQgZnJv
bSBwaW55aW4gYWZ0ZXIgYW4gaW1hZ2UgY2F1c2VzIGEgU2FmYXJpIGNyYXNoCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU4MzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY3Jhc2ggd2FzIGNhdXNl
ZCBieSB0aGUgcGF5bG9hZCBvZiB0aGUgSVBDIG5vdCBiZWluZyBkZWNvZGVkIGNvcnJlY3RseSB3
aGVuIHRoZSBlbmNvZGVkIGF0dHJpYnV0ZWQgc3RyaW5nCisgICAgICAgIGNvbnRhaW5zIGEgTlNU
ZXh0QXR0YWNobWVudCBidXQgc2VuZDw+IHdvdWxkIHN0aWxsIGdsYWRseSBzZW5kIGl0IHRvIHRo
ZSBVSVByb2Nlc3MuCisKKyAgICAgICAgRml4ZWQgaXQgYnV5IG9taXR0aW5nIHRoZSBpbWFnZSBh
cyBkb25lIGluIHIxNzY0MTIgc2luY2UgZW5jb2RpbmcgTlNGaWxlV3JhcHBlciwgZXRjLi4uIHdv
dWxkIHJlcXVpcmUKKyAgICAgICAgcXVpdGUgYSBiaXQgb2Ygd29yaywgYW5kIElNRSBkb2Vzbid0
IHJlYWxseSBuZWVkIHRvIHNlZSB0aGUgaW1hZ2UgaW4gaXRzIGF0dHJpYnV0ZWQgc3RyaW5nLgor
CisgICAgICAgIEFsc28gY29udmVydGVkIGFzc2VydGlvbnMgaW4gdHlwZUZyb21PYmplY3QgYW5k
IGVuY29kZSBpbnNpZGUgQXJndW1lbnRDb2RlcnNNYWMgdG8gcmVsZWFzZSBhc3NlcnRpb25zCisg
ICAgICAgIHRvIGNyYXNoIGVhcmx5IGluc2lkZSBhIFdlYlByb2Nlc3MgaW5zdGVhZCBvZiBraWxs
aW5nIHRoZSBlbnRpcmUgVUlQcm9jZXNzIGZvciBhIHNpbWlsYXIgYnVnIGluIHRoZSBmdXR1cmUu
CisKKyAgICAgICAgKiBTaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAo
SVBDOjp0eXBlRnJvbU9iamVjdCk6IEtpbGwgV2ViUHJvY2Vzcywgbm90IFVJUHJvY2Vzcy4KKyAg
ICAgICAgKElQQzo6ZW5jb2RlKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphdHRyaWJ1dGVk
U3Vic3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyk6IEZpeGVkIHRoZSBidWcuCisKIDIwMTYt
MTItMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBGaXggQ01ha2UgYnVpbGQuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Fy
Z3VtZW50Q29kZXJzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQXJndW1lbnRDb2RlcnNNYWMubW0JKHJldmlzaW9uIDIwOTc4NSkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTkx
LDcgKzkxLDcgQEAgc3RhdGljIE5TVHlwZSB0eXBlRnJvbU9iamVjdChpZCBvYmplY3QpCiAgICAg
aWYgKFtvYmplY3QgaXNLaW5kT2ZDbGFzczpbTlNVUkwgY2xhc3NdXSkKICAgICAgICAgcmV0dXJu
IE5TVHlwZTo6VVJMOwogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTlNUeXBlOjpVbmtub3duOwogfQogCkBA
IC0xMzksNyArMTM5LDcgQEAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgaWQgb2JqZWN0
KQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBSZXRhaW5QdHI8aWQ+JiByZXN1bHQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCShyZXZpc2lvbiAy
MDk3ODUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIFdlYlBhZ2U6OmF0
dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBy
ZXN1bHQuc3RyaW5nID0gZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2UoKnJhbmdlKTsK
KyAgICByZXN1bHQuc3RyaW5nID0gZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2UoKnJh
bmdlLCBJbmNsdWRlSW1hZ2VzSW5BdHRyaWJ1dGVkU3RyaW5nOjpObyk7CiAgICAgTlNBdHRyaWJ1
dGVkU3RyaW5nKiBhdHRyaWJ1dGVkU3RyaW5nID0gcmVzdWx0LnN0cmluZy5nZXQoKTsKICAgICAK
ICAgICAvLyBXZWJDb3JlOjplZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZSgpIGluc2lz
dHMgb24gaW5zZXJ0aW5nIGEgdHJhaWxpbmcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297160</attachid>
            <date>2016-12-14 19:46:32 -0800</date>
            <delta_ts>2016-12-16 19:01:10 -0800</delta_ts>
            <desc>Updated per review comments</desc>
            <filename>bug-165839-20161214194541.patch</filename>
            <type>text/plain</type>
            <size>3578</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTc4
NSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE2LTEy
LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0aW5n
IGEgY2hhcmFjdGVyIGNvbnZlcnRlZCBmcm9tIHBpbnlpbiBhZnRlciBhbiBpbWFnZSBjYXVzZXMg
YSBTYWZhcmkgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIGEgbWFudWFsIHRlc3QuIEkgdHJpZWQgYnV0IEkgY291bGRuJ3QgbWFrZSB0
ZXh0SW5wdXRDb250cm9sbGVyIHRvIHRyaWdnZXIgdGhlIGNyYXNoLgorCisgICAgICAgIFRoZSBj
cmFzaCBpcyBwcm9iYWJseSBvbmx5IHJlcHJvZHVjaWJsZSB3aXRoIENoaW5lc2UgcGlueWluIElN
RSBvbiBNYWMgc2luY2UgSSBjYW4ndCByZXByb2R1Y2UKKyAgICAgICAgaXQgd2l0aCBKYXBhbmVz
ZSBJTUUgZWl0aGVyLgorCisgICAgICAgICogTWFudWFsVGVzdHMvZGVsZXRlLWNoaW5lc2UtY2hh
cmFjdGVyLXdpdGgtaW1hZ2UuaHRtbDogQWRkZWQuCisKIDIwMTYtMTItMTAgIEtvbnN0YW50aW4g
VG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFtjbWFrZV0gSW5jbHVkZSBX
VEYsIEpTQywgYW5kIFdlYkNvcmUgaGVhZGVycyBhdXRvbWF0aWNhbGx5IHRvIHRhcmdlcnMgdXNp
bmcgdGhlbQpJbmRleDogTWFudWFsVGVzdHMvZGVsZXRlLWNoaW5lc2UtY2hhcmFjdGVyLXdpdGgt
aW1hZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBNYW51YWxUZXN0cy9kZWxldGUtY2hpbmVzZS1jaGFy
YWN0ZXItd2l0aC1pbWFnZS5odG1sCShub25leGlzdGVudCkKKysrIE1hbnVhbFRlc3RzL2RlbGV0
ZS1jaGluZXNlLWNoYXJhY3Rlci13aXRoLWltYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGh0dHAtZXF1aXY9J2Nv
bnRlbnQtdHlwZScgY29udGVudD0ndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jz4KKzxib2R5Pgor
PHA+VHlwZSBpbiAibmloYW8iIGFmdGVyIHRoZSBMaW5jb24ncyBpbWFnZSB1c2luZyBDaGluZXNl
IHBpbnlpbiBrZXlib2FyZCAoYW5kIG9ic2VydmUgaXQgZ2V0dGluZyBjb252ZXJ0ZWQgdG8gIiYj
eDRmNjA7JiN4NTk3RDsiKSwKK2FuZCB0aGVuIHByZXNzIGRlbGV0ZSBrZXkuIFNhZmFyaSBzaG91
bGRuJ3QgY3Jhc2guPC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGU+Cis8cD48YnI+PC9wPgorPHAg
c3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxNXB4OyI+PGltZyBzcmM9Imh0
dHBzOi8vc3ZuLndlYmtpdC5vcmcvcmVwb3NpdG9yeS93ZWJraXQvdHJ1bmsvTGF5b3V0VGVzdHMv
ZWRpdGluZy9yZXNvdXJjZXMvYWJlLnBuZyI+PC9wPgorPHA+aGVsbG8sIHdvcmxkPC9wPgorPC9k
aXY+Cis8c2NyaXB0PgorZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2JykuZm9jdXMoKTsKK2dl
dFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpLnBh
cmVudE5vZGUsIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDk3ODkpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNi0xMi0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KKworICAgICAgICBEZWxldGluZyBhIGNoYXJhY3RlciBjb252ZXJ0ZWQgZnJv
bSBwaW55aW4gYWZ0ZXIgYW4gaW1hZ2UgY2F1c2VzIGEgU2FmYXJpIGNyYXNoCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU4MzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY3Jhc2ggd2FzIGNhdXNl
ZCBieSB0aGUgcGF5bG9hZCBvZiB0aGUgSVBDIG5vdCBiZWluZyBkZWNvZGVkIGNvcnJlY3RseSB3
aGVuIHRoZSBlbmNvZGVkIGF0dHJpYnV0ZWQgc3RyaW5nCisgICAgICAgIGNvbnRhaW5zIGEgTlNU
ZXh0QXR0YWNobWVudCBidXQgc2VuZDw+IHdvdWxkIHN0aWxsIGdsYWRseSBzZW5kIGl0IHRvIHRo
ZSBVSVByb2Nlc3MuCisKKyAgICAgICAgRml4ZWQgaXQgYnkgb21pdHRpbmcgdGhlIGltYWdlIGFz
IGRvbmUgaW4gcjE3NjQxMiBzaW5jZSBlbmNvZGluZyBOU0ZpbGVXcmFwcGVyLCBldGMuLi4gd291
bGQgcmVxdWlyZQorICAgICAgICBxdWl0ZSBhIGJpdCBvZiB3b3JrLCBhbmQgSU1FIGRvZXNuJ3Qg
cmVhbGx5IG5lZWQgdG8gc2VlIHRoZSBpbWFnZSBpbiBpdHMgYXR0cmlidXRlZCBzdHJpbmcuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFz
eW5jKTogRml4ZWQgdGhlIGJ1Zy4KKwogMjAxNi0xMi0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBDTWFrZSBidWlsZC4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW0JKHJldmlzaW9uIDIwOTc4NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvV2ViUGFnZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzYyLDcgKzM2Miw3IEBA
IHZvaWQgV2ViUGFnZTo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvckNoYXIKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHJlc3VsdC5zdHJpbmcgPSBlZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zy
b21SYW5nZSgqcmFuZ2UpOworICAgIHJlc3VsdC5zdHJpbmcgPSBlZGl0aW5nQXR0cmlidXRlZFN0
cmluZ0Zyb21SYW5nZSgqcmFuZ2UsIEluY2x1ZGVJbWFnZXNJbkF0dHJpYnV0ZWRTdHJpbmc6Ok5v
KTsKICAgICBOU0F0dHJpYnV0ZWRTdHJpbmcqIGF0dHJpYnV0ZWRTdHJpbmcgPSByZXN1bHQuc3Ry
aW5nLmdldCgpOwogICAgIAogICAgIC8vIFdlYkNvcmU6OmVkaXRpbmdBdHRyaWJ1dGVkU3RyaW5n
RnJvbVJhbmdlKCkgaW5zaXN0cyBvbiBpbnNlcnRpbmcgYSB0cmFpbGluZwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297380</attachid>
            <date>2016-12-16 19:01:14 -0800</date>
            <delta_ts>2016-12-16 19:03:52 -0800</delta_ts>
            <desc>Added a API test</desc>
            <filename>bug-165839-20161216190020.patch</filename>
            <type>text/plain</type>
            <size>12789</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTc4OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE2LTEyLTEzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0aW5nIGEgY2hhcmFjdGVy
IGNvbnZlcnRlZCBmcm9tIHBpbnlpbiBhZnRlciBhbiBpbWFnZSBjYXVzZXMgYSBTYWZhcmkgY3Jh
c2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTgz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBj
cmFzaCB3YXMgY2F1c2VkIGJ5IHRoZSBwYXlsb2FkIG9mIHRoZSBJUEMgbm90IGJlaW5nIGRlY29k
ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGVuY29kZWQgYXR0cmlidXRlZCBzdHJpbmcKKyAgICAgICAg
Y29udGFpbnMgYSBOU1RleHRBdHRhY2htZW50IGJ1dCBzZW5kPD4gd291bGQgc3RpbGwgZ2xhZGx5
IHNlbmQgaXQgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBGaXhlZCBpdCBieSBvbWl0dGlu
ZyB0aGUgaW1hZ2UgYXMgZG9uZSBpbiByMTc2NDEyIHNpbmNlIGVuY29kaW5nIE5TRmlsZVdyYXBw
ZXIsIGV0Yy4uLiB3b3VsZCByZXF1aXJlCisgICAgICAgIHF1aXRlIGEgYml0IG9mIHdvcmssIGFu
ZCBJTUUgZG9lc24ndCByZWFsbHkgbmVlZCB0byBzZWUgdGhlIGltYWdlIGluIGl0cyBhdHRyaWJ1
dGVkIHN0cmluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvckNo
YXJhY3RlclJhbmdlQXN5bmMpOiBGaXhlZCB0aGUgYnVnLgorCiAyMDE2LTEyLTEzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IENNYWtl
IGJ1aWxkLgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbQkocmV2aXNpb24gMjA5Nzg1KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0z
NjIsNyArMzYyLDcgQEAgdm9pZCBXZWJQYWdlOjphdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hhcgog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcmVzdWx0LnN0cmluZyA9IGVkaXRpbmdBdHRy
aWJ1dGVkU3RyaW5nRnJvbVJhbmdlKCpyYW5nZSk7CisgICAgcmVzdWx0LnN0cmluZyA9IGVkaXRp
bmdBdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlKCpyYW5nZSwgSW5jbHVkZUltYWdlc0luQXR0cmli
dXRlZFN0cmluZzo6Tm8pOwogICAgIE5TQXR0cmlidXRlZFN0cmluZyogYXR0cmlidXRlZFN0cmlu
ZyA9IHJlc3VsdC5zdHJpbmcuZ2V0KCk7CiAgICAgCiAgICAgLy8gV2ViQ29yZTo6ZWRpdGluZ0F0
dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2UoKSBpbnNpc3RzIG9uIGluc2VydGluZyBhIHRyYWlsaW5n
CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyMDk5NTQpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMyBAQAorMjAxNi0xMi0xNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBEZWxldGluZyBhIGNoYXJhY3RlciBjb252ZXJ0ZWQgZnJvbSBwaW55aW4gYWZ0
ZXIgYW4gaW1hZ2UgY2F1c2VzIGEgU2FmYXJpIGNyYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU4MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI3OTUxOTMzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIFdlYktpdCBBUEkgdGVzdCB0byBjYWxsIGF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQ
cm9wb3NlZFJhbmdlIG9uIGEgV0tXZWJWaWV3CisgICAgICAgIHdoaWxlIHRoZSBwcm9wb3NlZCBy
YW5nZSBjb250YWlucyBhbiBpbWFnZS4gVGhpcyBzaG91bGQgbm90IGNhdXNlIGEgV2ViUHJvY2Vz
cyB0byBjcmFzaAorICAgICAgICBvciBzZW5kIGFuIGludmFsaWQgbWVzc2FnZSB0byB0aGUgVUlQ
cm9jZXNzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L2NoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9z
ZWRSYW5nZVdpdGhJbWFnZS5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRG
aW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cHJvY2Vzc0RpZENy
YXNoKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmludmFsaWRNZXNzYWdlRnVuY3Rpb24pOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0Mi5BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJv
cG9zZWRSYW5nZVdpdGhJbWFnZSk6CisKIDIwMTYtMTItMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVmlzdWFsIHZpZXdwb3J0czogY2FyZXRzIGFu
ZCBzZWxlY3Rpb24gVUkgYXJlIGluY29ycmVjdGx5IHBvc2l0aW9uZWQgd2hlbiBlZGl0aW5nIGZp
eGVkIGVsZW1lbnRzCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjA5Nzg1
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ0NSw2ICs0NDUsOCBAQAogCQk5QjI2RkNDQTE1
OUQxNkRFMDBDQzM3NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNkZDQjQx
NTlEMTVFNzAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICovOyB9
OwogCQk5QjI3MEZFRTFEREMyQzBCMDAyRDUzRjMgLyogY2xvc2VkLXNoYWRvdy10cmVlLXRlc3Qu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjI3MEZFRDFEREMyNUZEMDAyRDUzRjMgLyogY2xvc2VkLXNoYWRvdy10cmVlLXRlc3QuaHRt
bCAqLzsgfTsKIAkJOUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFt
ZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUI0RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJ
dGVtLmh0bWwgKi87IH07CisJCTlCRDQyMzlBMUUwNEJEOTgwMDIwMDM5NSAvKiBBdHRyaWJ1dGVk
U3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCRDQyMzk5MUUwNEJEOTgwMDIwMDM5NSAvKiBB
dHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbSAqLzsgfTsKKwkJ
OUJENDIzOUMxRTA0QzAxQzAwMjAwMzk1IC8qIGNoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1hZ2Uu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QkQ0MjM5QjFFMDRCRkQwMDAyMDAzOTUgLyogY2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFn
ZS5odG1sICovOyB9OwogCQk5QzY0REMzMjFENzYxOThBMDA0QjU5OEUgLyogWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlDNjREQzMxMUQ3NjE5OEEwMDRCNTk4RSAvKiBZb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuY3BwICovOyB9OwogCQlBMTE0NkE4RDFEMkQ3MTE1MDAwRkU3MTAgLyogQ29udGVudEZpbHRl
cmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MTQ2QThBMUQyRDcwNEYwMDBGRTcxMCAvKiBDb250ZW50RmlsdGVyaW5nLm1tICovOyB9OwogCQlB
MTI1NDc4RjFEQjE4Qjk0MDAzNTg1NjQgLyogTG9hZERhdGFXaXRoTmlsTUlNRVR5cGUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTI1NDc4RDFEQjE4
Qjk0MDAzNTg1NjQgLyogTG9hZERhdGFXaXRoTmlsTUlNRVR5cGUubW0gKi87IH07CkBAIC01ODgs
NiArNTkwLDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRz
dFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJOUJENDIzOUMxRTA0QzAxQzAw
MjAwMzk1IC8qIGNoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk1QzlFNTY4NzFERjkxNEFFMDBDOUVFMzMgLyogY29udGVudEJsb2NrZXJD
aGVjay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTA3NDkyQjNDMURGOEI4NjYwMDYz
M0RFMSAvKiBlbnVtZXJhdGVNZWRpYURldmljZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk5QjI3MEZFRTFEREMyQzBCMDAyRDUzRjMgLyogY2xvc2VkLXNoYWRvdy10cmVlLXRlc3Qu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTExMDUsNiArMTEwOCw4IEBACiAJCTlCNEY4
RkEzMTU5RDUyQjEwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVt
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjRGOEZBNjE1OUQ1MkNBMDAyRDlG
OTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTlCNzkxNjRGMUJEODlEMEQwMEQ1MEI4RiAvKiBGaXJzdFJlc3BvbmRlclNjcm9s
bGluZ1Bvc2l0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOUJENDIzOTkxRTA0QkQ5ODAwMjAwMzk1IC8qIEF0dHJpYnV0ZWRTdWJzdHJpbmdG
b3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCRDQyMzlCMUUwNEJGRDAwMDIwMDM5
NSAvKiBjaGluZXNlLWNoYXJhY3Rlci13aXRoLWltYWdlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAiY2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZS5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUM2NERDMzExRDc2MTk4QTAwNEI1OThFIC8qIFlvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMTE0NkE4QTFEMkQ3MDRGMDAwRkU3MTAgLyogQ29udGVudEZpbHRlcmluZy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvbnRlbnRGaWx0ZXJpbmcubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMjU0NzhEMURCMThCOTQwMDM1ODU2NCAv
KiBMb2FkRGF0YVdpdGhOaWxNSU1FVHlwZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IExvYWREYXRhV2l0aE5pbE1JTUVUeXBlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTg5Miw2ICsxODk3LDcgQEAKIAkJQkM5MDk3N0IxMjU1NzFBRTAwMDgz
NzU2IC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJOUJENDIzOUIxRTA0QkZEMDAwMjAwMzk1IC8qIGNoaW5lc2UtY2hhcmFjdGVyLXdp
dGgtaW1hZ2UuaHRtbCAqLywKIAkJCQkwNzQ5MkIzOTFERjhBREE0MDA2MzNERTEgLyogZW51bWVy
YXRlTWVkaWFEZXZpY2VzLmh0bWwgKi8sCiAJCQkJQzA0NUY5NDYxMzg1QzJGODAwQzBGM0NEIC8q
IDE4LWNoYXJhY3RlcnMuaHRtbCAqLywKIAkJCQkxQzJCODE4NTFDODkyNTIzMDBBNTUyOUYgLyog
QWhlbS50dGYgKi8sCkBAIC0yMTA5LDYgKzIxMTUsNyBAQAogCQlDMEM1RDNCQjE0NTk4QjZGMDBB
ODAyQTYgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQk5QkQ0MjM5OTFFMDRCRDk4MDAyMDAzOTUgLyogQXR0cmlidXRlZFN1YnN0cmluZ0ZvclBy
b3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0gKi8sCiAJCQkJODM0OUQzQzExREI5NkREQTAwNEE5RjY1
IC8qIENvbnRleHRNZW51RG93bmxvYWQubW0gKi8sCiAJCQkJQkNBQTQ4NTcxNEEwNDRENDAwODhG
QUM0IC8qIEVkaXRvckNvbW1hbmRzLm1tICovLAogCQkJCUMwQzVEM0JDMTQ1OThCNkYwMEE4MDJB
NiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3IubW0gKi8sCkBAIC0yNjY3LDYgKzI2NzQsNyBAQAog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTJFNzc2
NUNEMTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOUJE
NDIzOUExRTA0QkQ5ODAwMjAwMzk1IC8qIEF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJh
bmdlV2l0aEltYWdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FEM0ZFOEUxRDc2MTMxMjAwQjE2
OUE0IC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNzc2
NUNGMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2NoaW5lc2UtY2hhcmFjdGVy
LXdpdGgtaW1hZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvY2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZS5odG1sCShub25leGlzdGVudCkK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9jaGluZXNlLWNoYXJhY3Rlci13
aXRoLWltYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxtZXRhIGh0dHAtZXF1aXY9J2NvbnRlbnQtdHlwZScgY29udGVudD0n
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jz4KKzxib2R5PgorPGRpdiBjb250ZW50ZWRpdGFibGU+
Cis8cD48YnI+PC9wPgorPHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAx
NXB4OyI+PGltZyBzcmM9Imljb24ucG5nIj7kvaA8L3A+Cis8cD5oZWxsbywgd29ybGQ8L3A+Cis8
L2Rpdj4KKzxzY3JpcHQ+Citkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKS5mb2N1cygpOwor
Z2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW1nJyku
cGFyZW50Tm9kZSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclBy
b3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdp
dGhJbWFnZS5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0UHJpdmF0ZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorCitAaW50ZXJmYWNlIFdLVmlldyAoKQorLSAo
dm9pZClhdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZTooTlNSYW5nZSluc1Jhbmdl
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TQXR0cmlidXRlZFN0cmluZyAqYXR0clN0cmlu
ZywgTlNSYW5nZSBhY3R1YWxSYW5nZSkpY29tcGxldGlvbkhhbmRsZXJQdHI7CitAZW5kCisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIGJvb2wgZGlkRmluaXNoTG9hZCA9IGZh
bHNlOworc3RhdGljIGJvb2wgZGlkRmluaXNoVGVzdCA9IGZhbHNlOworc3RhdGljIGJvb2wgZGlk
T2JzZXJ2ZVdlYlByb2Nlc3NUb0NyYXNoID0gZmFsc2U7CitzdGF0aWMgYm9vbCBkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UgPSBmYWxzZTsKKworc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZy
YW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKikKK3sKKyAg
ICBkaWRGaW5pc2hMb2FkID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgcHJvY2Vzc0RpZENyYXNo
KFdLUGFnZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgZGlkT2JzZXJ2ZVdlYlByb2Nlc3NUb0Ny
YXNoID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgaW52YWxpZE1lc3NhZ2VGdW5jdGlvbihXS1N0
cmluZ1JlZiBtZXNzYWdlTmFtZSkKK3sKKyAgICBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgPSB0
cnVlOworfQorCitURVNUKFdlYktpdDIsIEF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJh
bmdlV2l0aEltYWdlKQoreworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChB
ZG9wdFdLLCBVdGlsOjpjcmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOworICAgIFdL
UmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAoQWRvcHRXSywgV0tQYWdlR3JvdXBD
cmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJv
cG9zZWRSYW5nZVdpdGhJbWFnZVBhZ2VHcm91cCIpLmdldCgpKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKworICAgIFdLUGFn
ZUxvYWRlckNsaWVudFYwIGxvYWRlckNsaWVudDsKKyAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwg
MCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOworICAgIGxvYWRlckNsaWVudC5iYXNlLnZlcnNpb24g
PSAwOworICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUgPSBkaWRGaW5pc2hM
b2FkRm9yRnJhbWU7CisgICAgbG9hZGVyQ2xpZW50LnByb2Nlc3NEaWRDcmFzaCA9IHByb2Nlc3NE
aWRDcmFzaDsKKyAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAm
bG9hZGVyQ2xpZW50LmJhc2UpOworCisgICAgV0tDb250ZXh0U2V0SW52YWxpZE1lc3NhZ2VGdW5j
dGlvbihpbnZhbGlkTWVzc2FnZUZ1bmN0aW9uKTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVm
PiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImNoaW5lc2UtY2hhcmFj
dGVyLXdpdGgtaW1hZ2UiLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFn
ZSgpLCB1cmwuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisKKyAgICBb
d2ViVmlldy5wbGF0Zm9ybVZpZXcoKSBhdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5n
ZTpOU01ha2VSYW5nZSgwLCAzKSBjb21wbGV0aW9uSGFuZGxlcjogXihOU0F0dHJpYnV0ZWRTdHJp
bmcgKmF0dHJTdHJpbmcsIE5TUmFuZ2UgYWN0dWFsUmFuZ2UpIHsKKyAgICAgICAgZGlkRmluaXNo
VGVzdCA9IHRydWU7CisgICAgfV07CisKKyAgICBVdGlsOjpydW4oJmRpZEZpbmlzaFRlc3QpOwor
ICAgIEVYUEVDVF9FUShkaWRPYnNlcnZlV2ViUHJvY2Vzc1RvQ3Jhc2gsIGZhbHNlKTsKKyAgICBF
WFBFQ1RfRVEoZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlLCBmYWxzZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297381</attachid>
            <date>2016-12-16 19:03:56 -0800</date>
            <delta_ts>2016-12-16 19:40:04 -0800</delta_ts>
            <desc>Added a API test</desc>
            <filename>bug-165839-20161216190301.patch</filename>
            <type>text/plain</type>
            <size>7828</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTk1NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE2LTEyLTEzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0aW5nIGEgY2hhcmFjdGVy
IGNvbnZlcnRlZCBmcm9tIHBpbnlpbiBhZnRlciBhbiBpbWFnZSBjYXVzZXMgYSBTYWZhcmkgY3Jh
c2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTgz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBj
cmFzaCB3YXMgY2F1c2VkIGJ5IHRoZSBwYXlsb2FkIG9mIHRoZSBJUEMgbm90IGJlaW5nIGRlY29k
ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGVuY29kZWQgYXR0cmlidXRlZCBzdHJpbmcKKyAgICAgICAg
Y29udGFpbnMgYSBOU1RleHRBdHRhY2htZW50IGJ1dCBzZW5kPD4gd291bGQgc3RpbGwgZ2xhZGx5
IHNlbmQgaXQgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBGaXhlZCBpdCBieSBvbWl0dGlu
ZyB0aGUgaW1hZ2UgYXMgZG9uZSBpbiByMTc2NDEyIHNpbmNlIGVuY29kaW5nIE5TRmlsZVdyYXBw
ZXIsIGV0Yy4uLiB3b3VsZCByZXF1aXJlCisgICAgICAgIHF1aXRlIGEgYml0IG9mIHdvcmssIGFu
ZCBJTUUgZG9lc24ndCByZWFsbHkgbmVlZCB0byBzZWUgdGhlIGltYWdlIGluIGl0cyBhdHRyaWJ1
dGVkIHN0cmluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvckNo
YXJhY3RlclJhbmdlQXN5bmMpOiBGaXhlZCB0aGUgYnVnLgorCiAyMDE2LTEyLTE2ICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzZXR0aW5nIHRvIHN1cHBy
ZXNzIGtleWJvYXJkIGlucHV0IGR1cmluZyBwcm92aXNpb25hbCBuYXZpZ2F0aW9uCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCShyZXZpc2lvbiAyMDk5NTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2Miw3ICszNjIsNyBAQCB2
b2lkIFdlYlBhZ2U6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICByZXN1bHQuc3RyaW5nID0gZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9t
UmFuZ2UoKnJhbmdlKTsKKyAgICByZXN1bHQuc3RyaW5nID0gZWRpdGluZ0F0dHJpYnV0ZWRTdHJp
bmdGcm9tUmFuZ2UoKnJhbmdlLCBJbmNsdWRlSW1hZ2VzSW5BdHRyaWJ1dGVkU3RyaW5nOjpObyk7
CiAgICAgTlNBdHRyaWJ1dGVkU3RyaW5nKiBhdHRyaWJ1dGVkU3RyaW5nID0gcmVzdWx0LnN0cmlu
Zy5nZXQoKTsKICAgICAKICAgICAvLyBXZWJDb3JlOjplZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zy
b21SYW5nZSgpIGluc2lzdHMgb24gaW5zZXJ0aW5nIGEgdHJhaWxpbmcKSW5kZXg6IFRvb2xzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTk1NCkK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE2
LTEyLTE2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0
aW5nIGEgY2hhcmFjdGVyIGNvbnZlcnRlZCBmcm9tIHBpbnlpbiBhZnRlciBhbiBpbWFnZSBjYXVz
ZXMgYSBTYWZhcmkgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2NTgzOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc5NTE5MzM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgV2ViS2l0
IEFQSSB0ZXN0IHRvIGNhbGwgYXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2Ugb24g
YSBXS1dlYlZpZXcKKyAgICAgICAgd2hpbGUgdGhlIHByb3Bvc2VkIHJhbmdlIGNvbnRhaW5zIGFu
IGltYWdlLiBUaGlzIHNob3VsZCBub3QgY2F1c2UgYSBXZWJQcm9jZXNzIHRvIGNyYXNoCisgICAg
ICAgIG9yIHNlbmQgYW4gaW52YWxpZCBtZXNzYWdlIHRvIHRoZSBVSVByb2Nlc3MuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvY2hpbmVzZS1jaGFyYWN0
ZXItd2l0aC1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdl
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZEZpbmlzaExvYWRGb3JGcmFt
ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpwcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6aW52YWxpZE1lc3NhZ2VGdW5jdGlvbik6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpXZWJLaXQyLkF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aElt
YWdlKToKKwogMjAxNi0xMi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBWaXN1YWwgdmlld3BvcnRzOiBjYXJldHMgYW5kIHNlbGVjdGlvbiBVSSBh
cmUgaW5jb3JyZWN0bHkgcG9zaXRpb25lZCB3aGVuIGVkaXRpbmcgZml4ZWQgZWxlbWVudHMKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9jaGluZXNlLWNoYXJhY3Rlci13
aXRoLWltYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL2NoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1hZ2UuaHRtbAkobm9uZXhpc3RlbnQpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvY2hpbmVzZS1jaGFyYWN0ZXItd2l0
aC1pbWFnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8bWV0YSBodHRwLWVxdWl2PSdjb250ZW50LXR5cGUnIGNvbnRlbnQ9J3Rl
eHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Cis8Ym9keT4KKzxkaXYgY29udGVudGVkaXRhYmxlPgor
PHA+PGJyPjwvcD4KKzxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTVw
eDsiPjxpbWcgc3JjPSJpY29uLnBuZyI+5L2gPC9wPgorPHA+aGVsbG8sIHdvcmxkPC9wPgorPC9k
aXY+Cis8c2NyaXB0PgorZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2JykuZm9jdXMoKTsKK2dl
dFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpLnBh
cmVudE5vZGUsIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9w
b3NlZFJhbmdlV2l0aEltYWdlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRo
SW1hZ2UubW0JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGUuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBXS1ZpZXcgKCkKKy0gKHZv
aWQpYXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2U6KE5TUmFuZ2UpbnNSYW5nZSBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU0F0dHJpYnV0ZWRTdHJpbmcgKmF0dHJTdHJpbmcs
IE5TUmFuZ2UgYWN0dWFsUmFuZ2UpKWNvbXBsZXRpb25IYW5kbGVyUHRyOworQGVuZAorCituYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRpZEZpbmlzaExvYWQgPSBmYWxz
ZTsKK3N0YXRpYyBib29sIGRpZEZpbmlzaFRlc3QgPSBmYWxzZTsKK3N0YXRpYyBib29sIGRpZE9i
c2VydmVXZWJQcm9jZXNzVG9DcmFzaCA9IGZhbHNlOworc3RhdGljIGJvb2wgZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlID0gZmFsc2U7CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFt
ZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAg
ZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIHByb2Nlc3NEaWRDcmFzaChX
S1BhZ2VSZWYsIGNvbnN0IHZvaWQqKQoreworICAgIGRpZE9ic2VydmVXZWJQcm9jZXNzVG9DcmFz
aCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIGludmFsaWRNZXNzYWdlRnVuY3Rpb24oV0tTdHJp
bmdSZWYgbWVzc2FnZU5hbWUpCit7CisgICAgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlID0gdHJ1
ZTsKK30KKworVEVTVChXZWJLaXQyLCBBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5n
ZVdpdGhJbWFnZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRv
cHRXSywgVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKKyAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwKEFkb3B0V0ssIFdLUGFnZUdyb3VwQ3Jl
YXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bv
c2VkUmFuZ2VXaXRoSW1hZ2VQYWdlR3JvdXAiKS5nZXQoKSkpOworICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisKKyAgICBXS1BhZ2VM
b2FkZXJDbGllbnRWMCBsb2FkZXJDbGllbnQ7CisgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAs
IHNpemVvZihsb2FkZXJDbGllbnQpKTsKKyAgICBsb2FkZXJDbGllbnQuYmFzZS52ZXJzaW9uID0g
MDsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0gZGlkRmluaXNoTG9h
ZEZvckZyYW1lOworICAgIGxvYWRlckNsaWVudC5wcm9jZXNzRGlkQ3Jhc2ggPSBwcm9jZXNzRGlk
Q3Jhc2g7CisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJmxv
YWRlckNsaWVudC5iYXNlKTsKKworICAgIFdLQ29udGV4dFNldEludmFsaWRNZXNzYWdlRnVuY3Rp
b24oaW52YWxpZE1lc3NhZ2VGdW5jdGlvbik7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4g
dXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJjaGluZXNlLWNoYXJhY3Rl
ci13aXRoLWltYWdlIiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2Uo
KSwgdXJsLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworCisgICAgW3dl
YlZpZXcucGxhdGZvcm1WaWV3KCkgYXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2U6
TlNNYWtlUmFuZ2UoMCwgMykgY29tcGxldGlvbkhhbmRsZXI6IF4oTlNBdHRyaWJ1dGVkU3RyaW5n
ICphdHRyU3RyaW5nLCBOU1JhbmdlIGFjdHVhbFJhbmdlKSB7CisgICAgICAgIGRpZEZpbmlzaFRl
c3QgPSB0cnVlOworICAgIH1dOworCisgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hUZXN0KTsKKyAg
ICBFWFBFQ1RfRVEoZGlkT2JzZXJ2ZVdlYlByb2Nlc3NUb0NyYXNoLCBmYWxzZSk7CisgICAgRVhQ
RUNUX0VRKGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSwgZmFsc2UpOworfQorCit9IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297385</attachid>
            <date>2016-12-16 19:40:09 -0800</date>
            <delta_ts>2016-12-16 20:04:45 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-165839-20161216193915.patch</filename>
            <type>text/plain</type>
            <size>12808</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTk1NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE2LTEyLTEzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0aW5nIGEgY2hhcmFjdGVy
IGNvbnZlcnRlZCBmcm9tIHBpbnlpbiBhZnRlciBhbiBpbWFnZSBjYXVzZXMgYSBTYWZhcmkgY3Jh
c2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTgz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRoZSBjcmFz
aCB3YXMgY2F1c2VkIGJ5IHRoZSBwYXlsb2FkIG9mIHRoZSBJUEMgbm90IGJlaW5nIGRlY29kZWQg
Y29ycmVjdGx5IHdoZW4gdGhlIGVuY29kZWQgYXR0cmlidXRlZCBzdHJpbmcKKyAgICAgICAgY29u
dGFpbnMgYSBOU1RleHRBdHRhY2htZW50IGJ1dCBzZW5kPD4gd291bGQgc3RpbGwgZ2xhZGx5IHNl
bmQgaXQgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBGaXhlZCBpdCBieSBvbWl0dGluZyB0
aGUgaW1hZ2UgYXMgZG9uZSBpbiByMTc2NDEyIHNpbmNlIGVuY29kaW5nIE5TRmlsZVdyYXBwZXIs
IGV0Yy4uLiB3b3VsZCByZXF1aXJlCisgICAgICAgIHF1aXRlIGEgYml0IG9mIHdvcmssIGFuZCBJ
TUUgZG9lc24ndCByZWFsbHkgbmVlZCB0byBzZWUgdGhlIGltYWdlIGluIGl0cyBhdHRyaWJ1dGVk
IHN0cmluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvckNoYXJh
Y3RlclJhbmdlQXN5bmMpOiBGaXhlZCB0aGUgYnVnLgorCiAyMDE2LTEyLTE2ICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzZXR0aW5nIHRvIHN1cHByZXNz
IGtleWJvYXJkIGlucHV0IGR1cmluZyBwcm92aXNpb25hbCBuYXZpZ2F0aW9uCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
CShyZXZpc2lvbiAyMDk5NTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dlYlBhZ2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lk
IFdlYlBhZ2U6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICByZXN1bHQuc3RyaW5nID0gZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFu
Z2UoKnJhbmdlKTsKKyAgICByZXN1bHQuc3RyaW5nID0gZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdG
cm9tUmFuZ2UoKnJhbmdlLCBJbmNsdWRlSW1hZ2VzSW5BdHRyaWJ1dGVkU3RyaW5nOjpObyk7CiAg
ICAgTlNBdHRyaWJ1dGVkU3RyaW5nKiBhdHRyaWJ1dGVkU3RyaW5nID0gcmVzdWx0LnN0cmluZy5n
ZXQoKTsKICAgICAKICAgICAvLyBXZWJDb3JlOjplZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zyb21S
YW5nZSgpIGluc2lzdHMgb24gaW5zZXJ0aW5nIGEgdHJhaWxpbmcKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTk1NCkKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE2LTEy
LTE2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0aW5n
IGEgY2hhcmFjdGVyIGNvbnZlcnRlZCBmcm9tIHBpbnlpbiBhZnRlciBhbiBpbWFnZSBjYXVzZXMg
YSBTYWZhcmkgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NTgzOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc5NTE5MzM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEFkZCBhIFdlYktpdCBBUEkg
dGVzdCB0byBjYWxsIGF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlIG9uIGEgV0tX
ZWJWaWV3CisgICAgICAgIHdoaWxlIHRoZSBwcm9wb3NlZCByYW5nZSBjb250YWlucyBhbiBpbWFn
ZS4gVGhpcyBzaG91bGQgbm90IGNhdXNlIGEgV2ViUHJvY2VzcyB0byBjcmFzaAorICAgICAgICBv
ciBzZW5kIGFuIGludmFsaWQgbWVzc2FnZSB0byB0aGUgVUlQcm9jZXNzLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2NoaW5lc2UtY2hhcmFjdGVyLXdp
dGgtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbTog
QWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6cHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmludmFsaWRNZXNzYWdlRnVuY3Rpb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6V2ViS2l0Mi5BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZSk6
CisKIDIwMTYtMTItMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgVmlzdWFsIHZpZXdwb3J0czogY2FyZXRzIGFuZCBzZWxlY3Rpb24gVUkgYXJlIGlu
Y29ycmVjdGx5IHBvc2l0aW9uZWQgd2hlbiBlZGl0aW5nIGZpeGVkIGVsZW1lbnRzCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjA5OTU0KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0OSw2ICs0NDksOCBAQAogCQk5QjI2RkNDQTE1OUQxNkRFMDBDQzM3NjUgLyogSFRN
TEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNkZDQjQxNTlEMTVFNzAwQ0MzNzY1IC8qIEhU
TUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICovOyB9OwogCQk5QjI3MEZFRTFEREMyQzBC
MDAyRDUzRjMgLyogY2xvc2VkLXNoYWRvdy10cmVlLXRlc3QuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI3MEZFRDFEREMyNUZEMDAy
RDUzRjMgLyogY2xvc2VkLXNoYWRvdy10cmVlLXRlc3QuaHRtbCAqLzsgfTsKIAkJOUI0RjhGQTcx
NTlENTJERDAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI0RjhGQTYxNTlE
NTJDQTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi87IH07CisJCTlC
RDQyMzlBMUUwNEJEOTgwMDIwMDM5NSAvKiBBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRS
YW5nZVdpdGhJbWFnZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCRDQyMzk5MUUwNEJEOTgwMDIwMDM5NSAvKiBBdHRyaWJ1dGVkU3Vic3RyaW5nRm9y
UHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbSAqLzsgfTsKKwkJOUJENDIzOUMxRTA0QzAxQzAwMjAw
Mzk1IC8qIGNoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkQ0MjM5QjFFMDRCRkQwMDAy
MDAzOTUgLyogY2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZS5odG1sICovOyB9OwogCQk5QzY0
REMzMjFENzYxOThBMDA0QjU5OEUgLyogWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNjREQzMxMUQ3NjE5
OEEwMDRCNTk4RSAvKiBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwICovOyB9OwogCQlBMTE0
NkE4RDFEMkQ3MTE1MDAwRkU3MTAgLyogQ29udGVudEZpbHRlcmluZy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTQ2QThBMUQyRDcwNEYwMDBGRTcx
MCAvKiBDb250ZW50RmlsdGVyaW5nLm1tICovOyB9OwogCQlBMTI1NDc4RjFEQjE4Qjk0MDAzNTg1
NjQgLyogTG9hZERhdGFXaXRoTmlsTUlNRVR5cGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTI1NDc4RDFEQjE4Qjk0MDAzNTg1NjQgLyogTG9hZERh
dGFXaXRoTmlsTUlNRVR5cGUubW0gKi87IH07CkBAIC01OTIsNiArNTk0LDcgQEAKIAkJCWRzdFBh
dGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3Owog
CQkJZmlsZXMgPSAoCisJCQkJOUJENDIzOUMxRTA0QzAxQzAwMjAwMzk1IC8qIGNoaW5lc2UtY2hh
cmFjdGVyLXdpdGgtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTEwRkNG
OTFFMDFDRDhBMDA2RjhEMEIgLyogSW5kZXhVcGdyYWRlLmJsb2IgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJNTExMEZDRjYxRTAxQ0Q4MzAwNkY4RDBCIC8qIEluZGV4VXBncmFkZS5zcWxpdGUz
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxMTBGQ0YxMUUwMUNENjQwMDZGOEQwQiAvKiBJ
REJJbmRleFVwZ3JhZGVUb1YyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMTE2LDYg
KzExMTksOCBAQAogCQk5QjRGOEZBMzE1OUQ1MkIxMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25O
YW1lZEl0ZW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBIVE1M
Q29sbGVjdGlvbk5hbWVkSXRlbS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0
RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5Qjc5MTY0RjFCRDg5RDBEMDBENTBCOEYgLyog
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCRDQyMzk5MUUwNEJEOTgwMDIwMDM5NSAvKiBB
dHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9w
b3NlZFJhbmdlV2l0aEltYWdlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QkQ0
MjM5QjFFMDRCRkQwMDAyMDAzOTUgLyogY2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1h
Z2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlDNjREQzMxMUQ3NjE5OEEw
MDRCNTk4RSAvKiBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNDZBOEExRDJENzA0RjAwMEZFNzEwIC8qIENvbnRl
bnRGaWx0ZXJpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBD
b250ZW50RmlsdGVyaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTI1NDc4
RDFEQjE4Qjk0MDAzNTg1NjQgLyogTG9hZERhdGFXaXRoTmlsTUlNRVR5cGUubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkRGF0YVdpdGhOaWxNSU1FVHlwZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MDcsNiArMTkxMiw3IEBACiAJCUJD
OTA5NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTlCRDQyMzlCMUUwNEJGRDAwMDIwMDM5NSAvKiBj
aGluZXNlLWNoYXJhY3Rlci13aXRoLWltYWdlLmh0bWwgKi8sCiAJCQkJMDc0OTJCMzkxREY4QURB
NDAwNjMzREUxIC8qIGVudW1lcmF0ZU1lZGlhRGV2aWNlcy5odG1sICovLAogCQkJCUMwNDVGOTQ2
MTM4NUMyRjgwMEMwRjNDRCAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgKi8sCiAJCQkJMUMyQjgxODUx
Qzg5MjUyMzAwQTU1MjlGIC8qIEFoZW0udHRmICovLApAQCAtMjEyNCw2ICsyMTMwLDcgQEAKIAkJ
QzBDNUQzQkIxNDU5OEI2RjAwQTgwMkE2IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOUJENDIzOTkxRTA0QkQ5ODAwMjAwMzk1IC8qIEF0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tICovLAogCQkJCTgzNDlE
M0MxMURCOTZEREEwMDRBOUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tICovLAogCQkJCUJD
QUE0ODU3MTRBMDQ0RDQwMDg4RkFDNCAvKiBFZGl0b3JDb21tYW5kcy5tbSAqLywKIAkJCQlDMEM1
RDNCQzE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICovLApAQCAt
MjY4Myw2ICsyNjkwLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlm
aWxlcyA9ICgKIAkJCQkyRTc3NjVDRDE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTlCRDQyMzlBMUUwNEJEOTgwMDIwMDM5NSAvKiBBdHRyaWJ1dGVkU3Vi
c3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdB
RDNGRThFMUQ3NjEzMTIwMEIxNjlBNCAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRTc3NjVDRjE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9jaGluZXNlLWNoYXJhY3Rlci13aXRoLWltYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2NoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1hZ2Uu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
Y2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBodHRwLWVxdWl2PSdjb250
ZW50LXR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Cis8Ym9keT4KKzxk
aXYgY29udGVudGVkaXRhYmxlPgorPHA+PGJyPjwvcD4KKzxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBj
ZW50ZXI7IGZvbnQtc2l6ZTogMTVweDsiPjxpbWcgc3JjPSJpY29uLnBuZyI+5L2gPC9wPgorPHA+
aGVsbG8sIHdvcmxkPC9wPgorPC9kaXY+Cis8c2NyaXB0PgorZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignZGl2JykuZm9jdXMoKTsKK2dldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ2ltZycpLnBhcmVudE5vZGUsIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvbWFjL0F0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvQXR0cmlidXRlZFN1YnN0cmlu
Z0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9z
ZWRSYW5nZVdpdGhJbWFnZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLQ29u
dGV4dFByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKworQGludGVy
ZmFjZSBXS1ZpZXcgKCkKKy0gKHZvaWQpYXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFu
Z2U6KE5TUmFuZ2UpbnNSYW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU0F0dHJpYnV0
ZWRTdHJpbmcgKmF0dHJTdHJpbmcsIE5TUmFuZ2UgYWN0dWFsUmFuZ2UpKWNvbXBsZXRpb25IYW5k
bGVyUHRyOworQGVuZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29s
IGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKK3N0YXRpYyBib29sIGRpZEZpbmlzaFRlc3QgPSBmYWxz
ZTsKK3N0YXRpYyBib29sIGRpZE9ic2VydmVXZWJQcm9jZXNzVG9DcmFzaCA9IGZhbHNlOworc3Rh
dGljIGJvb2wgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlID0gZmFsc2U7CisKK3N0YXRpYyB2b2lk
IGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiwg
Y29uc3Qgdm9pZCopCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CisKK3N0YXRpYyB2
b2lkIHByb2Nlc3NEaWRDcmFzaChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqKQoreworICAgIGRpZE9i
c2VydmVXZWJQcm9jZXNzVG9DcmFzaCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIGludmFsaWRN
ZXNzYWdlRnVuY3Rpb24oV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUpCit7CisgICAgZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQyLCBBdHRyaWJ1dGVkU3Vi
c3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3Rl
ZEJ1bmRsZSgpKTsKKyAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwKEFk
b3B0V0ssIFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiQXR0cmli
dXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2VQYWdlR3JvdXAiKS5nZXQoKSkp
OworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5n
ZXQoKSk7CisKKyAgICBXS1BhZ2VMb2FkZXJDbGllbnRWMCBsb2FkZXJDbGllbnQ7CisgICAgbWVt
c2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKKyAgICBsb2FkZXJD
bGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZv
ckZyYW1lID0gZGlkRmluaXNoTG9hZEZvckZyYW1lOworICAgIGxvYWRlckNsaWVudC5wcm9jZXNz
RGlkQ3Jhc2ggPSBwcm9jZXNzRGlkQ3Jhc2g7CisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVu
dCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKKworICAgIFdLQ29udGV4dFNl
dEludmFsaWRNZXNzYWdlRnVuY3Rpb24oaW52YWxpZE1lc3NhZ2VGdW5jdGlvbik7CisKKyAgICBX
S1JldGFpblB0cjxXS1VSTFJlZj4gdXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291
cmNlKCJjaGluZXNlLWNoYXJhY3Rlci13aXRoLWltYWdlIiwgImh0bWwiKSk7CisgICAgV0tQYWdl
TG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJmRpZEZp
bmlzaExvYWQpOworCisgICAgW3dlYlZpZXcucGxhdGZvcm1WaWV3KCkgYXR0cmlidXRlZFN1YnN0
cmluZ0ZvclByb3Bvc2VkUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMykgY29tcGxldGlvbkhhbmRsZXI6
IF4oTlNBdHRyaWJ1dGVkU3RyaW5nICphdHRyU3RyaW5nLCBOU1JhbmdlIGFjdHVhbFJhbmdlKSB7
CisgICAgICAgIGRpZEZpbmlzaFRlc3QgPSB0cnVlOworICAgIH1dOworCisgICAgVXRpbDo6cnVu
KCZkaWRGaW5pc2hUZXN0KTsKKyAgICBFWFBFQ1RfRVEoZGlkT2JzZXJ2ZVdlYlByb2Nlc3NUb0Ny
YXNoLCBmYWxzZSk7CisgICAgRVhQRUNUX0VRKGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSwgZmFs
c2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>