<?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>136888</bug_id>
          
          <creation_ts>2014-09-17 08:04:12 -0700</creation_ts>
          <short_desc>IndexedDB onupgradeneeded event has incorrect value for oldVersion</short_desc>
          <delta_ts>2019-07-04 00:35:38 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nolan Lawson">nolan</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>ANS0506</cc>
    
    <cc>beidson</cc>
    
    <cc>eoconnor</cc>
    
    <cc>jchris</cc>
    
    <cc>jeffrey+webkit</cc>
    
    <cc>mjs</cc>
    
    <cc>robertknight</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zaid</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035712</commentid>
    <comment_count>0</comment_count>
    <who name="Nolan Lawson">nolan</who>
    <bug_when>2014-09-17 08:04:12 -0700</bug_when>
    <thetext>The Safari/iOS 8 implementation of IndexedDB does not pass the first unit test in the PouchDB test suite. The database fails to open.

The test fails with the error message &quot;An operation failed because the requested database object could not be found.&quot; This appears to be because the objectStore wasn&apos;t created in the onupgradeneeded method.

There is a GitHub issue full of testimonials and details here: https://github.com/pouchdb/pouchdb/issues/2533

You can run the relevant subset of the test suite online here: http://pouchtest.com/tests/test.html?grep=test.basics.js-local

Notice that that test suite passes perfectly in IE10, Chrome, and Firefox, but not Safari 8 (12A365). (It passes in Safari &lt;=7 only because we fall back to Web SQL.)

Let me know if you need any more help. We are usually very receptive in the #pouchdb Freenode IRC channel. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035716</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-09-17 08:55:16 -0700</bug_when>
    <thetext>It would be helpful if you could attach a reduced, standalone test case to this bugzilla.

Makes it much easier to explore a bug compared to &quot;Run this large, complex test suite&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035726</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-09-17 09:40:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/18366739&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035730</commentid>
    <comment_count>3</comment_count>
    <who name="Nolan Lawson">nolan</who>
    <bug_when>2014-09-17 10:46:44 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; It would be helpful if you could attach a reduced, standalone test case to this bugzilla.
&gt; 
&gt; Makes it much easier to explore a bug compared to &quot;Run this large, complex test suite&quot;

Sorry about that. Tried to write an isolated test, but haven&apos;t succeeded yet. I figured it was better to just notify y&apos;all earlier rather than later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035732</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-09-17 10:49:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #1)
&gt; &gt; It would be helpful if you could attach a reduced, standalone test case to this bugzilla.
&gt; &gt; 
&gt; &gt; Makes it much easier to explore a bug compared to &quot;Run this large, complex test suite&quot;
&gt; 
&gt; Sorry about that. Tried to write an isolated test, but haven&apos;t succeeded yet. I figured it was better to just notify y&apos;all earlier rather than later.

And don&apos;t get me wrong, that is appreciated :)

Just more likely to get eyes on it sooner if there was a reduction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035917</commentid>
    <comment_count>5</comment_count>
    <who name="Zaid">zaid</who>
    <bug_when>2014-09-18 07:42:39 -0700</bug_when>
    <thetext>There are two issues with the Safari implementation:

1. The initial version of the database reported in onupgradeneeded is HUGE and positive instead of zero/undefined. This creates issues when trying to determine which code path to run for the migration. I currently have a workaround of assuming current_version = 0 when current_version &gt; 1000

2. Safari seems to run into problems when the database name contains &quot;-&quot; in it. Workaround is easy here, just don&apos;t use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035926</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-09-18 08:55:33 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; There are two issues with the Safari implementation:
&gt; 
&gt; 1. The initial version of the database reported in onupgradeneeded is HUGE and positive instead of zero/undefined. This creates issues when trying to determine which code path to run for the migration. I currently have a workaround of assuming current_version = 0 when current_version &gt; 1000
&gt; 
&gt; 2. Safari seems to run into problems when the database name contains &quot;-&quot; in it. Workaround is easy here, just don&apos;t use it.

Those are two separate bugs from this one.  Could you please file each as a separate bug?

We know about the initial version problem, but I don&apos;t think we have a bugzilla for it yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036320</commentid>
    <comment_count>7</comment_count>
    <who name="Nolan Lawson">nolan</who>
    <bug_when>2014-09-20 16:23:07 -0700</bug_when>
    <thetext>I&apos;m sorry, do you want me to file the separate issue for the issue of &quot;-&quot; being in the database name? (Also FWIW I cannot seem to reproduce that, and in PouchDB our db names don&apos;t have &quot;-&quot; in them...)

In any case, for this error, we managed to write a small isolated test that demonstrates the issue. Just go here, and if you see &quot;everything is A-OK&quot;, then the test passed: http://bl.ocks.org/nolanlawson/raw/c83e9039edf2278047e9/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036321</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-09-20 16:30:38 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I&apos;m sorry, do you want me to file the separate issue for the issue of &quot;-&quot; being in the database name? (Also FWIW I cannot seem to reproduce that, and in PouchDB our db names don&apos;t have &quot;-&quot; in them...)
&gt; 
&gt; In any case, for this error, we managed to write a small isolated test that demonstrates the issue. Just go here, and if you see &quot;everything is A-OK&quot;, then the test passed: http://bl.ocks.org/nolanlawson/raw/c83e9039edf2278047e9/

Nolan, I wasn&apos;t asking anything of you.

Zaid was the one who jumped into this bug and reported two unrelated issues.  I was suggesting he file bugs for the unrelated issues he sees.

Thanks for the test case!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036322</commentid>
    <comment_count>9</comment_count>
    <who name="Nolan Lawson">nolan</who>
    <bug_when>2014-09-20 16:32:31 -0700</bug_when>
    <thetext>Okay, just checking!

Also FYI, this seems to be a duplicate of this bug: https://bugs.webkit.org/show_bug.cgi?id=136937</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039720</commentid>
    <comment_count>10</comment_count>
    <who name="Robert Knight">robertknight</who>
    <bug_when>2014-10-06 06:18:58 -0700</bug_when>
    <thetext>&gt;  The initial version of the database reported in onupgradeneeded is HUGE and positive instead of zero/undefined.

Specifically, the initial value I see on Safari 7.1 is 9223372036854776000 (2^63 - 192)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039721</commentid>
    <comment_count>11</comment_count>
    <who name="Robert Knight">robertknight</who>
    <bug_when>2014-10-06 06:19:49 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt;  The initial version of the database reported in onupgradeneeded is HUGE and positive instead of zero/undefined.
&gt; 
&gt; Specifically, the initial value I see on Safari 7.1 is 9223372036854776000 (2^63 - 192)

Gah, I meant (2^63 + 192)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101356</commentid>
    <comment_count>12</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2015-06-11 12:34:33 -0700</bug_when>
    <thetext>New Radar ID is &lt;rdar://problem/18309792&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101418</commentid>
    <comment_count>13</comment_count>
      <attachid>254759</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-11 14:30:08 -0700</bug_when>
    <thetext>Created attachment 254759
Reduced test case from Nolan

This is basically Nolan&apos;s blocks.org test case, but just reduced, code-styled, and in one file.

It fails not because of a problem with onupgradeneeded, but because it opens a transaction to multiple object stores.

That&apos;s already covered in https://bugs.webkit.org/show_bug.cgi?id=136937

So we&apos;ll clarify this bug is about one issue, which is that when onupgradeneeded does fire on a new database that the oldversion property is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101420</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-11 14:31:15 -0700</bug_when>
    <thetext>Retitling:
IndexedDB onupgradeneeded event has incorrect value for oldVersion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101427</commentid>
    <comment_count>15</comment_count>
      <attachid>254761</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-11 15:13:41 -0700</bug_when>
    <thetext>Created attachment 254761
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101456</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-11 17:18:31 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/185480</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101583</commentid>
    <comment_count>17</comment_count>
    <who name="Nolan Lawson">nolan</who>
    <bug_when>2015-06-12 07:03:27 -0700</bug_when>
    <thetext>Sorry for causing confusion, and thanks for the fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101868</commentid>
    <comment_count>18</comment_count>
    <who name="Nolan Lawson">nolan</who>
    <bug_when>2015-06-14 14:21:09 -0700</bug_when>
    <thetext>I created a new bl.ocks based on the Webkit patch. This one actually reproduces 136888, as opposed to the other bug: http://bl.ocks.org/nolanlawson/5e397897633f9e16eb42. (I know it&apos;s already fixed, but I like having a link I can just click and open to test.)

And thanks for your tireless efforts with these IDB bugs, Brady! Any chance they&apos;ll make it into the iOS 9 release? ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101940</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-15 09:29:05 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I created a new bl.ocks based on the Webkit patch. This one actually
&gt; reproduces 136888, as opposed to the other bug:
&gt; http://bl.ocks.org/nolanlawson/5e397897633f9e16eb42. (I know it&apos;s already
&gt; fixed, but I like having a link I can just click and open to test.)
&gt; 
&gt; And thanks for your tireless efforts with these IDB bugs, Brady! Any chance
&gt; they&apos;ll make it into the iOS 9 release? ;)

This is the WebKit project, not responsible for product releases like iOS or OS X, etc etc.

Apple generally does not comment on future product releases, etc etc.

I believe iOS 9 has been released as a first developer beta, and Apple has announced future updates to that beta as the year progresses. These facts might suggest that iOS 9 is not complete yet.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>254759</attachid>
            <date>2015-06-11 14:30:08 -0700</date>
            <delta_ts>2015-06-11 14:30:08 -0700</delta_ts>
            <desc>Reduced test case from Nolan</desc>
            <filename>idb1.html</filename>
            <type>text/html</type>
            <size>957</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">PGRpdiBpZD0iZGlzcGxheSI+PC9kaXY+PGJyPgo8c2NyaXB0PgoKZnVuY3Rpb24gbG9nKHN0cikg
ewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rpc3BsYXknKS5pbm5lckhUTUwgKz0gJ1xu
JyArIHN0cjsKfQoKdmFyIHJlcSA9IGluZGV4ZWREQi5vcGVuKCd0ZXN0JywgMSk7CgpyZXEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGUpIHsKICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvbmUnLCB7CiAgICAgICAga2V5UGF0aDogJ2tl
eScKICAgIH0pOwogICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3R3bycsIHsKICAgICAgICBrZXlQ
YXRoOiAna2V5JwogICAgfSk7Cn07CgpyZXEub25lcnJvciA9IGxvZzsKCnJlcS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbiAoZSkgewogICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OwogICAgdmFyIHR4
OwogICAgdHJ5IHsKICAgICAgICB0eCA9IGRiLnRyYW5zYWN0aW9uKFsnb25lJywgJ3R3byddLCAn
cmVhZHdyaXRlJyk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBsb2coZXJyKTsKICAgICAg
ICByZXR1cm47CiAgICB9CgogICAgdHgub25jb21wbGV0ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAg
ICAgbG9nKCd0eC5vbmNvbXBsZXRlIGNhbGxlZCcpOwogICAgICAgIGRiLmNsb3NlKCk7CiAgICAg
ICAgbG9nKCdkYiBjbG9zZWQnKTsKICAgICAgICBsb2coJ2V2ZXJ5dGhpbmcgaXMgQS1PSyEnKTsK
ICAgIH07CgogICAgdmFyIHJlcSA9IHR4Lm9iamVjdFN0b3JlKCd0d28nKS5wdXQoewogICAgICAg
ICdrZXknOiBuZXcgRGF0ZSgpLnZhbHVlT2YoKQogICAgfSk7CiAgICAKICAgIHJlcS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIGxvZygncmVxLm9uc3VjY2VzcyBjYWxsZWQnKTsK
ICAgIH07CgogICAgcmVxLm9uZXJyb3IgPSBsb2c7Cn07Cgo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254761</attachid>
            <date>2015-06-11 15:13:41 -0700</date>
            <delta_ts>2015-06-11 17:14:28 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16167</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDYxZjNlLi4yYTZmOGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDYt
MTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWRE
QiBvbnVwZ3JhZGVuZWVkZWQgZXZlbnQgaGFzIGluY29ycmVjdCB2YWx1ZSBmb3Igb2xkVmVyc2lv
bi4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4MzA5NzkyPiBhbmQgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFu
Z2UtZXZlbnQtYmFzaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1ldmVudC1iYXNpYy5odG1sOiBBZGRlZC4KKwogMjAxNS0w
Ni0xMCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIxODQ4OTUpOiBWZXJ0aWNhbCBib3JkZXIgZWxlbWVudHMgKFstd2Vi
a2l0XS1ib3JkZXItaW1hZ2Ugc2V0IHRvICdyZXBlYXQnKSB0aGF0IHVzZWQgdG8gcmVuZGVyIHBl
cmZlY3RseSBhcmUgbm93IHJlbmRlcmluZyBpbmNvcnJlY3RseS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LWJhc2ljLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2
ZW50LWJhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5lMTcwN2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvdmVyc2lvbi1jaGFuZ2UtZXZlbnQtYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBA
QAorMCB2ZXJzaW9uOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK05lZ2F0aXZlIHZlcnNpb246IFR5
cGVFcnJvcjogVHlwZSBlcnJvcgorU3RyaW5nIHZlcnNpb246IFR5cGVFcnJvcjogVHlwZSBlcnJv
cgorRmlyc3QgcmVxdWVzdDogMCAxCitTZWNvbmQgcmVxdWVzdDogMCAxCitUaGlyZCByZXF1ZXN0
OiAwIDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lv
bi1jaGFuZ2UtZXZlbnQtYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3ZlcnNpb24tY2hhbmdlLWV2ZW50LWJhc2ljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMGE3YTgxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LWJhc2ljLmh0bWwKQEAgLTAsMCArMSw1
MSBAQAorPGJvZHk+Cis8ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgorPHNjcmlwdD4KKworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+
IjsKK30KKwordmFyIHJlcXVlc3QxID0gaW5kZXhlZERCLm9wZW4oInZjZWIxIik7CityZXF1ZXN0
MS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgbG9nKCJGaXJzdCByZXF1ZXN0
OiAiICsgZS5vbGRWZXJzaW9uICsgIiAiICsgZS5uZXdWZXJzaW9uKTsKK30KKwordmFyIHJlcXVl
c3QyID0gaW5kZXhlZERCLm9wZW4oInZjZWIyIiwgMSk7CityZXF1ZXN0Mi5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgbG9nKCJTZWNvbmQgcmVxdWVzdDogIiArIGUub2xkVmVy
c2lvbiArICIgIiArIGUubmV3VmVyc2lvbik7Cit9CisKK3ZhciByZXF1ZXN0MyA9IGluZGV4ZWRE
Qi5vcGVuKCJ2Y2ViMyIsIDIpOworcmVxdWVzdDMub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgIGxvZygiVGhpcmQgcmVxdWVzdDogIiArIGUub2xkVmVyc2lvbiArICIgIiArIGUu
bmV3VmVyc2lvbik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKK30KKwordHJ5IHsKKyAgICB2YXIgcmVxdWVzdCA9IGluZGV4ZWRE
Qi5vcGVuKCJ2Y2ViNCIsIDApOworfSBjYXRjaCAoZSkgeworICAgIGxvZygiMCB2ZXJzaW9uOiAi
ICsgZSk7Cit9CisKK3RyeSB7CisgICAgdmFyIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbigidmNl
YjUiLCAtMSk7Cit9IGNhdGNoIChlKSB7CisgICAgbG9nKCJOZWdhdGl2ZSB2ZXJzaW9uOiAiICsg
ZSk7Cit9CisKK3RyeSB7CisgICAgdmFyIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbigidmNlYjYi
LCAic3RyaW5nIik7Cit9IGNhdGNoIChlKSB7CisgICAgbG9nKCJTdHJpbmcgdmVyc2lvbjogIiAr
IGUpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4Yjgz
NWQzLi41MjE2MTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTUtMDYtMTEgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWREQiBvbnVw
Z3JhZGVuZWVkZWQgZXZlbnQgaGFzIGluY29ycmVjdCB2YWx1ZSBmb3Igb2xkVmVyc2lvbi4KKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4MzA5NzkyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNjg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdl
LWV2ZW50LWJhc2ljLmh0bWwKKworICAgICAgICAtIFJlbW92ZSB0aGUgVmVyc2lvbk51bGxuZXNz
IHBhcmFtZXRlciBmcm9tIGFsbW9zdCBldmVyeXdoZXJlLgorICAgICAgICAtIEFkanVzdCBhIGN1
cnJlbnQgdmVyc2lvbiBvZiAiTm9JbnRWZXJzaW9uIiB0byAiMCIgYmVmb3JlIG1ha2luZyB0aGUg
Y2FsbGJhY2suCisgICAgICAgIC0gUmVtb3ZlIHRoZSBudWxsYWJpbGl0eSBvZiB0aGUgbmV3VmVy
c2lvbiBwYXJhbWV0ZXIuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6b25WZXJzaW9uQ2hhbmdlKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oOgorICAgICAgICAKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kOjpkZWxldGVEYXRh
YmFzZSk6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Q2FsbGJhY2tzLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bDo6b25WZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1
ZXN0OjpvbkJsb2NrZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6b25V
cGdyYWRlTmVlZGVkKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJE
YXRhYmFzZUJhY2tlbmQ6OlZlcnNpb25DaGFuZ2VPcGVyYXRpb246OnBlcmZvcm0pOgorICAgICAg
ICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCVmVyc2lvbkNoYW5nZUV2ZW50OjpJREJWZXJzaW9uQ2hh
bmdlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VF
dmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCVmVyc2lvbkNoYW5nZUV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCVmVyc2lvbkNoYW5nZUV2ZW50OjpuZXdWZXJzaW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsOgor
CiAyMDE1LTA2LTExICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTg1NDUzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDg0Njk1MTkuLjRl
YjY4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5jcHAKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpjbG9zZUNvbm5l
Y3Rpb24oKQogICAgIG1faXNDbG9zZWQgPSB0cnVlOwogfQogCi12b2lkIElEQkRhdGFiYXNlOjpv
blZlcnNpb25DaGFuZ2UodWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbiwg
SW5kZXhlZERCOjpWZXJzaW9uTnVsbG5lc3MgbmV3VmVyc2lvbk51bGxuZXNzKQordm9pZCBJREJE
YXRhYmFzZTo6b25WZXJzaW9uQ2hhbmdlKHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5l
d1ZlcnNpb24pCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZTo6b25WZXJzaW9u
Q2hhbmdlIik7CiAgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKQEAgLTMzNCw3ICszMzQsOCBAQCB2b2lkIElEQkRhdGFiYXNlOjpvblZlcnNpb25D
aGFuZ2UodWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbiwgSW5kZQogICAg
IGlmIChtX2Nsb3NlUGVuZGluZykKICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5xdWV1ZUV2ZW50
KElEQlZlcnNpb25DaGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24sIG5l
d1ZlcnNpb25OdWxsbmVzcywgZXZlbnROYW1lcygpLnZlcnNpb25jaGFuZ2VFdmVudCkpOworICAg
IEFTU0VSVChuZXdWZXJzaW9uICE9IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbiAm
JiBuZXdWZXJzaW9uICE9IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uKTsK
KyAgICBlbnF1ZXVlRXZlbnQoSURCVmVyc2lvbkNoYW5nZUV2ZW50OjpjcmVhdGUob2xkVmVyc2lv
biwgbmV3VmVyc2lvbiwgZXZlbnROYW1lcygpLnZlcnNpb25jaGFuZ2VFdmVudCkpOwogfQogCiB2
b2lkIElEQkRhdGFiYXNlOjplbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAppbmRleCA0
ODE3OWI0Li40ODk5NzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xvc2Uo
KTsKIAogICAgIC8vIElEQkRhdGFiYXNlQ2FsbGJhY2tzCi0gICAgdmlydHVhbCB2b2lkIG9uVmVy
c2lvbkNoYW5nZSh1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uLCBJbmRl
eGVkREI6OlZlcnNpb25OdWxsbmVzcyBuZXdWZXJzaW9uTnVsbG5lc3MpOworICAgIHZpcnR1YWwg
dm9pZCBvblZlcnNpb25DaGFuZ2UodWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVy
c2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRfdCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmQuY3BwCmluZGV4IGMyMWJjMzAuLmZjMjMxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcApAQCAt
NTAwLDcgKzUwMCw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kOjpydW5JbnRWZXJzaW9uQ2hh
bmdlVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+CiAgICAgZm9yIChhdXRvJiBj
YWxsYmFjayA6IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQpIHsKICAgICAgICAgLy8gRnJvbnQgZW5k
IGVuc3VyZXMgdGhlIGV2ZW50IGlzIG5vdCBmaXJlZCBhdCBjb25uZWN0aW9ucyB0aGF0IGhhdmUg
Y2xvc2VQZW5kaW5nIHNldC4KICAgICAgICAgaWYgKGNhbGxiYWNrICE9IGRhdGFiYXNlQ2FsbGJh
Y2tzKQotICAgICAgICAgICAgY2FsbGJhY2stPm9uVmVyc2lvbkNoYW5nZShtX21ldGFkYXRhLnZl
cnNpb24sIHJlcXVlc3RlZFZlcnNpb24sIEluZGV4ZWREQjo6VmVyc2lvbk51bGxuZXNzOjpOdWxs
KTsKKyAgICAgICAgICAgIGNhbGxiYWNrLT5vblZlcnNpb25DaGFuZ2UobV9tZXRhZGF0YS52ZXJz
aW9uLCByZXF1ZXN0ZWRWZXJzaW9uKTsKICAgICB9CiAgICAgLy8gVGhlIHNwZWMgZGljdGF0ZXMg
d2Ugd2FpdCB1bnRpbCBhbGwgdGhlIHZlcnNpb24gY2hhbmdlIGV2ZW50cyBhcmUKICAgICAvLyBk
ZWxpdmVyZWQgYW5kIHRoZW4gY2hlY2sgbV9kYXRhYmFzZUNhbGxiYWNrcy5lbXB0eSgpIGJlZm9y
ZSBwcm9jZWVkaW5nCkBAIC01MzMsNyArNTMzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6
OmRlbGV0ZURhdGFiYXNlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MpCiAg
ICAgaWYgKGlzRGVsZXRlRGF0YWJhc2VCbG9ja2VkKCkpIHsKICAgICAgICAgZm9yIChhdXRvJiBj
YWxsYmFjayA6IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQpIHsKICAgICAgICAgICAgIC8vIEZyb250
IGVuZCBlbnN1cmVzIHRoZSBldmVudCBpcyBub3QgZmlyZWQgYXQgY29ubmVjdGlvbnMgdGhhdCBo
YXZlIGNsb3NlUGVuZGluZyBzZXQuCi0gICAgICAgICAgICBjYWxsYmFjay0+b25WZXJzaW9uQ2hh
bmdlKG1fbWV0YWRhdGEudmVyc2lvbiwgMCwgSW5kZXhlZERCOjpWZXJzaW9uTnVsbG5lc3M6Ok51
bGwpOworICAgICAgICAgICAgY2FsbGJhY2stPm9uVmVyc2lvbkNoYW5nZShtX21ldGFkYXRhLnZl
cnNpb24sIDApOwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBPbmx5IGZpcmUgb25CbG9j
a2VkIGlmIHRoZXJlIGFyZSBvcGVuIGNvbm5lY3Rpb25zIGFmdGVyIHRoZQogICAgICAgICAvLyBW
ZXJzaW9uQ2hhbmdlRXZlbnRzIGFyZSByZWNlaXZlZCwgbm90IGp1c3Qgc2V0IHVwIHRvIGZpcmUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VDYWxsYmFja3MuaAppbmRleCA3NzcwYWJmLi43MGU5MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKQEAg
LTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlQ2FsbGJhY2tz
KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5l
d1ZlcnNpb24sIEluZGV4ZWREQjo6VmVyc2lvbk51bGxuZXNzIG5ld1ZlcnNpb25OdWxsbmVzcykg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UodWludDY0X3Qgb2xkVmVyc2lv
biwgdWludDY0X3QgbmV3VmVyc2lvbikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQo
aW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRfdCB0cmFuc2FjdGlvbklkKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCA2MWYyNmU5Li5kYjQzODU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTUyLDEwICs1MiwxMCBAQCB2b2lkIElEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbDo6b25Gb3JjZWRDbG9zZSgpCiAgICAgICAgIG1fZGF0YWJhc2UtPmZvcmNl
Q2xvc2UoKTsKIH0KIAotdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNo
YW5nZSh1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uLCBJbmRleGVkREI6
OlZlcnNpb25OdWxsbmVzcyBuZXdWZXJzaW9uTnVsbG5lc3MpCit2b2lkIElEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90
IG5ld1ZlcnNpb24pCiB7CiAgICAgaWYgKG1fZGF0YWJhc2UpCi0gICAgICAgIG1fZGF0YWJhc2Ut
Pm9uVmVyc2lvbkNoYW5nZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uLCBuZXdWZXJzaW9uTnVsbG5l
c3MpOworICAgICAgICBtX2RhdGFiYXNlLT5vblZlcnNpb25DaGFuZ2Uob2xkVmVyc2lvbiwgbmV3
VmVyc2lvbik7CiB9CiAKIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpjb25uZWN0KElE
QkRhdGFiYXNlKiBkYXRhYmFzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKaW5kZXggZjdkNWEyMjIu
LjU2YzgwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Myw3ICs0Myw3IEBAIHB1Ymxp
YzoKIAogICAgIC8vIElEQkRhdGFiYXNlQ2FsbGJhY2tzCiAgICAgdmlydHVhbCB2b2lkIG9uRm9y
Y2VkQ2xvc2UoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKHVp
bnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24sIEluZGV4ZWREQjo6VmVyc2lv
bk51bGxuZXNzIG5ld1ZlcnNpb25OdWxsbmVzcykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IG9uVmVyc2lvbkNoYW5nZSh1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9u
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIG9uQ29tcGxldGUoaW50NjRfdCB0cmFuc2FjdGlvbklkKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5j
cHAKaW5kZXggNWY3MDQxYy4uNjM3ODA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAg
dm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvbkJsb2NrZWQodWludDY0X3Qgb2xkVmVyc2lvbikKICAg
ICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAg
ZW5xdWV1ZUV2ZW50KElEQlZlcnNpb25DaGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG1f
dmVyc2lvbiwgbV92ZXJzaW9uTnVsbG5lc3MsIGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQpKTsK
KyAgICBlbnF1ZXVlRXZlbnQoSURCVmVyc2lvbkNoYW5nZUV2ZW50OjpjcmVhdGUob2xkVmVyc2lv
biwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50KSk7CiB9CiAKIHZvaWQgSURC
T3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKHVpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kPiBwcnBEYXRhYmFzZUJhY2tlbmQsIGNvbnN0IElEQkRh
dGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhKQpAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgSURCT3Bl
bkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKHVpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQ
dHI8SURCRGF0YWJhCiAKICAgICBpZiAobV92ZXJzaW9uTnVsbG5lc3MgPT0gSW5kZXhlZERCOjpW
ZXJzaW9uTnVsbG5lc3M6Ok51bGwpCiAgICAgICAgIG1fdmVyc2lvbiA9IDE7Ci0gICAgZW5xdWV1
ZUV2ZW50KElEQlZlcnNpb25DaGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVyc2lv
biwgbV92ZXJzaW9uTnVsbG5lc3MsIGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQpKTsK
KyAgICBlbnF1ZXVlRXZlbnQoSURCVmVyc2lvbkNoYW5nZUV2ZW50OjpjcmVhdGUob2xkVmVyc2lv
biwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50KSk7CiB9CiAKIHZv
aWQgSURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNr
ZW5kPiBwcnBCYWNrZW5kLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
QmFja2VuZE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHAKaW5kZXggNDFjOTIxOC4uZDRmNjg3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHAKQEAgLTIzOCw4ICsy
MzgsMTEgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6OlZlcnNpb25DaGFuZ2VPcGVyYXRpb246
OnBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGMKICAgICBMT0coU3RvcmFnZUFQSSwgIlZl
cnNpb25DaGFuZ2VPcGVyYXRpb24iKTsKIAogICAgIHVpbnQ2NF90IG9sZFZlcnNpb24gPSBtX3Ry
YW5zYWN0aW9uLT5kYXRhYmFzZSgpLm1ldGFkYXRhKCkudmVyc2lvbjsKKyAgICBpZiAob2xkVmVy
c2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pCisgICAgICAgIG9sZFZl
cnNpb24gPSAwOworCiAgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZDo6VmVyc2lvbkNoYW5n
ZU9wZXJhdGlvbj4gb3BlcmF0aW9uKHRoaXMpOwotICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1aW50
NjRfdD4obV92ZXJzaW9uKSA+IG9sZFZlcnNpb24gfHwgb2xkVmVyc2lvbiA9PSBJREJEYXRhYmFz
ZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1aW50NjRf
dD4obV92ZXJzaW9uKSA+IG9sZFZlcnNpb24pOwogCiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBvcGVyYXRpb25DYWxsYmFjayA9IFtvbGRWZXJz
aW9uLCBvcGVyYXRpb24sIHRoaXMsIGNvbXBsZXRpb25DYWxsYmFja10oUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPiBwcnBFcnJvcikgewogICAgICAgICBSZWZQdHI8SURCRGF0YWJhc2VFcnJv
cj4gZXJyb3IgPSBwcnBFcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwCmluZGV4IDk0ZjNjMDEuLmQx
MzNjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZl
cnNpb25DaGFuZ2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcApAQCAtMzAsMTEgKzMwLDEwIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotSURCVmVyc2lvbkNoYW5nZUV2ZW50OjpJREJWZXJzaW9uQ2hhbmdl
RXZlbnQodW5zaWduZWQgbG9uZyBsb25nIG9sZFZlcnNpb24sIHVuc2lnbmVkIGxvbmcgbG9uZyBu
ZXdWZXJzaW9uLCBJbmRleGVkREI6OlZlcnNpb25OdWxsbmVzcyBuZXdWZXJzaW9uTnVsbG5lc3Ms
IGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQorSURCVmVyc2lvbkNoYW5nZUV2ZW50OjpJ
REJWZXJzaW9uQ2hhbmdlRXZlbnQodW5zaWduZWQgbG9uZyBsb25nIG9sZFZlcnNpb24sIHVuc2ln
bmVkIGxvbmcgbG9uZyBuZXdWZXJzaW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkK
ICAgICA6IEV2ZW50KGV2ZW50VHlwZSwgZmFsc2UgLypjYW5CdWJibGUqLywgZmFsc2UgLypjYW5j
ZWxhYmxlKi8pCiAgICAgLCBtX29sZFZlcnNpb24ob2xkVmVyc2lvbikKICAgICAsIG1fbmV3VmVy
c2lvbihuZXdWZXJzaW9uKQotICAgICwgbV9uZXdWZXJzaW9uTnVsbG5lc3MobmV3VmVyc2lvbk51
bGxuZXNzKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oCmluZGV4IDFiMmRkMTguLmRiYWQ1Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFu
Z2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNp
b25DaGFuZ2VFdmVudC5oCkBAIC0zOCwyNCArMzgsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBJREJWZXJzaW9uQ2hhbmdlRXZlbnQgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8SURCVmVyc2lvbkNoYW5nZUV2ZW50PiBjcmVhdGUodW5zaWduZWQgbG9u
ZyBsb25nIG9sZFZlcnNpb24gPSAwLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3VmVyc2lvbiA9IDAs
IEluZGV4ZWREQjo6VmVyc2lvbk51bGxuZXNzIG5ld1ZlcnNpb25OdWxsbmVzcyA9IEluZGV4ZWRE
Qjo6VmVyc2lvbk51bGxuZXNzOjpOdWxsLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSA9
IEF0b21pY1N0cmluZygpKQorICAgIHN0YXRpYyBSZWY8SURCVmVyc2lvbkNoYW5nZUV2ZW50PiBj
cmVhdGUodW5zaWduZWQgbG9uZyBsb25nIG9sZFZlcnNpb24gPSAwLCB1bnNpZ25lZCBsb25nIGxv
bmcgbmV3VmVyc2lvbiA9IDAsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlID0gQXRvbWlj
U3RyaW5nKCkpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJWZXJzaW9u
Q2hhbmdlRXZlbnQob2xkVmVyc2lvbiwgbmV3VmVyc2lvbiwgbmV3VmVyc2lvbk51bGxuZXNzLCBl
dmVudFR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCVmVyc2lvbkNoYW5n
ZUV2ZW50KG9sZFZlcnNpb24sIG5ld1ZlcnNpb24sIGV2ZW50VHlwZSkpOwogICAgIH0KIAogICAg
IHZpcnR1YWwgfklEQlZlcnNpb25DaGFuZ2VFdmVudCgpOwogCiAgICAgdmlydHVhbCB1bnNpZ25l
ZCBsb25nIGxvbmcgb2xkVmVyc2lvbigpIHsgcmV0dXJuIG1fb2xkVmVyc2lvbjsgfQotICAgIHZp
cnR1YWwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1ZlcnNpb24oYm9vbCYgaXNOdWxsKSB7IGlzTnVs
bCA9IChtX25ld1ZlcnNpb25OdWxsbmVzcyA9PSBJbmRleGVkREI6OlZlcnNpb25OdWxsbmVzczo6
TnVsbCk7IHJldHVybiBtX25ld1ZlcnNpb247IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcg
bG9uZyBuZXdWZXJzaW9uKCkgeyByZXR1cm4gbV9uZXdWZXJzaW9uOyB9CiAKICAgICB2aXJ0dWFs
IEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAg
SURCVmVyc2lvbkNoYW5nZUV2ZW50KHVuc2lnbmVkIGxvbmcgbG9uZyBvbGRWZXJzaW9uLCB1bnNp
Z25lZCBsb25nIGxvbmcgbmV3VmVyc2lvbiwgSW5kZXhlZERCOjpWZXJzaW9uTnVsbG5lc3MgbmV3
VmVyc2lvbk51bGxuZXNzLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CisgICAgSURC
VmVyc2lvbkNoYW5nZUV2ZW50KHVuc2lnbmVkIGxvbmcgbG9uZyBvbGRWZXJzaW9uLCB1bnNpZ25l
ZCBsb25nIGxvbmcgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpOwog
CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fb2xkVmVyc2lvbjsKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgbV9uZXdWZXJzaW9uOwotICAgIEluZGV4ZWREQjo6VmVyc2lvbk51bGxuZXNzIG1fbmV3
VmVyc2lvbk51bGxuZXNzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VF
dmVudC5pZGwKaW5kZXggMzM0OTcyNC4uNTRjZGMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsCkBA
IC0yOCw1ICsyOCw1IEBACiAgICAgRW5hYmxlZEF0UnVudGltZT1JbmRleGVkREIsCiBdIGludGVy
ZmFjZSBJREJWZXJzaW9uQ2hhbmdlRXZlbnQgOiBFdmVudCB7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBvbGRWZXJzaW9uOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIGxvbmc/IG5ld1ZlcnNpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdWZXJzaW9uOwogfTsK
</data>
<flag name="review"
          id="279750"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>