<?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>169914</bug_id>
          
          <creation_ts>2017-03-21 06:22:54 -0700</creation_ts>
          <short_desc>[JSC][DFG] Propagate AnyIntAsDouble information carefully to utilize it in fixup</short_desc>
          <delta_ts>2017-03-23 00:51:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1289761</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 06:22:54 -0700</bug_when>
    <thetext>[JSC][DFG] Propagate AnyIntAsDouble information carefully to utilize it in fixup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289762</commentid>
    <comment_count>1</comment_count>
      <attachid>305000</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 06:23:32 -0700</bug_when>
    <thetext>Created attachment 305000
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289764</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 06:31:49 -0700</bug_when>
    <thetext>We should investigate the heap prediction to offer proper Double speculation for the result of GetByVal. By doing so, we can propagate AnyIntAsDouble information in prediction propagation phase.
And later, in fixup, we can select ArithAdd(Int52, Int52) for such integers.

The current implementation is sooooooooo fragile, it&apos;s WIP. We should select appropriate ValueAdd fixup super carefully. For example, when both values are AnyIntAsDouble, we have a chance to make it to ArithAdd(Int52, Int52). But if it always overflows, we should select ArithAdd(Double, Double).

Good news: With the current WIP, we can gain perf improvement in kraken crypto benchmarks.

                                                       baseline                  patched

            stanford-crypto-aes                     58.704+-2.227             56.238+-2.149           might be 1.0438x faster
            stanford-crypto-ccm                     52.842+-3.927             51.027+-2.285           might be 1.0356x faster
            stanford-crypto-pbkdf2                 130.434+-4.405      ^      94.416+-2.397         ^ definitely 1.3815x faster
            stanford-crypto-sha256-iterative        44.315+-0.970      ^      33.151+-0.708         ^ definitely 1.3368x faster

            &lt;arithmetic&gt;                            71.574+-1.483      ^      58.708+-0.960         ^ definitely 1.2191x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289774</commentid>
    <comment_count>3</comment_count>
      <attachid>305003</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 07:57:56 -0700</bug_when>
    <thetext>Created attachment 305003
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289778</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 08:35:41 -0700</bug_when>
    <thetext>kraken-imaging-darkroom shows 20% regression. Nice catch, let&apos;s investigate what happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289781</commentid>
    <comment_count>5</comment_count>
      <attachid>305003</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-03-21 08:48:24 -0700</bug_when>
    <thetext>Comment on attachment 305003
Patch

This is super interesting. It&apos;s a good idea if it becomes not-fragile!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289790</commentid>
    <comment_count>6</comment_count>
      <attachid>305003</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-03-21 09:09:17 -0700</bug_when>
    <thetext>Comment on attachment 305003
Patch

Attachment 305003 did not pass jsc-ews (mac):
Output: http://webkit-queues.webkit.org/results/3376907

New failing tests:
stress/exit-from-getter.js.ftl-no-cjit-no-inline-validate
stress/exit-from-getter.js.no-cjit-collect-continuously
jsc-layout-tests.yaml/js/script-tests/dfg-int-overflow-in-loop.js.layout-dfg-eager-no-cjit
jsc-layout-tests.yaml/js/script-tests/dfg-int-overflow-in-loop.js.layout-no-ftl
stress/exit-from-getter.js.dfg-eager-no-cjit-validate
jsc-layout-tests.yaml/js/script-tests/dfg-int-overflow-in-loop.js.layout-no-llint
jsc-layout-tests.yaml/js/script-tests/dfg-int-overflow-in-loop.js.layout-no-cjit
stress/exit-from-getter.js.ftl-eager
stress/exit-from-getter.js.ftl-no-cjit-validate-sampling-profiler
stress/exit-from-getter.js.ftl-no-cjit-no-put-stack-validate
stress/exit-from-getter.js.no-cjit-validate-phases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289791</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 09:14:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; kraken-imaging-darkroom shows 20% regression. Nice catch, let&apos;s investigate
&gt; what happens.

We should honor DoubleConstant. It is offered by SourceCodeRepresentation::Double. It means that users explicitly write 1.0 instead of 1. In that case, handling it as double should be preferable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289826</commentid>
    <comment_count>8</comment_count>
      <attachid>305024</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 13:43:54 -0700</bug_when>
    <thetext>Created attachment 305024
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289835</commentid>
    <comment_count>9</comment_count>
      <attachid>305026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 14:06:59 -0700</bug_when>
    <thetext>Created attachment 305026
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289845</commentid>
    <comment_count>10</comment_count>
      <attachid>305026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 14:32:00 -0700</bug_when>
    <thetext>Comment on attachment 305026
WIP

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

Haha, we found bunch of related issues!

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:478
&gt; +        forNode(node).setType(SpecAnyInt);

Note: should be SpecAnyInt since the above constant value can be any int.

&gt; Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:408
&gt; +                    changed |= mergePrediction(SpecBytecodeNumber);

Note: Oops!

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:2568
&gt; +                speculate(NegativeZero, noValue(), 0, m_out.isZero64(result));

Note: Oops! part 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289870</commentid>
    <comment_count>11</comment_count>
      <attachid>305038</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 15:41:27 -0700</bug_when>
    <thetext>Created attachment 305038
WIP: Patch becomes much solid</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289899</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 16:49:58 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #7)
&gt; (In reply to comment #4)
&gt; &gt; kraken-imaging-darkroom shows 20% regression. Nice catch, let&apos;s investigate
&gt; &gt; what happens.
&gt; 
&gt; We should honor DoubleConstant. It is offered by
&gt; SourceCodeRepresentation::Double. It means that users explicitly write 1.0
&gt; instead of 1. In that case, handling it as double should be preferable.

That&apos;s rather caused by Int52Rep&apos;s incorrect AI result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289920</commentid>
    <comment_count>13</comment_count>
      <attachid>305055</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 18:04:29 -0700</bug_when>
    <thetext>Created attachment 305055
WIP: Cleaning up right now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289921</commentid>
    <comment_count>14</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-21 18:06:38 -0700</bug_when>
    <thetext>Performance numbers. Seems good.

Benchmark report for SunSpider, Octane, and Kraken on sakura-trick.

VMs tested:
&quot;baseline&quot; at /home/yusukesuzuki/dev/WebKit/WebKitBuild/ic-dfg-tot/Release/bin/jsc
&quot;patched&quot; at /home/yusukesuzuki/dev/WebKit/WebKitBuild/ic-dfg-value-add/Release/bin/jsc

Collected 50 samples per benchmark/VM, with 50 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to
get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                 baseline                  patched
SunSpider:
   3d-cube                                    9.0468+-0.4192            8.8036+-0.4336          might be 1.0276x faster
   3d-morph                                  25.1012+-3.2549     ?     26.3637+-3.4597        ? might be 1.0503x slower
   3d-raytrace                                8.9271+-0.4894     ?      9.1181+-0.4437        ? might be 1.0214x slower
   access-binary-trees                        4.1115+-0.2068     ?      4.1644+-0.2009        ? might be 1.0129x slower
   access-fannkuch                           11.3397+-0.6874           10.7369+-0.6946          might be 1.0561x faster
   access-nbody                               5.1591+-0.2796     ?      5.1814+-0.2438        ?
   access-nsieve                              6.6204+-0.3874            6.3539+-0.3811          might be 1.0419x faster
   bitops-3bit-bits-in-byte                   2.3271+-0.1316     ?      2.4111+-0.1198        ? might be 1.0361x slower
   bitops-bits-in-byte                        5.7656+-0.2966            5.4785+-0.3563          might be 1.0524x faster
   bitops-bitwise-and                         4.2864+-0.2719     ?      4.5494+-0.2811        ? might be 1.0614x slower
   bitops-nsieve-bits                         6.1865+-0.3359            6.1447+-0.3429
   controlflow-recursive                      5.0490+-0.2080            5.0349+-0.2069
   crypto-aes                                 7.7566+-0.4096     ?      8.2666+-0.3546        ? might be 1.0657x slower
   crypto-md5                                 5.0399+-0.2592            4.8526+-0.2656          might be 1.0386x faster
   crypto-sha1                                5.0899+-0.2812     ?      5.3179+-0.3035        ? might be 1.0448x slower
   date-format-tofte                         12.7879+-0.6442     ?     13.2374+-0.6718        ? might be 1.0352x slower
   date-format-xparb                          9.6938+-0.4552     ?      9.7779+-0.4665        ?
   math-cordic                                5.5725+-0.2822     ?      5.7865+-0.2725        ? might be 1.0384x slower
   math-partial-sums                         11.1509+-0.5344     ?     11.3622+-0.5034        ? might be 1.0189x slower
   math-spectral-norm                         4.1114+-0.2003     ?      4.1346+-0.1848        ?
   regexp-dna                                12.4260+-0.7087     ?     12.6531+-0.6848        ? might be 1.0183x slower
   string-base64                              8.0524+-0.3953            7.7479+-0.4451          might be 1.0393x faster
   string-fasta                              10.7088+-0.5774           10.5849+-0.6265          might be 1.0117x faster
   string-tagcloud                           15.0000+-0.6955     ?     15.8826+-0.5997        ? might be 1.0588x slower
   string-unpack-code                        33.6959+-1.1267     ^     31.2100+-1.0928        ^ definitely 1.0796x faster
   string-validate-input                      7.7340+-0.3487            7.5341+-0.3061          might be 1.0265x faster

   &lt;arithmetic&gt;                               9.3362+-0.1705            9.3342+-0.1536          might be 1.0002x faster

                                                 baseline                  patched
Octane:
   encrypt                                   0.22284+-0.00726          0.21788+-0.00208         might be 1.0228x faster
   decrypt                                   3.19350+-0.03107          3.15163+-0.01135         might be 1.0133x faster
   deltablue                        x2       0.19005+-0.00489          0.18991+-0.00378
   earley                                    0.38626+-0.00634          0.38608+-0.00754
   boyer                                     6.81411+-0.05849          6.78422+-0.04951
   navier-stokes                    x2       5.13978+-0.02146    ?     5.14224+-0.02263       ?
   raytrace                         x2       1.07106+-0.00759    ?     1.07823+-0.00639       ?
   richards                         x2       0.10447+-0.00262          0.10354+-0.00372
   splay                            x2       0.41359+-0.00187    ?     0.41372+-0.00254       ?
   regexp                           x2      24.17902+-0.57214         23.88639+-0.34467         might be 1.0123x faster
   pdfjs                            x2      52.99913+-1.12541         51.55391+-0.97258         might be 1.0280x faster
   mandreel                         x2      61.73522+-2.28842         59.43819+-0.62873         might be 1.0386x faster
   gbemu                            x2      47.52163+-1.43188         47.43213+-1.47181
   closure                                   0.76502+-0.01333          0.75352+-0.01460         might be 1.0153x faster
   jquery                                    9.76510+-0.24014    ?     9.84420+-0.24252       ?
   box2d                            x2      13.43593+-0.27014         13.22219+-0.36775         might be 1.0162x faster
   zlib                             x2     467.78036+-4.54568        466.03177+-5.53952
   typescript                       x2     874.60354+-18.01238       856.91126+-17.50218        might be 1.0206x faster

   &lt;geometric&gt;                               6.84285+-0.03025          6.77972+-0.03310         might be 1.0093x faster

                                                 baseline                  patched
Kraken:
   ai-astar                                  156.991+-4.220      ?     160.604+-3.616         ? might be 1.0230x slower
   audio-beat-detection                       52.085+-2.036      ?      54.572+-2.393         ? might be 1.0478x slower
   audio-dft                                 104.422+-1.980            102.996+-2.037           might be 1.0138x faster
   audio-fft                                  40.316+-0.724             40.158+-0.751
   audio-oscillator                           71.545+-1.686             70.198+-2.657           might be 1.0192x faster
   imaging-darkroom                          117.680+-2.308      ?     120.226+-2.270         ? might be 1.0216x slower
   imaging-desaturate                         73.859+-3.123             73.527+-1.867
   imaging-gaussian-blur                     107.189+-2.530            107.122+-2.535
   json-parse-financial                       62.838+-1.349             60.334+-1.798           might be 1.0415x faster
   json-stringify-tinderbox                   39.174+-1.706      ?      39.392+-0.957         ?
   stanford-crypto-aes                        58.237+-1.560             56.834+-1.717           might be 1.0247x faster
   stanford-crypto-ccm                        48.910+-2.176      ?      50.467+-1.892         ? might be 1.0318x slower
   stanford-crypto-pbkdf2                    128.624+-2.491      ^      91.417+-1.972         ^ definitely 1.4070x faster
   stanford-crypto-sha256-iterative           43.015+-0.876      ^      31.761+-0.818         ^ definitely 1.3543x faster

   &lt;arithmetic&gt;                               78.920+-0.666      ^      75.686+-0.493         ^ definitely 1.0427x faster

                                                 baseline                  patched
Geomean of preferred means:
   &lt;scaled-result&gt;                           17.1374+-0.1164     ^     16.8491+-0.1070        ^ definitely 1.0171x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290153</commentid>
    <comment_count>15</comment_count>
      <attachid>305055</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-22 12:06:46 -0700</bug_when>
    <thetext>Comment on attachment 305055
WIP: Cleaning up right now

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

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.h:439
&gt; +inline bool isAnyIntSpeculationForAdd(SpeculatedType value)
&gt; +{
&gt; +    return !!value &amp;&amp; (value &amp; (SpecAnyInt | SpecAnyIntAsDouble)) == value;
&gt; +}

Style nit: This seems specialized enough to the DFG&apos;s use case that I&apos;d probably make this a lambda inside the function that calls this. The reason is that the name implies to me that this might definitely be the case, but what&apos;s really happening is we&apos;re making an optimistic assumption.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290174</commentid>
    <comment_count>16</comment_count>
      <attachid>305055</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-22 13:08:38 -0700</bug_when>
    <thetext>Comment on attachment 305055
WIP: Cleaning up right now

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

&gt;&gt; Source/JavaScriptCore/bytecode/SpeculatedType.h:439
&gt;&gt; +}
&gt; 
&gt; Style nit: This seems specialized enough to the DFG&apos;s use case that I&apos;d probably make this a lambda inside the function that calls this. The reason is that the name implies to me that this might definitely be the case, but what&apos;s really happening is we&apos;re making an optimistic assumption.

Thanks. OK, I&apos;ve moved this to DFGGraph::addShouldSpeculateAnyInt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290199</commentid>
    <comment_count>17</comment_count>
      <attachid>305124</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-22 13:50:52 -0700</bug_when>
    <thetext>Created attachment 305124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290201</commentid>
    <comment_count>18</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-22 13:51:08 -0700</bug_when>
    <thetext>OK, ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290297</commentid>
    <comment_count>19</comment_count>
      <attachid>305124</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-22 18:17:04 -0700</bug_when>
    <thetext>Comment on attachment 305124
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290366</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-22 23:01:51 -0700</bug_when>
    <thetext>Committed r214296: &lt;http://trac.webkit.org/changeset/214296&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290382</commentid>
    <comment_count>21</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-23 00:51:01 -0700</bug_when>
    <thetext>Track the darkroom regression in https://bugs.webkit.org/show_bug.cgi?id=169998</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305000</attachid>
            <date>2017-03-21 06:23:32 -0700</date>
            <delta_ts>2017-03-21 07:57:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169914-20170321222330.patch</filename>
            <type>text/plain</type>
            <size>5515</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MDYyNjBlY2QzMWEyYTZiMDNhNDI2ZTcyMjI2MWY5MDZlY2Y4OWRmLi41YTI5MDM2NGM4MDgwZjcz
OWEzYmFjNDllMWM5MjIyZTY1ODIxZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzMSBAQAogMjAxNy0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtERkddIFByb3BhZ2F0ZSBBbnlJbnRBc0RvdWJsZSBpbmZv
cm1hdGlvbiBjYXJlZnVsbHkgdG8gdXRpbGl6ZSBpdCBpbiBmaXh1cAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5OTE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQIQorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAg
ICAgICAgICBwYXRjaGVkCisKKyAgICAgICAgICAgIHN0YW5mb3JkLWNyeXB0by1hZXMgICAgICAg
ICAgICAgICAgICAgICA1OC43MDQrLTIuMjI3ICAgICAgICAgICAgIDU2LjIzOCstMi4xNDkgICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDQzOHggZmFzdGVyCisgICAgICAgICAgICBzdGFuZm9yZC1jcnlw
dG8tY2NtICAgICAgICAgICAgICAgICAgICAgNTIuODQyKy0zLjkyNyAgICAgICAgICAgICA1MS4w
MjcrLTIuMjg1ICAgICAgICAgICBtaWdodCBiZSAxLjAzNTZ4IGZhc3RlcgorICAgICAgICAgICAg
c3RhbmZvcmQtY3J5cHRvLXBia2RmMiAgICAgICAgICAgICAgICAgMTMwLjQzNCstNC40MDUgICAg
ICBeICAgICAgOTQuNDE2Ky0yLjM5NyAgICAgICAgIF4gZGVmaW5pdGVseSAxLjM4MTV4IGZhc3Rl
cgorICAgICAgICAgICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1Ni1pdGVyYXRpdmUgICAgICAgIDQ0
LjMxNSstMC45NzAgICAgICBeICAgICAgMzMuMTUxKy0wLjcwOCAgICAgICAgIF4gZGVmaW5pdGVs
eSAxLjMzNjh4IGZhc3RlcgorCisgICAgICAgICAgICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNzEuNTc0Ky0xLjQ4MyAgICAgIF4gICAgICA1OC43MDgrLTAuOTYwICAg
ICAgICAgXiBkZWZpbml0ZWx5IDEuMjE5MXggZmFzdGVyCisKKyAgICAgICAgKiBieXRlY29kZS9T
cGVjdWxhdGVkVHlwZS5oOgorICAgICAgICAoSlNDOjppc0FueUludFNwZWN1bGF0aW9uRm9yQWRk
KToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Rml4dXBQaGFzZTo6YXR0ZW1wdFRvTWFrZUludGVnZXJBZGQpOgorICAgICAgICAqIGRmZy9ERkdO
b2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlQW55SW50QXNE
b3VibGUpOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6
CisKKzIwMTctMDMtMjEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
ICAgICAgICAgW0pTQ10gT3B0aW1pemUgTnVtYmVyLnByb3RvdHlwZS50b1N0cmluZyBvbiBJbnQz
MiAvIEludDUyIC8gRG91YmxlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjc0NTQKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3BlY3VsYXRlZFR5cGUuaAppbmRleCBlMjNmZDJjNWY1NGNlZTA5YzdhMjNiZGMxNDk5OTBiNjA5
YjAxOTAwLi41Y2UxYjgwM2NjOWQyNzg0ZDY4MGVmOTI0MWIyOTgwOWViNDQ4NGYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaApAQCAtNDMz
LDYgKzQzMywxMSBAQCBpbmxpbmUgYm9vbCBpc1VudHlwZWRTcGVjdWxhdGlvbkZvckJpdE9wcyhT
cGVjdWxhdGVkVHlwZSB2YWx1ZSkKICAgICByZXR1cm4gISEodmFsdWUgJiB+KFNwZWNGdWxsTnVt
YmVyIHwgU3BlY0Jvb2xlYW4gfCBTcGVjT3RoZXIpKTsKIH0KIAoraW5saW5lIGJvb2wgaXNBbnlJ
bnRTcGVjdWxhdGlvbkZvckFkZChTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
ISF2YWx1ZSAmJiAodmFsdWUgJiAoU3BlY0FueUludCB8IFNwZWNBbnlJbnRBc0RvdWJsZSkpID09
IHZhbHVlOworfQorCiB2b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYsIFNwZWN1bGF0
ZWRUeXBlKTsKIHZvaWQgZHVtcFNwZWN1bGF0aW9uQWJicmV2aWF0ZWQoUHJpbnRTdHJlYW0mLCBT
cGVjdWxhdGVkVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCmluZGV4IGIyZjJhODAyMDYxZDFkOWQwOGZjMjU1ZjhhZTk4ODM0ZjdmZTRkOTEuLmY5
M2M5ODJhOTM0ZmRkYTRlNGZhOGM0NGJjZjEzMWFlMWFmYzc0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMjc0MCw2ICsyNzQwLDE0IEBAIGNs
YXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgbm9kZS0+c2V0UmVz
dWx0KE5vZGVSZXN1bHRJbnQ1Mik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQorCisgICAgICAgIGlmIChpc0FueUludFNwZWN1bGF0aW9uRm9yQWRkKG5vZGUtPmNoaWxkMSgp
LT5wcmVkaWN0aW9uKCkpICYmIGlzQW55SW50U3BlY3VsYXRpb25Gb3JBZGQobm9kZS0+Y2hpbGQy
KCktPnByZWRpY3Rpb24oKSkpIHsKKyAgICAgICAgICAgIGZpeEVkZ2U8SW50NTJSZXBVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeEVkZ2U8SW50NTJSZXBVc2U+KG5vZGUtPmNo
aWxkMigpKTsKKyAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6Q2hlY2tPdmVy
Zmxvdyk7CisgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJlc3VsdEludDUyKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBkZjVj
MjhhY2ZkZDc1NWY5ZWZkZWIzNzY5OGIwYjgwZjFlYmM0MmI5Li5hYzViNjQ2ZTEwZWQ0OWVlNzdh
ZDU1YTU2MGY0MWQ5YmJiZTUyYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApA
QCAtMjA0OSw2ICsyMDQ5LDExIEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHJldHVy
biBpc0FueUludFNwZWN1bGF0aW9uKHByZWRpY3Rpb24oKSk7CiAgICAgfQorCisgICAgYm9vbCBz
aG91bGRTcGVjdWxhdGVBbnlJbnRBc0RvdWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gaXNB
bnlJbnRBc0RvdWJsZVNwZWN1bGF0aW9uKHByZWRpY3Rpb24oKSk7CisgICAgfQogICAgIAogICAg
IGJvb2wgc2hvdWxkU3BlY3VsYXRlRG91YmxlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3Bw
CmluZGV4IGJhMzM0YzY5NWQ0NTIzYWE3MDg4MGI2MjgyNzZlMDJlNDI4NzdmZTkuLmY5N2RiZWQ1
ZTRmMmNjZGU4N2QzOGEzNmIwMGU2Y2U5YWYxZGViMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3Bw
CkBAIC0xODksNiArMTg5LDggQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBw
dWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVBy
ZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1f
Z3JhcGguYWRkU2hvdWxkU3BlY3VsYXRlQW55SW50KG5vZGUpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CisgICAgICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKGlzQW55SW50U3BlY3VsYXRpb25Gb3JBZGQobm9kZS0+Y2hp
bGQxKCktPnByZWRpY3Rpb24oKSkgJiYgaXNBbnlJbnRTcGVjdWxhdGlvbkZvckFkZChub2RlLT5j
aGlsZDIoKS0+cHJlZGljdGlvbigpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwogICAgICAgICAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihz
cGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRpb24obGVm
dCkgJiYgaXNTdHJpbmdPclN0cmluZ09iamVjdFNwZWN1bGF0aW9uKHJpZ2h0KSkgewpAQCAtMzU0
LDYgKzM1Niw4IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBo
YXNlIHsKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAgICAgICAgICAgICAgICBp
ZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdl
ZCB8PSBtZXJnZVByZWRpY3Rpb24obm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSB8IFNwZWNEb3Vi
bGVSZWFsKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0FueUludEFzRG91YmxlU3BlY3Vs
YXRpb24obm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSkpCisgICAgICAgICAgICAgICAgICAgIGNo
YW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNBbnlJbnRBc0RvdWJsZSk7CiAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjRG91YmxlUmVhbCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305003</attachid>
            <date>2017-03-21 07:57:56 -0700</date>
            <delta_ts>2017-03-21 13:09:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169914-20170321235755.patch</filename>
            <type>text/plain</type>
            <size>5202</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MDYyNjBlY2QzMWEyYTZiMDNhNDI2ZTcyMjI2MWY5MDZlY2Y4OWRmLi5lN2U0MGI3MWQ2YmJmMmUz
MTExMjI0M2FmZDU0YzE1ZDUwZjU0MDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzMiBAQAogMjAxNy0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtERkddIFByb3BhZ2F0ZSBBbnlJbnRBc0RvdWJsZSBpbmZv
cm1hdGlvbiBjYXJlZnVsbHkgdG8gdXRpbGl6ZSBpdCBpbiBmaXh1cAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5OTE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQIQorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAg
ICAgICAgICBwYXRjaGVkCisKKyAgICAgICAgICAgIHN0YW5mb3JkLWNyeXB0by1hZXMgICAgICAg
ICAgICAgICAgICAgICA1OC43MDQrLTIuMjI3ICAgICAgICAgICAgIDU2LjIzOCstMi4xNDkgICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDQzOHggZmFzdGVyCisgICAgICAgICAgICBzdGFuZm9yZC1jcnlw
dG8tY2NtICAgICAgICAgICAgICAgICAgICAgNTIuODQyKy0zLjkyNyAgICAgICAgICAgICA1MS4w
MjcrLTIuMjg1ICAgICAgICAgICBtaWdodCBiZSAxLjAzNTZ4IGZhc3RlcgorICAgICAgICAgICAg
c3RhbmZvcmQtY3J5cHRvLXBia2RmMiAgICAgICAgICAgICAgICAgMTMwLjQzNCstNC40MDUgICAg
ICBeICAgICAgOTQuNDE2Ky0yLjM5NyAgICAgICAgIF4gZGVmaW5pdGVseSAxLjM4MTV4IGZhc3Rl
cgorICAgICAgICAgICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1Ni1pdGVyYXRpdmUgICAgICAgIDQ0
LjMxNSstMC45NzAgICAgICBeICAgICAgMzMuMTUxKy0wLjcwOCAgICAgICAgIF4gZGVmaW5pdGVs
eSAxLjMzNjh4IGZhc3RlcgorCisgICAgICAgICAgICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNzEuNTc0Ky0xLjQ4MyAgICAgIF4gICAgICA1OC43MDgrLTAuOTYwICAg
ICAgICAgXiBkZWZpbml0ZWx5IDEuMjE5MXggZmFzdGVyCisKKyAgICAgICAgKiBieXRlY29kZS9T
cGVjdWxhdGVkVHlwZS5oOgorICAgICAgICAoSlNDOjppc0FueUludFNwZWN1bGF0aW9uRm9yQWRk
KToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6
YWRkU2hvdWxkU3BlY3VsYXRlQW55SW50KToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAg
ICAgICAoSlNDOjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZUFueUludEFzRG91YmxlKToKKyAg
ICAgICAgKEpTQzo6REZHOjpOb2RlOjpzaG91bGRTcGVjdWxhdGVBbnlJbnRGb3JBZGQpOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisKKzIwMTctMDMt
MjEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pT
Q10gT3B0aW1pemUgTnVtYmVyLnByb3RvdHlwZS50b1N0cmluZyBvbiBJbnQzMiAvIEludDUyIC8g
RG91YmxlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Njc0NTQKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1
bGF0ZWRUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuaAppbmRleCBlMjNmZDJjNWY1NGNlZTA5YzdhMjNiZGMxNDk5OTBiNjA5YjAxOTAwLi41Y2Ux
YjgwM2NjOWQyNzg0ZDY4MGVmOTI0MWIyOTgwOWViNDQ4NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaApAQCAtNDMzLDYgKzQzMywxMSBA
QCBpbmxpbmUgYm9vbCBpc1VudHlwZWRTcGVjdWxhdGlvbkZvckJpdE9wcyhTcGVjdWxhdGVkVHlw
ZSB2YWx1ZSkKICAgICByZXR1cm4gISEodmFsdWUgJiB+KFNwZWNGdWxsTnVtYmVyIHwgU3BlY0Jv
b2xlYW4gfCBTcGVjT3RoZXIpKTsKIH0KIAoraW5saW5lIGJvb2wgaXNBbnlJbnRTcGVjdWxhdGlv
bkZvckFkZChTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gISF2YWx1ZSAmJiAo
dmFsdWUgJiAoU3BlY0FueUludCB8IFNwZWNBbnlJbnRBc0RvdWJsZSkpID09IHZhbHVlOworfQor
CiB2b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYsIFNwZWN1bGF0ZWRUeXBlKTsKIHZv
aWQgZHVtcFNwZWN1bGF0aW9uQWJicmV2aWF0ZWQoUHJpbnRTdHJlYW0mLCBTcGVjdWxhdGVkVHlw
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAppbmRleCAzYjMyOTIwODc0Mjhj
MTc0YWI1Mzk2MWIxNjdiMTI4ZDEzMWUyNjk1Li45NDJkM2ExZGY3MGE1MWEwZmZkZThlNWMwZTMz
ZjE0YTgwNzUxZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC0yOTMs
NyArMjkzLDcgQEAgY2xhc3MgR3JhcGggOiBwdWJsaWMgdmlydHVhbCBTY2FubmFibGUgewogICAg
ICAgICBOb2RlKiBsZWZ0ID0gYWRkLT5jaGlsZDEoKS5ub2RlKCk7CiAgICAgICAgIE5vZGUqIHJp
Z2h0ID0gYWRkLT5jaGlsZDIoKS5ub2RlKCk7CiAKLSAgICAgICAgYm9vbCBzcGVjdWxhdGlvbiA9
IE5vZGU6OnNob3VsZFNwZWN1bGF0ZUFueUludChsZWZ0LCByaWdodCk7CisgICAgICAgIGJvb2wg
c3BlY3VsYXRpb24gPSBOb2RlOjpzaG91bGRTcGVjdWxhdGVBbnlJbnRGb3JBZGQobGVmdCwgcmln
aHQpOwogICAgICAgICByZXR1cm4gc3BlY3VsYXRpb24gJiYgIWhhc0V4aXRTaXRlKGFkZCwgSW50
NTJPdmVyZmxvdyk7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApp
bmRleCBkZjVjMjhhY2ZkZDc1NWY5ZWZkZWIzNzY5OGIwYjgwZjFlYmM0MmI5Li4yZjE5ZjI0ZDMy
YjQxNTViNWM0OWJkYjM4NWEzMWI1ZDQyOTNhNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaApAQCAtMjA0OSw2ICsyMDQ5LDE2IEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAg
ICAgIHJldHVybiBpc0FueUludFNwZWN1bGF0aW9uKHByZWRpY3Rpb24oKSk7CiAgICAgfQorCisg
ICAgYm9vbCBzaG91bGRTcGVjdWxhdGVBbnlJbnRBc0RvdWJsZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gaXNBbnlJbnRBc0RvdWJsZVNwZWN1bGF0aW9uKHByZWRpY3Rpb24oKSk7CisgICAgfQor
CisgICAgYm9vbCBzaG91bGRTcGVjdWxhdGVBbnlJbnRGb3JBZGQoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGlzQW55SW50U3BlY3VsYXRpb25Gb3JBZGQocHJlZGljdGlvbigpKTsKKyAgICB9CiAg
ICAgCiAgICAgYm9vbCBzaG91bGRTcGVjdWxhdGVEb3VibGUoKQogICAgIHsKQEAgLTIzMDIsNiAr
MjMxMiwxMSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgewogICAgICAgICByZXR1cm4gb3AxLT5zaG91
bGRTcGVjdWxhdGVBbnlJbnQoKSAmJiBvcDItPnNob3VsZFNwZWN1bGF0ZUFueUludCgpOwogICAg
IH0KKworICAgIHN0YXRpYyBib29sIHNob3VsZFNwZWN1bGF0ZUFueUludEZvckFkZChOb2RlKiBv
cDEsIE5vZGUqIG9wMikKKyAgICB7CisgICAgICAgIHJldHVybiBvcDEtPnNob3VsZFNwZWN1bGF0
ZUFueUludEZvckFkZCgpICYmIG9wMi0+c2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRkKCk7Cisg
ICAgfQogICAgIAogICAgIHN0YXRpYyBib29sIHNob3VsZFNwZWN1bGF0ZU51bWJlcihOb2RlKiBv
cDEsIE5vZGUqIG9wMikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGJhMzM0YzY5
NWQ0NTIzYWE3MDg4MGI2MjgyNzZlMDJlNDI4NzdmZTkuLmRjY2Q4NjI2ZjA3MWUxNTBjMjQ3Yzgz
ZDFjN2UyYWI1OTZmZDZmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0zNTQsOCArMzU0
LDEwIEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsK
ICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAgICAgICAgICAgICAgICBpZiAoYXJy
YXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBt
ZXJnZVByZWRpY3Rpb24obm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSB8IFNwZWNEb3VibGVSZWFs
KTsKLSAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+
Z2V0SGVhcFByZWRpY3Rpb24oKSAmIFNwZWNOb25JbnRBc0RvdWJsZSkKICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0RvdWJsZVJlYWwpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRp
Y3Rpb24oU3BlY0FueUludEFzRG91YmxlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJBcnJheToKICAgICAgICAgICAgIGNhc2UgQXJyYXk6
OkZsb2F0NjRBcnJheToK
</data>
<flag name="commit-queue"
          id="326488"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305024</attachid>
            <date>2017-03-21 13:43:54 -0700</date>
            <delta_ts>2017-03-21 14:06:54 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-169914-20170322054352.patch</filename>
            <type>text/plain</type>
            <size>10975</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
M2I2MmIxZDQ4OTY1OTg0MGFhNWIxYjZiZWNhNTYxZTU0MDU1Mjc4Li40ZTBiOGEyMjU0ODQwMGQy
N2I3ODQ1NDFiOTcyYmEyOTdkYjlhMjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxNy0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXVtERkddIFByb3BhZ2F0ZSBBbnlJbnRBc0RvdWJsZSBpbmZv
cm1hdGlvbiBjYXJlZnVsbHkgdG8gdXRpbGl6ZSBpdCBpbiBmaXh1cAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5OTE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5oOgorICAgICAgICAoSlNDOjppc0FueUludFNwZWN1bGF0aW9uRm9yQWRkKToKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMp
OgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpG
aXh1cFBoYXNlOjphdHRlbXB0VG9NYWtlSW50ZWdlckFkZCk6CisgICAgICAgICogZGZnL0RGR0dy
YXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmFkZFNob3VsZFNwZWN1bGF0ZUFueUlu
dCk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpz
aG91bGRTcGVjdWxhdGVBbnlJbnRBc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6
c2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRkKToKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQXJpdGhOZWdh
dGUpOgorCiAyMDE3LTAzLTIxICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW0FSTV0gQWRkIG1pc3NpbmcgTWFjcm9Bc3NlbWJsZXIgZnVuY3Rpb25zIGFm
dGVyIHIyMTQxODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
cGVjdWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmgKaW5kZXggZTIzZmQyYzVmNTRjZWUwOWM3YTIzYmRjMTQ5OTkwYjYwOWIwMTkwMC4u
NWNlMWI4MDNjYzlkMjc4NGQ2ODBlZjkyNDFiMjk4MDllYjQ0ODRmMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTQzMyw2ICs0MzMs
MTEgQEAgaW5saW5lIGJvb2wgaXNVbnR5cGVkU3BlY3VsYXRpb25Gb3JCaXRPcHMoU3BlY3VsYXRl
ZFR5cGUgdmFsdWUpCiAgICAgcmV0dXJuICEhKHZhbHVlICYgfihTcGVjRnVsbE51bWJlciB8IFNw
ZWNCb29sZWFuIHwgU3BlY090aGVyKSk7CiB9CiAKK2lubGluZSBib29sIGlzQW55SW50U3BlY3Vs
YXRpb25Gb3JBZGQoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuICEhdmFsdWUg
JiYgKHZhbHVlICYgKFNwZWNBbnlJbnQgfCBTcGVjQW55SW50QXNEb3VibGUpKSA9PSB2YWx1ZTsK
K30KKwogdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJlYW0mLCBTcGVjdWxhdGVkVHlwZSk7
CiB2b2lkIGR1bXBTcGVjdWxhdGlvbkFiYnJldmlhdGVkKFByaW50U3RyZWFtJiwgU3BlY3VsYXRl
ZFR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggYjU0OWVjYTZkOTg1Y2UwN2EyZGIxODBh
Y2E4NmEwMGE3OGVlMzVmNC4uOWQyYjI1ZDQ5ZWU2YmNkNzQ4Zjc5YzIwZGRjYzhkMmQ5ZTcxNmIy
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDc1LDcgKzQ3NSw4IEBAIGJvb2wgQWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNs
b2JiZXJMaW1pCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKLSAgICAg
ICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNJbnQzMk9ubHkpOworICAgICAgICAvLyBmb3JO
b2RlKG5vZGUpLnNldFR5cGUoU3BlY0FueUludCk7CisgICAgICAgIGZvck5vZGUobm9kZSkuc2V0
VHlwZShTcGVjSW50NTJPbmx5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGIyZjJhODAy
MDYxZDFkOWQwOGZjMjU1ZjhhZTk4ODM0ZjdmZTRkOTEuLjEwMDUwYWZlYmJkZDA4MTNhNmM0ZTc2
NDE1ZDI1MzQ1ZjdmNGExMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcApAQCAtMjczMyw3ICsyNzMzLDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1Ymxp
YyBQaGFzZSB7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICAK
LSAgICAgICAgaWYgKG1fZ3JhcGguYWRkU2hvdWxkU3BlY3VsYXRlQW55SW50KG5vZGUpKSB7Cisg
ICAgICAgIGlmIChtX2dyYXBoLmFkZFNob3VsZFNwZWN1bGF0ZUFueUludChub2RlLCBGaXh1cFBh
c3MpKSB7CiAgICAgICAgICAgICBmaXhFZGdlPEludDUyUmVwVXNlPihub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgICAgICBmaXhFZGdlPEludDUyUmVwVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAg
ICAgICAgICBub2RlLT5zZXRBcml0aE1vZGUoQXJpdGg6OkNoZWNrT3ZlcmZsb3cpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCmluZGV4IDNiMzI5MjA4NzQyOGMxNzRhYjUzOTYxYjE2
N2IxMjhkMTMxZTI2OTUuLjJhZGNhM2M5YjU1YjM4ZmIwNjExMTYzNDZlMjU2NjcwMTQ0Y2U2N2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTI4NSwxNiArMjg1LDE2IEBA
IGNsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsKICAgICAgICAgcmV0dXJu
IGFkZFNwZWN1bGF0aW9uTW9kZShhZGQsIHBhc3MpICE9IERvbnRTcGVjdWxhdGVJbnQzMjsKICAg
ICB9CiAgICAgCi0gICAgYm9vbCBhZGRTaG91bGRTcGVjdWxhdGVBbnlJbnQoTm9kZSogYWRkKQor
ICAgIGJvb2wgYWRkU2hvdWxkU3BlY3VsYXRlQW55SW50KE5vZGUqIG5vZGUsIFByZWRpY3Rpb25Q
YXNzKQogICAgIHsKICAgICAgICAgaWYgKCFlbmFibGVJbnQ1MigpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAKLSAgICAgICAgTm9kZSogbGVmdCA9IGFkZC0+Y2hpbGQxKCku
bm9kZSgpOwotICAgICAgICBOb2RlKiByaWdodCA9IGFkZC0+Y2hpbGQyKCkubm9kZSgpOworICAg
ICAgICBOb2RlKiBsZWZ0ID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgpOworICAgICAgICBOb2RlKiBy
aWdodCA9IG5vZGUtPmNoaWxkMigpLm5vZGUoKTsKIAotICAgICAgICBib29sIHNwZWN1bGF0aW9u
ID0gTm9kZTo6c2hvdWxkU3BlY3VsYXRlQW55SW50KGxlZnQsIHJpZ2h0KTsKLSAgICAgICAgcmV0
dXJuIHNwZWN1bGF0aW9uICYmICFoYXNFeGl0U2l0ZShhZGQsIEludDUyT3ZlcmZsb3cpOworICAg
ICAgICBib29sIHNwZWN1bGF0aW9uID0gTm9kZTo6c2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRk
KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHNwZWN1bGF0aW9uICYmICFoYXNFeGl0U2l0
ZShub2RlLCBJbnQ1Mk92ZXJmbG93KTsKICAgICB9CiAgICAgCiAgICAgYm9vbCBiaW5hcnlBcml0
aFNob3VsZFNwZWN1bGF0ZUludDMyKE5vZGUqIG5vZGUsIFByZWRpY3Rpb25QYXNzIHBhc3MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IGRmNWMyOGFjZmRkNzU1ZjllZmRlYjM3
Njk4YjBiODBmMWViYzQyYjkuLjJmMTlmMjRkMzJiNDE1NWI1YzQ5YmRiMzg1YTMxYjVkNDI5M2E2
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0yMDQ5LDYgKzIwNDksMTYg
QEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJuIGlzQW55SW50U3BlY3VsYXRp
b24ocHJlZGljdGlvbigpKTsKICAgICB9CisKKyAgICBib29sIHNob3VsZFNwZWN1bGF0ZUFueUlu
dEFzRG91YmxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc0FueUludEFzRG91YmxlU3BlY3Vs
YXRpb24ocHJlZGljdGlvbigpKTsKKyAgICB9CisKKyAgICBib29sIHNob3VsZFNwZWN1bGF0ZUFu
eUludEZvckFkZCgpCisgICAgeworICAgICAgICByZXR1cm4gaXNBbnlJbnRTcGVjdWxhdGlvbkZv
ckFkZChwcmVkaWN0aW9uKCkpOworICAgIH0KICAgICAKICAgICBib29sIHNob3VsZFNwZWN1bGF0
ZURvdWJsZSgpCiAgICAgewpAQCAtMjMwMiw2ICsyMzEyLDExIEBAIHN0cnVjdCBOb2RlIHsKICAg
ICB7CiAgICAgICAgIHJldHVybiBvcDEtPnNob3VsZFNwZWN1bGF0ZUFueUludCgpICYmIG9wMi0+
c2hvdWxkU3BlY3VsYXRlQW55SW50KCk7CiAgICAgfQorCisgICAgc3RhdGljIGJvb2wgc2hvdWxk
U3BlY3VsYXRlQW55SW50Rm9yQWRkKE5vZGUqIG9wMSwgTm9kZSogb3AyKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG9wMS0+c2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRkKCkgJiYgb3AyLT5zaG91
bGRTcGVjdWxhdGVBbnlJbnRGb3JBZGQoKTsKKyAgICB9CiAgICAgCiAgICAgc3RhdGljIGJvb2wg
c2hvdWxkU3BlY3VsYXRlTnVtYmVyKE5vZGUqIG9wMSwgTm9kZSogb3AyKQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHAKaW5kZXggYmEzMzRjNjk1ZDQ1MjNhYTcwODgwYjYyODI3NmUwMmU0Mjg3
N2ZlOS4uN2MyZmI4NjBkY2NmNjE1YjZkM2NmOTY4Y2M0ZTk1MGJhN2RiNWFhNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHAKQEAgLTE4Nyw3ICsxODcsNyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgICAgICYmIGlzRnVs
bE51bWJlck9yQm9vbGVhblNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChyaWdodCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGguYWRkU3BlY3VsYXRpb25Nb2RlKG5vZGUsIG1f
cGFzcykgIT0gRG9udFNwZWN1bGF0ZUludDMyKQogICAgICAgICAgICAgICAgICAgICAgICAgY2hh
bmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKG1fZ3JhcGguYWRkU2hvdWxkU3BlY3VsYXRlQW55SW50KG5vZGUpKQorICAg
ICAgICAgICAgICAgICAgICBlbHNlIGlmIChtX2dyYXBoLmFkZFNob3VsZFNwZWN1bGF0ZUFueUlu
dChub2RlLCBtX3Bhc3MpKQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0
ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKQEAgLTIxMiw3ICsyMTIs
NyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAg
ICAgICAgICAgICBpZiAobGVmdCAmJiByaWdodCkgewogICAgICAgICAgICAgICAgIGlmIChtX2dy
YXBoLmFkZFNwZWN1bGF0aW9uTW9kZShub2RlLCBtX3Bhc3MpICE9IERvbnRTcGVjdWxhdGVJbnQz
MikKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0lu
dDMyT25seSk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRTcGVj
dWxhdGVBbnlJbnQobm9kZSkpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRT
aG91bGRTcGVjdWxhdGVBbnlJbnQobm9kZSwgbV9wYXNzKSkKICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAgICAgICAgICAgICAg
ICAgZWxzZSBpZiAoaXNGdWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb24obGVmdCkgJiYgaXNG
dWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb24ocmlnaHQpKQogICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRp
Y3Rpb25zKGxlZnQsIHJpZ2h0KSk7CkBAIC0yMzMsNyArMjMzLDcgQEAgY2xhc3MgUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICAm
JiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQocmlnaHQp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLmFkZFNwZWN1bGF0aW9uTW9kZShu
b2RlLCBtX3Bhc3MpICE9IERvbnRTcGVjdWxhdGVJbnQzMikKICAgICAgICAgICAgICAgICAgICAg
ICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOwotICAgICAgICAg
ICAgICAgICAgICBlbHNlIGlmIChtX2dyYXBoLmFkZFNob3VsZFNwZWN1bGF0ZUFueUludChub2Rl
KSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRTcGVjdWxh
dGVBbnlJbnQobm9kZSwgbV9wYXNzKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwogICAgICAgICAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihz
cGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7CkBAIC0zNTQs
OCArMzU0LDEwIEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBo
YXNlIHsKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAgICAgICAgICAgICAgICBp
ZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdl
ZCB8PSBtZXJnZVByZWRpY3Rpb24obm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSB8IFNwZWNEb3Vi
bGVSZWFsKTsKLSAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZWxzZSBpZiAo
bm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSAmIFNwZWNOb25JbnRBc0RvdWJsZSkKICAgICAgICAg
ICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0RvdWJsZVJlYWwpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY0FueUludEFzRG91YmxlKTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJBcnJheToKICAgICAgICAgICAgIGNhc2Ug
QXJyYXk6OkZsb2F0NjRBcnJheToKQEAgLTQwMyw3ICs0MDUsNyBAQCBjbGFzcyBQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVOdW1iZXIo
KSkgewotICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
QW55SW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24o
U3BlY0J5dGVjb2RlTnVtYmVyKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgfQogCkBAIC00OTIsNyArNDk0LDcgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgaWYgKGlzRnVsbE51bWJlclNw
ZWN1bGF0aW9uKGxlZnQpCiAgICAgICAgICAgICAgICAgJiYgaXNGdWxsTnVtYmVyU3BlY3VsYXRp
b24ocmlnaHQpCiAgICAgICAgICAgICAgICAgJiYgIW1fZ3JhcGguYWRkU2hvdWxkU3BlY3VsYXRl
SW50MzIobm9kZSwgbV9wYXNzKQotICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLmFkZFNob3Vs
ZFNwZWN1bGF0ZUFueUludChub2RlKSkKKyAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5hZGRT
aG91bGRTcGVjdWxhdGVBbnlJbnQobm9kZSwgbV9wYXNzKSkKICAgICAgICAgICAgICAgICBiYWxs
b3QgPSBWb3RlRG91YmxlOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGJhbGxv
dCA9IFZvdGVWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAppbmRleCA2YjRkNTA4ZjVlMmFlNjY2ODUwNzcwNmEwMDAzNDQ5YWY4MWMzZTAzLi5j
MmYxYjdhMDA4M2I1MDhhNjgxODAxY2JjZGI3ODhlNGM1ZDFkYjBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0yNTY0LDcgKzI1NjQsOCBA
QCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SW50
NTIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBDaGVja1ZhbHVlKiByZXN1bHQgPSBt
X291dC5zcGVjdWxhdGVTdWIobV9vdXQuaW50NjRaZXJvLCB2YWx1ZSk7CiAgICAgICAgICAgICBi
bGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCBudWxscHRy
LCBtX29yaWdpbik7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVl
KCksIDAsIG1fb3V0LmlzWmVybzY0KHJlc3VsdCkpOworICAgICAgICAgICAgaWYgKHNob3VsZENo
ZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgICAgIHNw
ZWN1bGF0ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvNjQocmVzdWx0
KSk7CiAgICAgICAgICAgICBzZXRJbnQ1MihyZXN1bHQpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9i
dWd6aWxsYS9idWd6aWxsYS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9i
dWd6aWxsYS9idWd6aWxsYS5weQppbmRleCBhNDU5MmMwZDRiYzYwYWQxNjBkMmEyNzc4NDRkZDQ1
YzhmNGVlZjIxLi42MzBmNmIxZWYzZjk1MjgxM2ZiYjM3OGE0MGU4NWI2MzZkMWZiNTVmIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemls
bGEucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1
Z3ppbGxhLnB5CkBAIC02MzAsNiArNjMwLDcgQEAgZGVmIGFkZF9wYXRjaF90b19idWcoc2VsZiwK
ICAgICAgICAgX2xvZy5pbmZvKCdBZGRpbmcgcGF0Y2ggIiVzIiB0byAlcycgJSAoZGVzY3JpcHRp
b24sIHNlbGYuYnVnX3VybF9mb3JfYnVnX2lkKGJ1Z19pZCkpKQogCiAgICAgICAgIHNlbGYuYnJv
d3Nlci5vcGVuKHNlbGYuYWRkX2F0dGFjaG1lbnRfdXJsKGJ1Z19pZCkpCisgICAgICAgIF9sb2cu
aW5mbygnc291cmNlICVzJyAlIChzZWxmLmJyb3dzZXIucmVzcG9uc2UoKS5yZWFkKCkpKQogICAg
ICAgICBzZWxmLmJyb3dzZXIuc2VsZWN0X2Zvcm0obmFtZT0iZW50cnlmb3JtIikKICAgICAgICAg
ZmlsZV9vYmplY3QgPSBzZWxmLl9maWxlX29iamVjdF9mb3JfdXBsb2FkKGZpbGVfb3Jfc3RyaW5n
KQogICAgICAgICBmaWxlbmFtZSA9IHNlbGYuX2ZpbGVuYW1lX2Zvcl91cGxvYWQoZmlsZV9vYmpl
Y3QsIGJ1Z19pZCwgZXh0ZW5zaW9uPSJwYXRjaCIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305026</attachid>
            <date>2017-03-21 14:06:59 -0700</date>
            <delta_ts>2017-03-21 15:41:24 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-169914-20170322060658.patch</filename>
            <type>text/plain</type>
            <size>10105</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
M2I2MmIxZDQ4OTY1OTg0MGFhNWIxYjZiZWNhNTYxZTU0MDU1Mjc4Li40ZTBiOGEyMjU0ODQwMGQy
N2I3ODQ1NDFiOTcyYmEyOTdkYjlhMjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxNy0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXVtERkddIFByb3BhZ2F0ZSBBbnlJbnRBc0RvdWJsZSBpbmZv
cm1hdGlvbiBjYXJlZnVsbHkgdG8gdXRpbGl6ZSBpdCBpbiBmaXh1cAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5OTE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5oOgorICAgICAgICAoSlNDOjppc0FueUludFNwZWN1bGF0aW9uRm9yQWRkKToKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMp
OgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpG
aXh1cFBoYXNlOjphdHRlbXB0VG9NYWtlSW50ZWdlckFkZCk6CisgICAgICAgICogZGZnL0RGR0dy
YXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmFkZFNob3VsZFNwZWN1bGF0ZUFueUlu
dCk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpz
aG91bGRTcGVjdWxhdGVBbnlJbnRBc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6
c2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRkKToKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQXJpdGhOZWdh
dGUpOgorCiAyMDE3LTAzLTIxICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW0FSTV0gQWRkIG1pc3NpbmcgTWFjcm9Bc3NlbWJsZXIgZnVuY3Rpb25zIGFm
dGVyIHIyMTQxODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
cGVjdWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmgKaW5kZXggZTIzZmQyYzVmNTRjZWUwOWM3YTIzYmRjMTQ5OTkwYjYwOWIwMTkwMC4u
NWNlMWI4MDNjYzlkMjc4NGQ2ODBlZjkyNDFiMjk4MDllYjQ0ODRmMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTQzMyw2ICs0MzMs
MTEgQEAgaW5saW5lIGJvb2wgaXNVbnR5cGVkU3BlY3VsYXRpb25Gb3JCaXRPcHMoU3BlY3VsYXRl
ZFR5cGUgdmFsdWUpCiAgICAgcmV0dXJuICEhKHZhbHVlICYgfihTcGVjRnVsbE51bWJlciB8IFNw
ZWNCb29sZWFuIHwgU3BlY090aGVyKSk7CiB9CiAKK2lubGluZSBib29sIGlzQW55SW50U3BlY3Vs
YXRpb25Gb3JBZGQoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuICEhdmFsdWUg
JiYgKHZhbHVlICYgKFNwZWNBbnlJbnQgfCBTcGVjQW55SW50QXNEb3VibGUpKSA9PSB2YWx1ZTsK
K30KKwogdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJlYW0mLCBTcGVjdWxhdGVkVHlwZSk7
CiB2b2lkIGR1bXBTcGVjdWxhdGlvbkFiYnJldmlhdGVkKFByaW50U3RyZWFtJiwgU3BlY3VsYXRl
ZFR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggYjU0OWVjYTZkOTg1Y2UwN2EyZGIxODBh
Y2E4NmEwMGE3OGVlMzVmNC4uY2JhMGQ2Y2IwOGZmY2NhN2E0MjY1MmIxZDdjMjZkNzY2ZWE5MmVm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDc1LDcgKzQ3NSw3IEBAIGJvb2wgQWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNs
b2JiZXJMaW1pCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKLSAgICAg
ICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNJbnQzMk9ubHkpOworICAgICAgICBmb3JOb2Rl
KG5vZGUpLnNldFR5cGUoU3BlY0FueUludCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCBi
MmYyYTgwMjA2MWQxZDlkMDhmYzI1NWY4YWU5ODgzNGY3ZmU0ZDkxLi4xMDA1MGFmZWJiZGQwODEz
YTZjNGU3NjQxNWQyNTM0NWY3ZjRhMTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKQEAgLTI3MzMsNyArMjczMyw3IEBAIGNsYXNzIEZpeHVwUGhhc2Ug
OiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIGlmIChtX2dyYXBoLmFkZFNob3VsZFNwZWN1bGF0ZUFueUludChub2Rl
KSkgeworICAgICAgICBpZiAobV9ncmFwaC5hZGRTaG91bGRTcGVjdWxhdGVBbnlJbnQobm9kZSwg
Rml4dXBQYXNzKSkgewogICAgICAgICAgICAgZml4RWRnZTxJbnQ1MlJlcFVzZT4obm9kZS0+Y2hp
bGQxKCkpOwogICAgICAgICAgICAgZml4RWRnZTxJbnQ1MlJlcFVzZT4obm9kZS0+Y2hpbGQyKCkp
OwogICAgICAgICAgICAgbm9kZS0+c2V0QXJpdGhNb2RlKEFyaXRoOjpDaGVja092ZXJmbG93KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAppbmRleCAzYjMyOTIwODc0MjhjMTc0YWI1
Mzk2MWIxNjdiMTI4ZDEzMWUyNjk1Li4yYWRjYTNjOWI1NWIzOGZiMDYxMTE2MzQ2ZTI1NjY3MDE0
NGNlNjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC0yODUsMTYgKzI4
NSwxNiBAQCBjbGFzcyBHcmFwaCA6IHB1YmxpYyB2aXJ0dWFsIFNjYW5uYWJsZSB7CiAgICAgICAg
IHJldHVybiBhZGRTcGVjdWxhdGlvbk1vZGUoYWRkLCBwYXNzKSAhPSBEb250U3BlY3VsYXRlSW50
MzI7CiAgICAgfQogICAgIAotICAgIGJvb2wgYWRkU2hvdWxkU3BlY3VsYXRlQW55SW50KE5vZGUq
IGFkZCkKKyAgICBib29sIGFkZFNob3VsZFNwZWN1bGF0ZUFueUludChOb2RlKiBub2RlLCBQcmVk
aWN0aW9uUGFzcykKICAgICB7CiAgICAgICAgIGlmICghZW5hYmxlSW50NTIoKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0gICAgICAgIE5vZGUqIGxlZnQgPSBhZGQtPmNo
aWxkMSgpLm5vZGUoKTsKLSAgICAgICAgTm9kZSogcmlnaHQgPSBhZGQtPmNoaWxkMigpLm5vZGUo
KTsKKyAgICAgICAgTm9kZSogbGVmdCA9IG5vZGUtPmNoaWxkMSgpLm5vZGUoKTsKKyAgICAgICAg
Tm9kZSogcmlnaHQgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCk7CiAKLSAgICAgICAgYm9vbCBzcGVj
dWxhdGlvbiA9IE5vZGU6OnNob3VsZFNwZWN1bGF0ZUFueUludChsZWZ0LCByaWdodCk7Ci0gICAg
ICAgIHJldHVybiBzcGVjdWxhdGlvbiAmJiAhaGFzRXhpdFNpdGUoYWRkLCBJbnQ1Mk92ZXJmbG93
KTsKKyAgICAgICAgYm9vbCBzcGVjdWxhdGlvbiA9IE5vZGU6OnNob3VsZFNwZWN1bGF0ZUFueUlu
dEZvckFkZChsZWZ0LCByaWdodCk7CisgICAgICAgIHJldHVybiBzcGVjdWxhdGlvbiAmJiAhaGFz
RXhpdFNpdGUobm9kZSwgSW50NTJPdmVyZmxvdyk7CiAgICAgfQogICAgIAogICAgIGJvb2wgYmlu
YXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVJbnQzMihOb2RlKiBub2RlLCBQcmVkaWN0aW9uUGFzcyBw
YXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBkZjVjMjhhY2ZkZDc1NWY5
ZWZkZWIzNzY5OGIwYjgwZjFlYmM0MmI5Li4yZjE5ZjI0ZDMyYjQxNTViNWM0OWJkYjM4NWEzMWI1
ZDQyOTNhNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMjA0OSw2ICsy
MDQ5LDE2IEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHJldHVybiBpc0FueUludFNw
ZWN1bGF0aW9uKHByZWRpY3Rpb24oKSk7CiAgICAgfQorCisgICAgYm9vbCBzaG91bGRTcGVjdWxh
dGVBbnlJbnRBc0RvdWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gaXNBbnlJbnRBc0RvdWJs
ZVNwZWN1bGF0aW9uKHByZWRpY3Rpb24oKSk7CisgICAgfQorCisgICAgYm9vbCBzaG91bGRTcGVj
dWxhdGVBbnlJbnRGb3JBZGQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzQW55SW50U3BlY3Vs
YXRpb25Gb3JBZGQocHJlZGljdGlvbigpKTsKKyAgICB9CiAgICAgCiAgICAgYm9vbCBzaG91bGRT
cGVjdWxhdGVEb3VibGUoKQogICAgIHsKQEAgLTIzMDIsNiArMjMxMiwxMSBAQCBzdHJ1Y3QgTm9k
ZSB7CiAgICAgewogICAgICAgICByZXR1cm4gb3AxLT5zaG91bGRTcGVjdWxhdGVBbnlJbnQoKSAm
JiBvcDItPnNob3VsZFNwZWN1bGF0ZUFueUludCgpOwogICAgIH0KKworICAgIHN0YXRpYyBib29s
IHNob3VsZFNwZWN1bGF0ZUFueUludEZvckFkZChOb2RlKiBvcDEsIE5vZGUqIG9wMikKKyAgICB7
CisgICAgICAgIHJldHVybiBvcDEtPnNob3VsZFNwZWN1bGF0ZUFueUludEZvckFkZCgpICYmIG9w
Mi0+c2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRkKCk7CisgICAgfQogICAgIAogICAgIHN0YXRp
YyBib29sIHNob3VsZFNwZWN1bGF0ZU51bWJlcihOb2RlKiBvcDEsIE5vZGUqIG9wMikKICAgICB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGJhMzM0YzY5NWQ0NTIzYWE3MDg4MGI2MjgyNzZl
MDJlNDI4NzdmZTkuLjdjMmZiODYwZGNjZjYxNWI2ZDNjZjk2OGNjNGU5NTBiYTdkYjVhYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0xODcsNyArMTg3LDcgQEAgY2xhc3MgUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICAm
JiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQocmlnaHQp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLmFkZFNwZWN1bGF0aW9uTW9kZShu
b2RlLCBtX3Bhc3MpICE9IERvbnRTcGVjdWxhdGVJbnQzMikKICAgICAgICAgICAgICAgICAgICAg
ICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOwotICAgICAgICAg
ICAgICAgICAgICBlbHNlIGlmIChtX2dyYXBoLmFkZFNob3VsZFNwZWN1bGF0ZUFueUludChub2Rl
KSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRTcGVjdWxh
dGVBbnlJbnQobm9kZSwgbV9wYXNzKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwogICAgICAgICAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihz
cGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7CkBAIC0yMTIs
NyArMjEyLDcgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICAgICAgaWYgKGxlZnQgJiYgcmlnaHQpIHsKICAgICAgICAgICAgICAgICBp
ZiAobV9ncmFwaC5hZGRTcGVjdWxhdGlvbk1vZGUobm9kZSwgbV9wYXNzKSAhPSBEb250U3BlY3Vs
YXRlSW50MzIpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9u
KFNwZWNJbnQzMk9ubHkpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fZ3JhcGguYWRkU2hv
dWxkU3BlY3VsYXRlQW55SW50KG5vZGUpKQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fZ3Jh
cGguYWRkU2hvdWxkU3BlY3VsYXRlQW55SW50KG5vZGUsIG1fcGFzcykpCiAgICAgICAgICAgICAg
ICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwogICAgICAg
ICAgICAgICAgIGVsc2UgaWYgKGlzRnVsbE51bWJlck9yQm9vbGVhblNwZWN1bGF0aW9uKGxlZnQp
ICYmIGlzRnVsbE51bWJlck9yQm9vbGVhblNwZWN1bGF0aW9uKHJpZ2h0KSkKICAgICAgICAgICAg
ICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVG
b3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwpAQCAtMjMzLDcgKzIzMyw3IEBAIGNsYXNzIFBy
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAg
ICAgICAgJiYgaXNGdWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVk
KHJpZ2h0KSkgewogICAgICAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC5hZGRTcGVjdWxhdGlv
bk1vZGUobm9kZSwgbV9wYXNzKSAhPSBEb250U3BlY3VsYXRlSW50MzIpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKLSAg
ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRTcGVjdWxhdGVBbnlJ
bnQobm9kZSkpCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fZ3JhcGguYWRkU2hvdWxk
U3BlY3VsYXRlQW55SW50KG5vZGUsIG1fcGFzcykpCiAgICAgICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJPbmx5KTsKICAgICAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRp
Y3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwpA
QCAtMzU0LDggKzM1NCwxMCBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1
YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAgICAgICAg
ICAgICAgaWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCiAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKG5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkgfCBT
cGVjRG91YmxlUmVhbCk7Ci0gICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVs
c2UgaWYgKG5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkgJiBTcGVjTm9uSW50QXNEb3VibGUpCiAg
ICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNEb3VibGVS
ZWFsKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNBbnlJbnRBc0RvdWJsZSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpGbG9hdDMyQXJyYXk6CiAgICAgICAgICAg
ICBjYXNlIEFycmF5OjpGbG9hdDY0QXJyYXk6CkBAIC00MDMsNyArNDA1LDcgQEAgY2xhc3MgUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRl
TnVtYmVyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rp
b24oU3BlY0FueUludCk7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKFNwZWNCeXRlY29kZU51bWJlcik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIH0KIApAQCAtNDkyLDcgKzQ5NCw3IEBAIGNsYXNzIFByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGlmIChpc0Z1bGxO
dW1iZXJTcGVjdWxhdGlvbihsZWZ0KQogICAgICAgICAgICAgICAgICYmIGlzRnVsbE51bWJlclNw
ZWN1bGF0aW9uKHJpZ2h0KQogICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLmFkZFNob3VsZFNw
ZWN1bGF0ZUludDMyKG5vZGUsIG1fcGFzcykKLSAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5h
ZGRTaG91bGRTcGVjdWxhdGVBbnlJbnQobm9kZSkpCisgICAgICAgICAgICAgICAgJiYgIW1fZ3Jh
cGguYWRkU2hvdWxkU3BlY3VsYXRlQW55SW50KG5vZGUsIG1fcGFzcykpCiAgICAgICAgICAgICAg
ICAgYmFsbG90ID0gVm90ZURvdWJsZTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBiYWxsb3QgPSBWb3RlVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKaW5kZXggNmI0ZDUwOGY1ZTJhZTY2Njg1MDc3MDZhMDAwMzQ0OWFmODFj
M2UwMy4uYzJmMWI3YTAwODNiNTA4YTY4MTgwMWNiY2RiNzg4ZTRjNWQxZGIwYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMjU2NCw3ICsy
NTY0LDggQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9
IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgQ2hlY2tWYWx1ZSogcmVz
dWx0ID0gbV9vdXQuc3BlY3VsYXRlU3ViKG1fb3V0LmludDY0WmVybywgdmFsdWUpOwogICAgICAg
ICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEludDUyT3ZlcmZsb3csIG5vVmFsdWUoKSwg
bnVsbHB0ciwgbV9vcmlnaW4pOwotICAgICAgICAgICAgc3BlY3VsYXRlKE5lZ2F0aXZlWmVybywg
bm9WYWx1ZSgpLCAwLCBtX291dC5pc1plcm82NChyZXN1bHQpKTsKKyAgICAgICAgICAgIGlmIChz
aG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAg
ICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzY0
KHJlc3VsdCkpOwogICAgICAgICAgICAgc2V0SW50NTIocmVzdWx0KTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305038</attachid>
            <date>2017-03-21 15:41:27 -0700</date>
            <delta_ts>2017-03-21 18:04:24 -0700</delta_ts>
            <desc>WIP: Patch becomes much solid</desc>
            <filename>bug-169914-20170322074126.patch</filename>
            <type>text/plain</type>
            <size>6525</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
M2I2MmIxZDQ4OTY1OTg0MGFhNWIxYjZiZWNhNTYxZTU0MDU1Mjc4Li5kZGYxM2I4ZmQ0OTZjYWMz
OWFlYzdiMDBiMWQxNjFiNmUzMmNlM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNy0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXVtERkddIFByb3BhZ2F0ZSBBbnlJbnRBc0RvdWJsZSBpbmZv
cm1hdGlvbiBjYXJlZnVsbHkgdG8gdXRpbGl6ZSBpdCBpbiBmaXh1cAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5OTE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5oOgorICAgICAgICAoSlNDOjppc0FueUludFNwZWN1bGF0aW9uRm9yQWRkKToKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMp
OgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjph
ZGRTaG91bGRTcGVjdWxhdGVBbnlJbnQpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRkKToKKyAgICAg
ICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGZ0
bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjb21waWxlQXJpdGhOZWdhdGUpOgorCiAyMDE3LTAzLTIxICBDc2FiYSBPc3p0cm9nb27D
oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0FSTV0gQWRkIG1pc3NpbmcgTWFjcm9B
c3NlbWJsZXIgZnVuY3Rpb25zIGFmdGVyIHIyMTQxODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKaW5kZXggZTIzZmQyYzVmNTRjZWUwOWM3YTIz
YmRjMTQ5OTkwYjYwOWIwMTkwMC4uNWNlMWI4MDNjYzlkMjc4NGQ2ODBlZjkyNDFiMjk4MDllYjQ0
ODRmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmgKQEAgLTQzMyw2ICs0MzMsMTEgQEAgaW5saW5lIGJvb2wgaXNVbnR5cGVkU3BlY3VsYXRp
b25Gb3JCaXRPcHMoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgcmV0dXJuICEhKHZhbHVlICYg
fihTcGVjRnVsbE51bWJlciB8IFNwZWNCb29sZWFuIHwgU3BlY090aGVyKSk7CiB9CiAKK2lubGlu
ZSBib29sIGlzQW55SW50U3BlY3VsYXRpb25Gb3JBZGQoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7
CisgICAgcmV0dXJuICEhdmFsdWUgJiYgKHZhbHVlICYgKFNwZWNBbnlJbnQgfCBTcGVjQW55SW50
QXNEb3VibGUpKSA9PSB2YWx1ZTsKK30KKwogdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJl
YW0mLCBTcGVjdWxhdGVkVHlwZSk7CiB2b2lkIGR1bXBTcGVjdWxhdGlvbkFiYnJldmlhdGVkKFBy
aW50U3RyZWFtJiwgU3BlY3VsYXRlZFR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggYjU0
OWVjYTZkOTg1Y2UwN2EyZGIxODBhY2E4NmEwMGE3OGVlMzVmNC4uY2JhMGQ2Y2IwOGZmY2NhN2E0
MjY1MmIxZDdjMjZkNzY2ZWE5MmVmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDc1LDcgKzQ3
NSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1
dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICAKLSAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNJbnQzMk9u
bHkpOworICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0FueUludCk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgK
aW5kZXggM2IzMjkyMDg3NDI4YzE3NGFiNTM5NjFiMTY3YjEyOGQxMzFlMjY5NS4uMDg4ZGMxMjk1
ODZhY2U4NDNjMGEzNTNhMmY0MjVhMTY3NzlhNDZlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguaApAQCAtMjkzLDggKzI5Myw3IEBAIGNsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1
YWwgU2Nhbm5hYmxlIHsKICAgICAgICAgTm9kZSogbGVmdCA9IGFkZC0+Y2hpbGQxKCkubm9kZSgp
OwogICAgICAgICBOb2RlKiByaWdodCA9IGFkZC0+Y2hpbGQyKCkubm9kZSgpOwogCi0gICAgICAg
IGJvb2wgc3BlY3VsYXRpb24gPSBOb2RlOjpzaG91bGRTcGVjdWxhdGVBbnlJbnQobGVmdCwgcmln
aHQpOwotICAgICAgICByZXR1cm4gc3BlY3VsYXRpb24gJiYgIWhhc0V4aXRTaXRlKGFkZCwgSW50
NTJPdmVyZmxvdyk7CisgICAgICAgIHJldHVybiBOb2RlOjpzaG91bGRTcGVjdWxhdGVBbnlJbnRG
b3JBZGQobGVmdCwgcmlnaHQpICYmICFoYXNFeGl0U2l0ZShhZGQsIEludDUyT3ZlcmZsb3cpOwog
ICAgIH0KICAgICAKICAgICBib29sIGJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlSW50MzIoTm9k
ZSogbm9kZSwgUHJlZGljdGlvblBhc3MgcGFzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmgKaW5kZXggZGY1YzI4YWNmZGQ3NTVmOWVmZGViMzc2OThiMGI4MGYxZWJjNDJiOS4uYjFmOTRi
NDM3MmE2YzZjNGFkMjc3MGVjZDAzOTlhYzQyYTk3OTFkZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKQEAgLTIwNDksNiArMjA0OSwxMyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgewog
ICAgICAgICByZXR1cm4gaXNBbnlJbnRTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOwogICAgIH0K
KworICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRkKCkKKyAgICB7CisgICAgICAg
IC8vIFdlIGhvbm9yIHVzZXItc3BlY2lmaWVkIGZvcm0gb2YgdGhlIHZhbHVlLiBJZiBhIHVzZXIg
d3JpdGUgYSBjb25zdGFudCBpbiBhIGRvdWJsZSBmb3JtICgxLjAgaW5zdGVhZCBvZiAxKSwKKyAg
ICAgICAgLy8gd2Ugc2hvdWxkIG5vdCByZWNvZ25pemUgaXQgYXMgYW4gaW50ZWdlci4KKyAgICAg
ICAgcmV0dXJuIGlzQW55SW50U3BlY3VsYXRpb25Gb3JBZGQocHJlZGljdGlvbigpKSAmJiAhaXNE
b3VibGVDb25zdGFudCgpOworICAgIH0KICAgICAKICAgICBib29sIHNob3VsZFNwZWN1bGF0ZURv
dWJsZSgpCiAgICAgewpAQCAtMjMwMiw2ICsyMzA5LDExIEBAIHN0cnVjdCBOb2RlIHsKICAgICB7
CiAgICAgICAgIHJldHVybiBvcDEtPnNob3VsZFNwZWN1bGF0ZUFueUludCgpICYmIG9wMi0+c2hv
dWxkU3BlY3VsYXRlQW55SW50KCk7CiAgICAgfQorCisgICAgc3RhdGljIGJvb2wgc2hvdWxkU3Bl
Y3VsYXRlQW55SW50Rm9yQWRkKE5vZGUqIG9wMSwgTm9kZSogb3AyKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG9wMS0+c2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRkKCkgJiYgb3AyLT5zaG91bGRT
cGVjdWxhdGVBbnlJbnRGb3JBZGQoKTsKKyAgICB9CiAgICAgCiAgICAgc3RhdGljIGJvb2wgc2hv
dWxkU3BlY3VsYXRlTnVtYmVyKE5vZGUqIG9wMSwgTm9kZSogb3AyKQogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAKaW5kZXggYmEzMzRjNjk1ZDQ1MjNhYTcwODgwYjYyODI3NmUwMmU0Mjg3N2Zl
OS4uN2M5YmM0NTMyNWU5ZTMxYzA2NzRjMDU3YzYyN2E2ZjAxYTU1N2M5MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAKQEAgLTM1NCw4ICszNTQsMTAgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgY2FzZSBBcnJheTo6RG91Ymxl
OgogICAgICAgICAgICAgICAgIGlmIChhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQogICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihub2RlLT5nZXRIZWFwUHJl
ZGljdGlvbigpIHwgU3BlY0RvdWJsZVJlYWwpOwotICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBlbHNlIGlmIChub2RlLT5nZXRIZWFwUHJlZGljdGlvbigpICYgU3BlY05vbklu
dEFzRG91YmxlKQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjRG91YmxlUmVhbCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQW55SW50QXNEb3VibGUpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBcnJheTo6RmxvYXQzMkFycmF5
OgogICAgICAgICAgICAgY2FzZSBBcnJheTo6RmxvYXQ2NEFycmF5OgpAQCAtNDAzLDcgKzQwNSw3
IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNo
b3VsZFNwZWN1bGF0ZU51bWJlcigpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0g
bWVyZ2VQcmVkaWN0aW9uKFNwZWNBbnlJbnQpOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQnl0ZWNvZGVOdW1iZXIpOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA2YjRkNTA4ZjVlMmFlNjY2ODUwNzcwNmEw
MDAzNDQ5YWY4MWMzZTAzLi5jMmYxYjdhMDA4M2I1MDhhNjgxODAxY2JjZGI3ODhlNGM1ZDFkYjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBA
IC0yNTY0LDcgKzI1NjQsOCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgTFZh
bHVlIHZhbHVlID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBDaGVj
a1ZhbHVlKiByZXN1bHQgPSBtX291dC5zcGVjdWxhdGVTdWIobV9vdXQuaW50NjRaZXJvLCB2YWx1
ZSk7CiAgICAgICAgICAgICBibGVzc1NwZWN1bGF0aW9uKHJlc3VsdCwgSW50NTJPdmVyZmxvdywg
bm9WYWx1ZSgpLCBudWxscHRyLCBtX29yaWdpbik7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoTmVn
YXRpdmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzY0KHJlc3VsdCkpOworICAgICAg
ICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKQor
ICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwgbV9v
dXQuaXNaZXJvNjQocmVzdWx0KSk7CiAgICAgICAgICAgICBzZXRJbnQ1MihyZXN1bHQpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305055</attachid>
            <date>2017-03-21 18:04:29 -0700</date>
            <delta_ts>2017-03-22 13:50:48 -0700</delta_ts>
            <desc>WIP: Cleaning up right now</desc>
            <filename>bug-169914-20170322100428.patch</filename>
            <type>text/plain</type>
            <size>9938</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
M2I2MmIxZDQ4OTY1OTg0MGFhNWIxYjZiZWNhNTYxZTU0MDU1Mjc4Li5kNWMyYzQ2OGZmYTdmM2Zh
MzdkMWM2OTFjYmViYzY0ZTFkNTM2N2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NSBAQAorMjAxNy0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXVtERkddIFByb3BhZ2F0ZSBBbnlJbnRBc0RvdWJsZSBpbmZv
cm1hdGlvbiBjYXJlZnVsbHkgdG8gdXRpbGl6ZSBpdCBpbiBmaXh1cAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5OTE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gREZHIHByZWRpY3Rpb24gcHJvcGFn
YXRpb24gcGhhc2UsIHdlIHBvbGx1dGUgdGhlIHByZWRpY3Rpb24gb2YgR2V0QnlWYWwgZm9yIEFy
cmF5OjpEb3VibGUKKyAgICAgICAgYXMgU3BlY0RvdWJsZVJlYWwgZXZlbiBpZiB0aGUgaGVhcCBw
cmVkaWN0aW9uIHNheXMgdGhlIHByb3BlciBwcmVkaWN0aW9uIGlzIFNwZWNBbnlJbnRBc0RvdWJs
ZS4KKyAgICAgICAgVGh1cywgdGhlIGZvbGxvd2luZyBub2RlcyBqdXN0IHNlZSB0aGUgcmVzdWx0
IG9mIEdldEJ5VmFsKEFycmF5OjpEb3VibGUpIGFzIGRvdWJsZSB2YWx1ZSwKKyAgICAgICAgYW5k
IHNlbGVjdCBzdWJvcHRpbWFsIGVkZ2UgZmlsdGVycyBpbiBmaXh1cCBwaGFzZS4gRm9yIGV4YW1w
bGUsIGlmIHRoZSByZXN1bHQgb2YgR2V0QnlWYWwgaXMKKyAgICAgICAgU3BlY0FueUludEFzRG91
YmxlLCB3ZSBjYW4gc2VlIHRoZSBub2RlIGxpa2UgQXJpdGhBZGQoU3BlY0FueUludEFzRG91Ymxl
LCBJbnQ1MikgYW5kIG1ha2UgaXQKKyAgICAgICAgQXJpdGhBZGQoQ2hlY2s6SW50NTIsIEludDUy
KSBpbnN0ZWFkIG9mIEFyaXRoQWRkKERvdWJsZSwgRG91YmxlKS4KKworICAgICAgICBUaGlzIHBh
dGNoIHByb3BhZ2F0ZXMgU3BlY0FueUludEFzRG91YmxlIGluIEdldEJ5VmFsKEFycmF5OjpEb3Vi
bGUpIHByb3Blcmx5LiBBbmQgVmFsdWVBZGQsCisgICAgICAgIEFyaXRoQWRkIGFuZCBBcml0aFN1
YiBzZWxlY3QgQW55SW50IGVkZ2UgZmlsdGVycyBmb3IgU3BlY0FueUludEFzRG91YmxlIHZhbHVl
cy4gSXQgZmluYWxseQorICAgICAgICBwcm9kdWNlcyBhIEludDUyIHNwZWNpYWxpemVkIERGRyBu
b2RlLiBBbmQgc3Vic2VxdWVudCBub2RlcyB1c2luZyB0aGUgcHJvZHVjZWQgb25lIGFsc28KKyAg
ICAgICAgYmVjb21lIEludDUyIHNwZWNpYWxpemVkLgorCisgICAgICAgIE9uZSBjb25zaWRlcmFi
bGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBoZWFwIHByZWRpY3Rpb24gbWlzcyB0aGUgbm9uIGFueSBp
bnQgZG91Ymxlcy4gSW4gdGhhdCBjYXNlLAorICAgICAgICBpZiBJbnQ1MiBlZGdlIGZpbHRlciBp
cyB1c2VkLCBCYWRUeXBlIHdpbGwgb2NjdXIuIEl0IGltbWVkaWF0ZWx5IGZpeGVzIHRoZSBwcmVk
aWN0aW9uIG9mIHRoZQorICAgICAgICB2YWx1ZSBwcm9maWxlIG9mIEdldEJ5VmFsLiBTbywgaW4g
dGhlIG5leHQgdGltZSwgR2V0QnlWYWwoQXJyYXk6OkRvdWJsZSkgd2lsbCBwcm9kdWNlIG1vcmUK
KyAgICAgICAgY29uc2VydmF0aXZlIHByZWRpY3Rpb25zIGFuZCBhdm9pZCBleGl0LWFuZC1yZWNv
bXBpbGUgbG9vcCBjb3JyZWN0bHkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaXMgdmVyeSBzZW5z
aXRpdmUgdG8gdGhlIGNvcnJlY3QgQUkgYW5kIGFwcHJvcHJpYXRlIHByZWRpY3Rpb25zLiBUaHVz
IHRoaXMgcGF0Y2ggZmluZHMKKyAgICAgICAgYW5kIGZpeGVzIHNvbWUgcmVsYXRlZCBpc3N1ZXMu
IE9uZSBpcyBpbmNvcnJlY3QgcHJlZGljdGlvbiBmb3IgVG9UaGlzIGFuZCBhbm90aGVyIGlzIGlu
Y29ycmVjdAorICAgICAgICBBSSBmb3IgSW50NTJSZXAuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
ZHJhbWF0aWNhbGx5IGltcHJvdmVzIGtyYWtlbiBiZW5jaG1hcmtzJyBjcnlwdG8tcGJrZGYyIGFu
ZCBjcnlwdG8tc2hhMjU2LWl0ZXJhdGl2ZQorICAgICAgICBieSA0Mi4wJSBhbmQgMzAuNyUsIHJl
c3BlY3RpdmVseS4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBiYXNlbGluZSAgICAgICAgICAgICAgICAgIHBhdGNoZWQKKyAgICAgICAgS3Jh
a2VuOgorICAgICAgICBhaS1hc3RhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
NTguODUxKy00LjEzMiAgICAgID8gICAgIDE1OS40MzMrLTUuMTc2ICAgICAgICAgPworICAgICAg
ICBhdWRpby1iZWF0LWRldGVjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgNTMuMTkzKy0xLjYy
MSAgICAgID8gICAgICA1My4zOTErLTIuMDcyICAgICAgICAgPworICAgICAgICBhdWRpby1kZnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDMuNTg5Ky0yLjI3NyAgICAgID8gICAg
IDEwNC45MDIrLTEuOTI0ICAgICAgICAgPyBtaWdodCBiZSAxLjAxMjd4IHNsb3dlcgorICAgICAg
ICBhdWRpby1mZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAuNDkxKy0xLjEw
MiAgICAgICAgICAgICAzOS44NTQrLTAuNzU1ICAgICAgICAgICBtaWdodCBiZSAxLjAxNjB4IGZh
c3RlcgorICAgICAgICBhdWRpby1vc2NpbGxhdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAg
NjguNTA0Ky0xLjcyMSAgICAgID8gICAgICA2OC45NTcrLTEuNzI1ICAgICAgICAgPworICAgICAg
ICBpbWFnaW5nLWRhcmtyb29tICAgICAgICAgICAgICAgICAgICAgICAgICAxMTguMzY3Ky0yLjE3
MSAgICAgID8gICAgIDExOS41ODErLTIuMzEwICAgICAgICAgPyBtaWdodCBiZSAxLjAxMDN4IHNs
b3dlcgorICAgICAgICBpbWFnaW5nLWRlc2F0dXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAg
NzEuNDQzKy0xLjQ2MSAgICAgID8gICAgICA3Mi4zOTgrLTEuOTE4ICAgICAgICAgPyBtaWdodCBi
ZSAxLjAxMzR4IHNsb3dlcgorICAgICAgICBpbWFnaW5nLWdhdXNzaWFuLWJsdXIgICAgICAgICAg
ICAgICAgICAgICAxMTAuNjQ4Ky00LjAzNSAgICAgICAgICAgIDEwOS4xODQrLTMuMzczICAgICAg
ICAgICBtaWdodCBiZSAxLjAxMzR4IGZhc3RlcgorICAgICAgICBqc29uLXBhcnNlLWZpbmFuY2lh
bCAgICAgICAgICAgICAgICAgICAgICAgNjAuMzYzKy0xLjYyOCAgICAgID8gICAgICA2MS45MzYr
LTEuNTg1ICAgICAgICAgPyBtaWdodCBiZSAxLjAyNjF4IHNsb3dlcgorICAgICAgICBqc29uLXN0
cmluZ2lmeS10aW5kZXJib3ggICAgICAgICAgICAgICAgICAgMzcuOTAzKy0wLjg2OSAgICAgID8g
ICAgICAzOS41NTkrLTEuNjA3ICAgICAgICAgPyBtaWdodCBiZSAxLjA0Mzd4IHNsb3dlcgorICAg
ICAgICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgNTYuMzEzKy0x
LjUxMiAgICAgID8gICAgICA1Ni42NzUrLTEuNzE1ICAgICAgICAgPworICAgICAgICBzdGFuZm9y
ZC1jcnlwdG8tY2NtICAgICAgICAgICAgICAgICAgICAgICAgNTEuNTY0Ky0xLjkwMCAgICAgID8g
ICAgICA1My40NTYrLTIuNTQ4ICAgICAgICAgPyBtaWdodCBiZSAxLjAzNjd4IHNsb3dlcgorICAg
ICAgICBzdGFuZm9yZC1jcnlwdG8tcGJrZGYyICAgICAgICAgICAgICAgICAgICAxMjkuNTQ2Ky0y
LjczOCAgICAgIF4gICAgICA5MS4yMTQrLTIuMDI3ICAgICAgICAgXiBkZWZpbml0ZWx5IDEuNDIw
MnggZmFzdGVyCisgICAgICAgIHN0YW5mb3JkLWNyeXB0by1zaGEyNTYtaXRlcmF0aXZlICAgICAg
ICAgICA0My41MTUrLTAuNzMwICAgICAgXiAgICAgIDMzLjI5MistMC42NTMgICAgICAgICBeIGRl
ZmluaXRlbHkgMS4zMDcxeCBmYXN0ZXIKKworICAgICAgICA8YXJpdGhtZXRpYz4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNzguODc4Ky0wLjUyOCAgICAgIF4gICAgICA3NS45ODgrLTAu
NjIxICAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDM4MHggZmFzdGVyCisKKyAgICAgICAgKiBieXRl
Y29kZS9TcGVjdWxhdGVkVHlwZS5oOgorICAgICAgICAoSlNDOjppc0FueUludFNwZWN1bGF0aW9u
Rm9yQWRkKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAo
SlNDOjpERkc6OkdyYXBoOjphZGRTaG91bGRTcGVjdWxhdGVBbnlJbnQpOgorICAgICAgICAqIGRm
Zy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlQW55
SW50Rm9yQWRkKToKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpG
VEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQXJpdGhOZWdhdGUpOgorCiAyMDE3LTAzLTIx
ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0FSTV0g
QWRkIG1pc3NpbmcgTWFjcm9Bc3NlbWJsZXIgZnVuY3Rpb25zIGFmdGVyIHIyMTQxODcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKaW5kZXggZTIz
ZmQyYzVmNTRjZWUwOWM3YTIzYmRjMTQ5OTkwYjYwOWIwMTkwMC4uNWNlMWI4MDNjYzlkMjc4NGQ2
ODBlZjkyNDFiMjk4MDllYjQ0ODRmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTQzMyw2ICs0MzMsMTEgQEAgaW5saW5lIGJvb2wg
aXNVbnR5cGVkU3BlY3VsYXRpb25Gb3JCaXRPcHMoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAg
cmV0dXJuICEhKHZhbHVlICYgfihTcGVjRnVsbE51bWJlciB8IFNwZWNCb29sZWFuIHwgU3BlY090
aGVyKSk7CiB9CiAKK2lubGluZSBib29sIGlzQW55SW50U3BlY3VsYXRpb25Gb3JBZGQoU3BlY3Vs
YXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuICEhdmFsdWUgJiYgKHZhbHVlICYgKFNwZWNB
bnlJbnQgfCBTcGVjQW55SW50QXNEb3VibGUpKSA9PSB2YWx1ZTsKK30KKwogdm9pZCBkdW1wU3Bl
Y3VsYXRpb24oUHJpbnRTdHJlYW0mLCBTcGVjdWxhdGVkVHlwZSk7CiB2b2lkIGR1bXBTcGVjdWxh
dGlvbkFiYnJldmlhdGVkKFByaW50U3RyZWFtJiwgU3BlY3VsYXRlZFR5cGUpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKaW5kZXggYjU0OWVjYTZkOTg1Y2UwN2EyZGIxODBhY2E4NmEwMGE3OGVlMzVmNC4u
Y2JhMGQ2Y2IwOGZmY2NhN2E0MjY1MmIxZDdjMjZkNzY2ZWE5MmVmZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaApAQCAtNDc1LDcgKzQ3NSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgZm9yTm9kZShub2RlKS5z
ZXRUeXBlKFNwZWNJbnQzMk9ubHkpOworICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3Bl
Y0FueUludCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmgKaW5kZXggM2IzMjkyMDg3NDI4YzE3NGFiNTM5NjFiMTY3YjEyOGQx
MzFlMjY5NS4uMDg4ZGMxMjk1ODZhY2U4NDNjMGEzNTNhMmY0MjVhMTY3NzlhNDZlNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaApAQCAtMjkzLDggKzI5Myw3IEBAIGNsYXNzIEdy
YXBoIDogcHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsKICAgICAgICAgTm9kZSogbGVmdCA9IGFk
ZC0+Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICBOb2RlKiByaWdodCA9IGFkZC0+Y2hpbGQyKCku
bm9kZSgpOwogCi0gICAgICAgIGJvb2wgc3BlY3VsYXRpb24gPSBOb2RlOjpzaG91bGRTcGVjdWxh
dGVBbnlJbnQobGVmdCwgcmlnaHQpOwotICAgICAgICByZXR1cm4gc3BlY3VsYXRpb24gJiYgIWhh
c0V4aXRTaXRlKGFkZCwgSW50NTJPdmVyZmxvdyk7CisgICAgICAgIHJldHVybiBOb2RlOjpzaG91
bGRTcGVjdWxhdGVBbnlJbnRGb3JBZGQobGVmdCwgcmlnaHQpICYmICFoYXNFeGl0U2l0ZShhZGQs
IEludDUyT3ZlcmZsb3cpOwogICAgIH0KICAgICAKICAgICBib29sIGJpbmFyeUFyaXRoU2hvdWxk
U3BlY3VsYXRlSW50MzIoTm9kZSogbm9kZSwgUHJlZGljdGlvblBhc3MgcGFzcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggZGY1YzI4YWNmZGQ3NTVmOWVmZGViMzc2OThiMGI4
MGYxZWJjNDJiOS4uMWE1ZWZiMWM5YjFjZjFmYWZlYjAzY2U4M2JmYzBjOGUyZTA1NzcyMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTIwNDksNiArMjA0OSwxMSBAQCBzdHJ1
Y3QgTm9kZSB7CiAgICAgewogICAgICAgICByZXR1cm4gaXNBbnlJbnRTcGVjdWxhdGlvbihwcmVk
aWN0aW9uKCkpOwogICAgIH0KKworICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlQW55SW50Rm9yQWRk
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc0FueUludFNwZWN1bGF0aW9uRm9yQWRkKHByZWRp
Y3Rpb24oKSk7CisgICAgfQogICAgIAogICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlRG91YmxlKCkK
ICAgICB7CkBAIC0yMzAyLDYgKzIzMDcsMTEgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAg
ICAgcmV0dXJuIG9wMS0+c2hvdWxkU3BlY3VsYXRlQW55SW50KCkgJiYgb3AyLT5zaG91bGRTcGVj
dWxhdGVBbnlJbnQoKTsKICAgICB9CisKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRTcGVjdWxhdGVB
bnlJbnRGb3JBZGQoTm9kZSogb3AxLCBOb2RlKiBvcDIpCisgICAgeworICAgICAgICByZXR1cm4g
b3AxLT5zaG91bGRTcGVjdWxhdGVBbnlJbnRGb3JBZGQoKSAmJiBvcDItPnNob3VsZFNwZWN1bGF0
ZUFueUludEZvckFkZCgpOworICAgIH0KICAgICAKICAgICBzdGF0aWMgYm9vbCBzaG91bGRTcGVj
dWxhdGVOdW1iZXIoTm9kZSogb3AxLCBOb2RlKiBvcDIpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAppbmRleCBiYTMzNGM2OTVkNDUyM2FhNzA4ODBiNjI4Mjc2ZTAyZTQyODc3ZmU5Li43Yzli
YzQ1MzI1ZTllMzFjMDY3NGMwNTdjNjI3YTZmMDFhNTU3YzkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcApAQCAtMzU0LDggKzM1NCwxMCBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAg
ICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCiAgICAgICAgICAgICAg
ICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKG5vZGUtPmdldEhlYXBQcmVkaWN0aW9u
KCkgfCBTcGVjRG91YmxlUmVhbCk7Ci0gICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKG5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkgJiBTcGVjTm9uSW50QXNEb3Vi
bGUpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNE
b3VibGVSZWFsKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNo
YW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNBbnlJbnRBc0RvdWJsZSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpGbG9hdDMyQXJyYXk6CiAgICAg
ICAgICAgICBjYXNlIEFycmF5OjpGbG9hdDY0QXJyYXk6CkBAIC00MDMsNyArNDA1LDcgQEAgY2xh
c3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlTnVtYmVyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVBy
ZWRpY3Rpb24oU3BlY0FueUludCk7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKFNwZWNCeXRlY29kZU51bWJlcik7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDZiNGQ1MDhmNWUyYWU2NjY4NTA3NzA2YTAwMDM0NDlh
ZjgxYzNlMDMuLmMyZjFiN2EwMDgzYjUwOGE2ODE4MDFjYmNkYjc4OGU0YzVkMWRiMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTI1NjQs
NyArMjU2NCw4IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBMVmFsdWUgdmFs
dWUgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIENoZWNrVmFsdWUq
IHJlc3VsdCA9IG1fb3V0LnNwZWN1bGF0ZVN1YihtX291dC5pbnQ2NFplcm8sIHZhbHVlKTsKICAg
ICAgICAgICAgIGJsZXNzU3BlY3VsYXRpb24ocmVzdWx0LCBJbnQ1Mk92ZXJmbG93LCBub1ZhbHVl
KCksIG51bGxwdHIsIG1fb3JpZ2luKTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShOZWdhdGl2ZVpl
cm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvNjQocmVzdWx0KSk7CisgICAgICAgICAgICBp
ZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAg
ICAgICAgICAgc3BlY3VsYXRlKE5lZ2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5pc1pl
cm82NChyZXN1bHQpKTsKICAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305124</attachid>
            <date>2017-03-22 13:50:52 -0700</date>
            <delta_ts>2017-03-22 18:17:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169914-20170323055051.patch</filename>
            <type>text/plain</type>
            <size>11451</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YmVhYjMwZWVhZjQwZWZiMDU5MTE0YWZhMmRiNjljNmMwZjcwNGFkLi4yMzA5NWQ0YWFjM2Q2YTE0
ZTBhMzQxNTJjMWU3M2Q1MGM5M2RkMzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw2MyBAQAogMjAxNy0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtERkddIFByb3BhZ2F0ZSBBbnlJbnRBc0RvdWJsZSBpbmZv
cm1hdGlvbiBjYXJlZnVsbHkgdG8gdXRpbGl6ZSBpdCBpbiBmaXh1cAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5OTE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gREZHIHByZWRpY3Rpb24gcHJvcGFn
YXRpb24gcGhhc2UsIHdlIHBvbGx1dGUgdGhlIHByZWRpY3Rpb24gb2YgR2V0QnlWYWwgZm9yIEFy
cmF5OjpEb3VibGUKKyAgICAgICAgYXMgU3BlY0RvdWJsZVJlYWwgZXZlbiBpZiB0aGUgaGVhcCBw
cmVkaWN0aW9uIHNheXMgdGhlIHByb3BlciBwcmVkaWN0aW9uIGlzIFNwZWNBbnlJbnRBc0RvdWJs
ZS4KKyAgICAgICAgVGh1cywgdGhlIGZvbGxvd2luZyBub2RlcyBqdXN0IHNlZSB0aGUgcmVzdWx0
IG9mIEdldEJ5VmFsKEFycmF5OjpEb3VibGUpIGFzIGRvdWJsZSB2YWx1ZSwKKyAgICAgICAgYW5k
IHNlbGVjdCBzdWJvcHRpbWFsIGVkZ2UgZmlsdGVycyBpbiBmaXh1cCBwaGFzZS4gRm9yIGV4YW1w
bGUsIGlmIHRoZSByZXN1bHQgb2YgR2V0QnlWYWwgaXMKKyAgICAgICAgU3BlY0FueUludEFzRG91
YmxlLCB3ZSBjYW4gc2VlIHRoZSBub2RlIGxpa2UgQXJpdGhBZGQoU3BlY0FueUludEFzRG91Ymxl
LCBJbnQ1MikgYW5kIHdlIHNob3VsZAorICAgICAgICBoYXZlIGEgY2hhbmNlIHRvIG1ha2UgaXQg
QXJpdGhBZGQoQ2hlY2s6SW50NTIsIEludDUyKSBpbnN0ZWFkIG9mIEFyaXRoQWRkKERvdWJsZSwg
RG91YmxlKS4KKworICAgICAgICBUaGlzIHBhdGNoIHByb3BhZ2F0ZXMgU3BlY0FueUludEFzRG91
YmxlIGluIEdldEJ5VmFsKEFycmF5OjpEb3VibGUpIHByb3Blcmx5LiBBbmQgVmFsdWVBZGQsCisg
ICAgICAgIEFyaXRoQWRkIGFuZCBBcml0aFN1YiBzZWxlY3QgQW55SW50IGVkZ2UgZmlsdGVycyBm
b3IgU3BlY0FueUludEFzRG91YmxlIHZhbHVlcy4gSXQgZmluYWxseQorICAgICAgICBwcm9kdWNl
cyBhIEludDUyIHNwZWNpYWxpemVkIERGRyBub2RlLiBBbmQgc3Vic2VxdWVudCBub2RlcyB1c2lu
ZyB0aGUgcHJvZHVjZWQgb25lIGFsc28KKyAgICAgICAgYmVjb21lIEludDUyIHNwZWNpYWxpemVk
LgorCisgICAgICAgIE9uZSBjb25zaWRlcmFibGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBoZWFwIHBy
ZWRpY3Rpb24gbWlzc2VzIHRoZSBub24gYW55IGludCBkb3VibGVzLiBJbiB0aGF0IGNhc2UsCisg
ICAgICAgIGlmIEludDUyIGVkZ2UgZmlsdGVyIGlzIHVzZWQsIEJhZFR5cGUgZXhpdCB3aWxsIG9j
Y3VyLiBJdCB1cGRhdGVzIHRoZSBwcmVkaWN0aW9uIG9mIHRoZSB2YWx1ZSBwcm9maWxlCisgICAg
ICAgIG9mIEdldEJ5VmFsLiBTbywgaW4gdGhlIG5leHQgdGltZSwgR2V0QnlWYWwoQXJyYXk6OkRv
dWJsZSkgcHJvZHVjZXMgbW9yZSBjb25zZXJ2YXRpdmUgcHJlZGljdGlvbnMKKyAgICAgICAgYW5k
IGF2b2lkcyBleGl0LWFuZC1yZWNvbXBpbGUgbG9vcCBjb3JyZWN0bHkuCisKKyAgICAgICAgVGhp
cyBjaGFuZ2UgaXMgdmVyeSBzZW5zaXRpdmUgdG8gdGhlIGNvcnJlY3QgQUkgYW5kIGFwcHJvcHJp
YXRlIHByZWRpY3Rpb25zLiBUaHVzLCB0aGlzIHBhdGNoIGZpbmRzCisgICAgICAgIGFuZCBmaXhl
cyBzb21lIHJlbGF0ZWQgaXNzdWVzLiBPbmUgaXMgaW5jb3JyZWN0IHByZWRpY3Rpb24gb2YgVG9U
aGlzIGFuZCBhbm90aGVyIGlzIGluY29ycmVjdAorICAgICAgICBBSSBsb2dpYyBmb3IgSW50NTJS
ZXAuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZHJhbWF0aWNhbGx5IGltcHJvdmVzIGtyYWtlbiBi
ZW5jaG1hcmtzJyBjcnlwdG8tcGJrZGYyIGFuZCBjcnlwdG8tc2hhMjU2LWl0ZXJhdGl2ZQorICAg
ICAgICBieSA0Mi4wJSBhbmQgMzAuNyUsIHJlc3BlY3RpdmVseS4KKworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSAgICAgICAgICAg
ICAgICAgIHBhdGNoZWQKKyAgICAgICAgS3Jha2VuOgorICAgICAgICBhaS1hc3RhciAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNTguODUxKy00LjEzMiAgICAgID8gICAgIDE1OS40
MzMrLTUuMTc2ICAgICAgICAgPworICAgICAgICBhdWRpby1iZWF0LWRldGVjdGlvbiAgICAgICAg
ICAgICAgICAgICAgICAgNTMuMTkzKy0xLjYyMSAgICAgID8gICAgICA1My4zOTErLTIuMDcyICAg
ICAgICAgPworICAgICAgICBhdWRpby1kZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMDMuNTg5Ky0yLjI3NyAgICAgID8gICAgIDEwNC45MDIrLTEuOTI0ICAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMjd4IHNsb3dlcgorICAgICAgICBhdWRpby1mZnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNDAuNDkxKy0xLjEwMiAgICAgICAgICAgICAzOS44NTQrLTAuNzU1ICAg
ICAgICAgICBtaWdodCBiZSAxLjAxNjB4IGZhc3RlcgorICAgICAgICBhdWRpby1vc2NpbGxhdG9y
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjguNTA0Ky0xLjcyMSAgICAgID8gICAgICA2OC45
NTcrLTEuNzI1ICAgICAgICAgPworICAgICAgICBpbWFnaW5nLWRhcmtyb29tICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMTguMzY3Ky0yLjE3MSAgICAgID8gICAgIDExOS41ODErLTIuMzEwICAg
ICAgICAgPyBtaWdodCBiZSAxLjAxMDN4IHNsb3dlcgorICAgICAgICBpbWFnaW5nLWRlc2F0dXJh
dGUgICAgICAgICAgICAgICAgICAgICAgICAgNzEuNDQzKy0xLjQ2MSAgICAgID8gICAgICA3Mi4z
OTgrLTEuOTE4ICAgICAgICAgPyBtaWdodCBiZSAxLjAxMzR4IHNsb3dlcgorICAgICAgICBpbWFn
aW5nLWdhdXNzaWFuLWJsdXIgICAgICAgICAgICAgICAgICAgICAxMTAuNjQ4Ky00LjAzNSAgICAg
ICAgICAgIDEwOS4xODQrLTMuMzczICAgICAgICAgICBtaWdodCBiZSAxLjAxMzR4IGZhc3Rlcgor
ICAgICAgICBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAgICAgICAgICAgICAgICAgNjAuMzYz
Ky0xLjYyOCAgICAgID8gICAgICA2MS45MzYrLTEuNTg1ICAgICAgICAgPyBtaWdodCBiZSAxLjAy
NjF4IHNsb3dlcgorICAgICAgICBqc29uLXN0cmluZ2lmeS10aW5kZXJib3ggICAgICAgICAgICAg
ICAgICAgMzcuOTAzKy0wLjg2OSAgICAgID8gICAgICAzOS41NTkrLTEuNjA3ICAgICAgICAgPyBt
aWdodCBiZSAxLjA0Mzd4IHNsb3dlcgorICAgICAgICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAg
ICAgICAgICAgICAgICAgICAgNTYuMzEzKy0xLjUxMiAgICAgID8gICAgICA1Ni42NzUrLTEuNzE1
ICAgICAgICAgPworICAgICAgICBzdGFuZm9yZC1jcnlwdG8tY2NtICAgICAgICAgICAgICAgICAg
ICAgICAgNTEuNTY0Ky0xLjkwMCAgICAgID8gICAgICA1My40NTYrLTIuNTQ4ICAgICAgICAgPyBt
aWdodCBiZSAxLjAzNjd4IHNsb3dlcgorICAgICAgICBzdGFuZm9yZC1jcnlwdG8tcGJrZGYyICAg
ICAgICAgICAgICAgICAgICAxMjkuNTQ2Ky0yLjczOCAgICAgIF4gICAgICA5MS4yMTQrLTIuMDI3
ICAgICAgICAgXiBkZWZpbml0ZWx5IDEuNDIwMnggZmFzdGVyCisgICAgICAgIHN0YW5mb3JkLWNy
eXB0by1zaGEyNTYtaXRlcmF0aXZlICAgICAgICAgICA0My41MTUrLTAuNzMwICAgICAgXiAgICAg
IDMzLjI5MistMC42NTMgICAgICAgICBeIGRlZmluaXRlbHkgMS4zMDcxeCBmYXN0ZXIKKworICAg
ICAgICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzguODc4Ky0w
LjUyOCAgICAgIF4gICAgICA3NS45ODgrLTAuNjIxICAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDM4
MHggZmFzdGVyCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAg
ICAoSlNDOjpERkc6OkdyYXBoOjphZGRTaG91bGRTcGVjdWxhdGVBbnlJbnQpOgorICAgICAgICAq
IGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVBcml0aE5lZ2F0ZSk6CisKKzIwMTctMDMtMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gVXNlIGpzTm9udHJpdmlhbFN0cmlu
ZyBmb3IgTnVtYmVyIHRvU3RyaW5nIG9wZXJhdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTk2NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXgg
YjU0OWVjYTZkOTg1Y2UwN2EyZGIxODBhY2E4NmEwMGE3OGVlMzVmNC4uY2JhMGQ2Y2IwOGZmY2Nh
N2E0MjY1MmIxZDdjMjZkNzY2ZWE5MmVmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDc1LDcg
KzQ3NSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICAKLSAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNJbnQz
Mk9ubHkpOworICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0FueUludCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmgKaW5kZXggM2IzMjkyMDg3NDI4YzE3NGFiNTM5NjFiMTY3YjEyOGQxMzFlMjY5NS4uNDg3ZGFk
ZTk3NzA2Y2I2OGNiNWI3MmUwNWFhYTBhOGI1MTE1MzU4OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHR3JhcGguaApAQCAtMjkzLDggKzI5MywxMyBAQCBjbGFzcyBHcmFwaCA6IHB1YmxpYyB2
aXJ0dWFsIFNjYW5uYWJsZSB7CiAgICAgICAgIE5vZGUqIGxlZnQgPSBhZGQtPmNoaWxkMSgpLm5v
ZGUoKTsKICAgICAgICAgTm9kZSogcmlnaHQgPSBhZGQtPmNoaWxkMigpLm5vZGUoKTsKIAotICAg
ICAgICBib29sIHNwZWN1bGF0aW9uID0gTm9kZTo6c2hvdWxkU3BlY3VsYXRlQW55SW50KGxlZnQs
IHJpZ2h0KTsKLSAgICAgICAgcmV0dXJuIHNwZWN1bGF0aW9uICYmICFoYXNFeGl0U2l0ZShhZGQs
IEludDUyT3ZlcmZsb3cpOworICAgICAgICBhdXRvIGlzQW55SW50U3BlY3VsYXRpb25Gb3JBZGQg
PSBbXShTcGVjdWxhdGVkVHlwZSB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuICEhdmFsdWUg
JiYgKHZhbHVlICYgKFNwZWNBbnlJbnQgfCBTcGVjQW55SW50QXNEb3VibGUpKSA9PSB2YWx1ZTsK
KyAgICAgICAgfTsKKworICAgICAgICByZXR1cm4gaXNBbnlJbnRTcGVjdWxhdGlvbkZvckFkZChs
ZWZ0LT5wcmVkaWN0aW9uKCkpCisgICAgICAgICAgICAmJiBpc0FueUludFNwZWN1bGF0aW9uRm9y
QWRkKHJpZ2h0LT5wcmVkaWN0aW9uKCkpCisgICAgICAgICAgICAmJiAhaGFzRXhpdFNpdGUoYWRk
LCBJbnQ1Mk92ZXJmbG93KTsKICAgICB9CiAgICAgCiAgICAgYm9vbCBiaW5hcnlBcml0aFNob3Vs
ZFNwZWN1bGF0ZUludDMyKE5vZGUqIG5vZGUsIFByZWRpY3Rpb25QYXNzIHBhc3MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwCmluZGV4IGJhMzM0YzY5NWQ0NTIzYWE3MDg4MGI2MjgyNzZlMDJlNDI4Nzdm
ZTkuLjdjOWJjNDUzMjVlOWUzMWMwNjc0YzA1N2M2MjdhNmYwMWE1NTdjOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwCkBAIC0zNTQsOCArMzU0LDEwIEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJs
ZToKICAgICAgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKICAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24obm9kZS0+Z2V0SGVhcFBy
ZWRpY3Rpb24oKSB8IFNwZWNEb3VibGVSZWFsKTsKLSAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSAmIFNwZWNOb25J
bnRBc0RvdWJsZSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rp
b24oU3BlY0RvdWJsZVJlYWwpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0FueUludEFzRG91YmxlKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJBcnJh
eToKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkZsb2F0NjRBcnJheToKQEAgLTQwMyw3ICs0MDUs
NyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAg
ICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5z
aG91bGRTcGVjdWxhdGVOdW1iZXIoKSkgewotICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9
IG1lcmdlUHJlZGljdGlvbihTcGVjQW55SW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdl
ZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0J5dGVjb2RlTnVtYmVyKTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggNmI0ZDUwOGY1ZTJhZTY2Njg1MDc3MDZh
MDAwMzQ0OWFmODFjM2UwMy4uYzJmMWI3YTAwODNiNTA4YTY4MTgwMWNiY2RiNzg4ZTRjNWQxZGIw
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApA
QCAtMjU2NCw3ICsyNTY0LDggQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIExW
YWx1ZSB2YWx1ZSA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgQ2hl
Y2tWYWx1ZSogcmVzdWx0ID0gbV9vdXQuc3BlY3VsYXRlU3ViKG1fb3V0LmludDY0WmVybywgdmFs
dWUpOwogICAgICAgICAgICAgYmxlc3NTcGVjdWxhdGlvbihyZXN1bHQsIEludDUyT3ZlcmZsb3cs
IG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vcmlnaW4pOwotICAgICAgICAgICAgc3BlY3VsYXRlKE5l
Z2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5pc1plcm82NChyZXN1bHQpKTsKKyAgICAg
ICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkK
KyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIDAsIG1f
b3V0LmlzWmVybzY0KHJlc3VsdCkpOwogICAgICAgICAgICAgc2V0SW50NTIocmVzdWx0KTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRlMWVlYmIzYmQ2NzdjYjMyODliMzM5NzBhNDM0
NWY4NGIwYmEzODIuLjNmYjRmZDA1Y2NiZDFhZmFmYmYzMmY2YmZiZDY1ZTdkN2UxZjY0YTcgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMTkgQEAKIDIwMTctMDMtMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CiAKKyAgICAgICAgW0pTQ11bREZHXSBQcm9wYWdhdGUgQW55SW50QXNEb3VibGUgaW5m
b3JtYXRpb24gY2FyZWZ1bGx5IHRvIHV0aWxpemUgaXQgaW4gZml4dXAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTkxNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2FueS1pbnQtYXMtZG91
YmxlLWFkZC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiBzdHJlc3MvdG8tdGhpcy1udW1iZXJzLmpzOiBBZGRlZC4KKyAgICAgICAgKHNo
b3VsZEJlKToKKyAgICAgICAgKE51bWJlci5wcm90b3R5cGUudG9UaGlzKToKKworMjAxNy0wMy0y
MiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAgICBbSlND
XSBVc2UganNOb250cml2aWFsU3RyaW5nIGZvciBOdW1iZXIgdG9TdHJpbmcgb3BlcmF0aW9ucwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5OTY1CiAK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FueS1pbnQtYXMtZG91YmxlLWFkZC5qcyBiL0pT
VGVzdHMvc3RyZXNzL2FueS1pbnQtYXMtZG91YmxlLWFkZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGU5ZGE3
MDc5YjkyYjIzYmJkZjYxMzlkNDU5ZGY4NTcxOTI4YmJhCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvYW55LWludC1hcy1kb3VibGUtYWRkLmpzCkBAIC0wLDAgKzEsNDMgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFs
KTsKK30KKwordmFyIGFycmF5ID0gW107CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kp
CisgICAgYXJyYXkucHVzaCgxMDI0ICogMTAyNCAqIDEwMjQgKiAxMDI0ICsgaSk7Citmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgIGFycmF5LnB1c2goLSgxMDI0ICogMTAyNCAqIDEw
MjQgKiAxMDI0ICsgaSkpOworCithcnJheS5wdXNoKDIyNTE3OTk4MTM2ODUyNDgpOworYXJyYXku
cHVzaCgwLjUpOworCitmdW5jdGlvbiB0ZXN0KGFycmF5LCBpbmRleCwgdmFsdWUpCit7CisgICAg
cmV0dXJuIGFycmF5W2luZGV4XSArIGZpYXRJbnQ1Mih2YWx1ZSk7Cit9Citub0lubGluZSh0ZXN0
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIGZvciAodmFyIGluZGV4
ID0gMDsgaW5kZXggPCAxMDA7ICsraW5kZXgpCisgICAgICAgIHNob3VsZEJlKHRlc3QoYXJyYXks
IGluZGV4LCAyMCksIDEwMjQgKiAxMDI0ICogMTAyNCAqIDEwMjQgKyBpbmRleCArIDIwKTsKKyAg
ICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwOyArK2luZGV4KQorICAgICAgICBzaG91
bGRCZSh0ZXN0KGFycmF5LCBpbmRleCArIDEwMCwgMjApLCAtKDEwMjQgKiAxMDI0ICogMTAyNCAq
IDEwMjQgKyBpbmRleCkgKyAyMCk7Cit9CisKKy8vIEludDUyT3ZlcmZsb3cuCitzaG91bGRCZSh0
ZXN0KGFycmF5LCAyMDAsIDIwMCksIDIyNTE3OTk4MTM2ODU0NDgpOworCisvLyBOb3QgQW55SW50
QXNEb3VibGUsIEludDUyT3ZlcmZsb3cuCitzaG91bGRCZSh0ZXN0KGFycmF5LCAyMDEsIDIwMCks
IDIwMC41KTsKKworLy8gUmVjb21waWxlIHRoZSBjb2RlIGFzIEFyaXRoQWRkKERvdWJsZSwgRG91
YmxlKS4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCisgICAgc2hvdWxkQmUodGVzdChh
cnJheSwgMjAxLCAyMDApLCAyMDAuNSk7CisKK3Nob3VsZEJlKHRlc3QoYXJyYXksIDIwMCwgMjAw
KSwgMjI1MTc5OTgxMzY4NTQ0OCk7CitzaG91bGRCZSh0ZXN0KGFycmF5LCAyMDEsIDIwMCksIDIw
MC41KTsKKworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90by10aGlzLW51bWJlcnMuanMg
Yi9KU1Rlc3RzL3N0cmVzcy90by10aGlzLW51bWJlcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdiMTQ4ZWMw
ZDhhMjc1YjQ4ODI1YzU0MDZkNzZkN2YzYjgxM2Y3ZAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVz
dHMvc3RyZXNzL3RvLXRoaXMtbnVtYmVycy5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQoreworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9Citu
b0lubGluZShzaG91bGRCZSk7CisKK051bWJlci5wcm90b3R5cGUudG9UaGlzID0gZnVuY3Rpb24g
dG9UaGlzKCkKK3sKKyAgICAndXNlIHN0cmljdCc7CisgICAgcmV0dXJuIHRoaXM7Cit9Oworbm9J
bmxpbmUoTnVtYmVyLnByb3RvdHlwZS50b1RoaXMpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFl
NDsgKytpKSB7CisgICAgc2hvdWxkQmUoKDAuMSkudG9UaGlzKCksIDAuMSk7CisgICAgc2hvdWxk
QmUoKDQyKS50b1RoaXMoKSwgNDIpOworICAgIHNob3VsZEJlKCgxMDI0ICogMTAyNCAqIDEwMjQg
KiAxMDI0KS50b1RoaXMoKSwgKDEwMjQgKiAxMDI0ICogMTAyNCAqIDEwMjQpKTsKK30K
</data>
<flag name="review"
          id="326596"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>