<?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>138038</bug_id>
          
          <creation_ts>2014-10-23 21:13:06 -0700</creation_ts>
          <short_desc>[iOS8][ARMv7(s)] Optimized Object.create in &apos;use strict&apos; context sometimes breaks.</short_desc>
          <delta_ts>2015-09-14 06:07:03 -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>iOS 8.0</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>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stefan Penner">stefan.penner</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bugs.webkit.org</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dnelsen</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.hatsell</cc>
    
    <cc>mjstaffa</cc>
    
    <cc>msaboff</cc>
    
    <cc>rshimazu</cc>
    
    <cc>sivakumar.ur.friend</cc>
    
    <cc>spencerwi</cc>
    
    <cc>unwttng</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1043931</commentid>
    <comment_count>0</comment_count>
    <who name="Stefan Penner">stefan.penner</who>
    <bug_when>2014-10-23 21:13:06 -0700</bug_when>
    <thetext>(iOS8 seems to be missing from the OS dropdown, so I labeled it as other).


It some that in sometimes (appears only when optimized, but not always) the new instance produced by `Object.create` somehow fails to be a proper instance, and setting properties results in a thrown exception.

Example:

```js
var a = Object.create(other);
a.foo = 1; // =&gt; throws: TypeError Attempted to assign to readonly property
```

Interestingly, if the exception is caught and `a` inspected: `a.__proto__.foo` was set to `5`, not `a.foo`

My suspicion is that it appears to be JIT related issue, as it manifests only in hot-sots and not specifically tied to any one occurrence of `Object.create`.


affected:
---------

iOS 8.1 (12B411) on iPhone 5.
iPhone 4S iOS 8 
iPhone 4
iPhone 5 Simulator
iPhone 5c iOS 8

not-affected:
-------------

iOS 8.0 (12A365) Simulator
iPhone 6 iOS8
iPhone 5s iOS 8
iPad Retina Mini iOS 8

Demo: 
-----

(unfortunately I was not able to isolated further)

http://emberjs.jsbin.com/vecuz/1/ all iOS 8 non-64bit devices
http://jsbin.com/kegiya/6 (one scenario patched, but another creeps up when the page is added to the home screen)

Workaround:
-----------

* remove &apos;use strict&apos; from the context using the `Object.create`
* another option, although poor is to set build of the new object as a pojo, and then set __proto__ after the fact (https://github.com/emberjs/ember.js/issues/5629)

related issues:
---------------

http://stackoverflow.com/questions/25174594/typeerror-attempted-to-assign-to-readonly-property-on-ios8-safari
https://github.com/emberjs/ember.js/issues/5606
https://github.com/emberjs/ember.js/issues/5629 (same as above, one early workaround)
https://github.com/mozilla/pdf.js/issues/5341


Similar symptoms but I believe to not be the same:
-----------------------------------------
as our issue is specific to non-64bit architectures and doesn&apos;t appear to have anything to do with WebIDL
https://bugs.webkit.org/show_bug.cgi?id=49739
https://github.com/Polymer/platform/issues/66
https://github.com/uhop/dcl/issues/15
https://github.com/angular/angular.js/issues/9128
https://github.com/ibm-js/delite/issues/259</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043932</commentid>
    <comment_count>1</comment_count>
    <who name="Stefan Penner">stefan.penner</who>
    <bug_when>2014-10-23 21:19:06 -0700</bug_when>
    <thetext>So basically this doesn&apos;t affect all, but it affects a good amount of ember 1.7+ (since we added &apos;use strict&apos;) apps in the wild.

Scouring stack overflow it appears several angular users have the same problem. I suspect any app that has a hot Object.create  in a &apos;use strict&apos; context could suffer from this.

Typically the result is a hard failure, and a broken app experience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043933</commentid>
    <comment_count>2</comment_count>
    <who name="Stefan Penner">stefan.penner</who>
    <bug_when>2014-10-23 21:26:53 -0700</bug_when>
    <thetext>Also, for any ember users who stumble upon this.

1.7 -&gt; 1.8beta5 (and those related canary builds) are affected as they include &apos;use strict&apos; contexts

There is a very strong probability that 1.8 final, will ship with &apos;use strict&apos; stripped.

But as a stop-gap, I am maintaining 1.7 and canary versions of ember that have &apos;use strict stripped&apos; and do not appear to have this issue.

1.7:
----

bower users: -&gt; yapplabs/ember-ios8-fix#1.7.0
https://github.com/yapplabs/ember-ios8-fix/tree/1.7.0


canary:
-------

bower users: -&gt; yapplabs/ember-ios8-fix
https://github.com/yapplabs/ember-ios8-fix/tree/master</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043995</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-10-24 11:21:01 -0700</bug_when>
    <thetext>Do we have a way to reproduce this failure (even if not a reduced way)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044006</commentid>
    <comment_count>4</comment_count>
    <who name="Stefan Penner">stefan.penner</who>
    <bug_when>2014-10-24 11:41:07 -0700</bug_when>
    <thetext>The JSBIn&apos;s included in DEMO should consistently fail on the affected devices.

I can also make myself available for further discussion/questions if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044421</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-10-27 22:38:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/18792571&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069490</commentid>
    <comment_count>6</comment_count>
    <who name="">mjstaffa</who>
    <bug_when>2015-02-16 10:47:15 -0800</bug_when>
    <thetext>This is also affecting angularjs applications. Is this being worked on or is there something we can do to speed up the process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085106</commentid>
    <comment_count>7</comment_count>
    <who name="Jack Preston">unwttng</who>
    <bug_when>2015-04-14 04:43:56 -0700</bug_when>
    <thetext>+1 this is affecting our app. Response has been to remove use strict declarations but that&apos;s pretty undesirable. Is any work going on for the radar yet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085107</commentid>
    <comment_count>8</comment_count>
    <who name="Jack Preston">unwttng</who>
    <bug_when>2015-04-14 04:47:13 -0700</bug_when>
    <thetext>Also for more information towards the original report, in our codebase instead of &quot;setting properties results in a thrown exception&quot; we were often seeing what I&apos;d describe as &quot;setting properties invisibly does not happen&quot;. At one point, code like:

```js
this.data = {};
console.log(this.data);
```

Would output `undefined`. At other points it would crash Safari, and we would get the app reload with the grey notification bar. In almost 100% of cases it would cease any useful communication with Safari desktop dev tools.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085109</commentid>
    <comment_count>9</comment_count>
    <who name="Jack Preston">unwttng</who>
    <bug_when>2015-04-14 04:51:04 -0700</bug_when>
    <thetext>Lastly, great job pinning down a reproducible case for this Stefan, this is a seriously slippery bug in my recent experience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085699</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-15 14:58:15 -0700</bug_when>
    <thetext>Still broken on ToT :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085899</commentid>
    <comment_count>11</comment_count>
    <who name="Jack Preston">unwttng</who>
    <bug_when>2015-04-16 06:27:41 -0700</bug_when>
    <thetext>Update: we are still seeing the effects of this bug even after totally removing `&apos;use strict&apos;;` declarations from our code, so as of the moment there&apos;s not a known workaround that is good for everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085911</commentid>
    <comment_count>12</comment_count>
    <who name="Stefan Penner">stefan.penner</who>
    <bug_when>2015-04-16 07:09:34 -0700</bug_when>
    <thetext>@jack remember that JSC will inline code. As far as I can tell, if a non-use strict module that contains Object.create is inlined into a use strict module the problem returns. With ember, we also still saw the issues until all potential Object.create inline sites in the framework where also stripped of `use strict`. This is extremely brittle, as we do not control user-land code. And if the code is slightly refactored we may once again regress.

We cant just strip use strict from our entire program, as we rely on subtle differences. This really needs to get fixed, hopefully with the recent burst of attention it will happen sooner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085914</commentid>
    <comment_count>13</comment_count>
    <who name="Jack Preston">unwttng</who>
    <bug_when>2015-04-16 07:38:34 -0700</bug_when>
    <thetext>Agreed, there&apos;s no even semi-good way round this. Good to see an @webkit edit to the ticket in the last few days, even if they didn&apos;t comment :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085921</commentid>
    <comment_count>14</comment_count>
    <who name="Stefan Penner">stefan.penner</who>
    <bug_when>2015-04-16 08:06:55 -0700</bug_when>
    <thetext>I likely haven&apos;t done a good job of bringing attention to this issue. So I appreciate the extra eyes and support its getting now. My appologies for not doing more earlier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094839</commentid>
    <comment_count>15</comment_count>
    <who name="Aaron Harnly">bugs.webkit.org</who>
    <bug_when>2015-05-14 10:53:33 -0700</bug_when>
    <thetext>We (Amplify Education) are also seeing this bug on 32-bit iPads, manifesting as an angularjs error when creating a new object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097797</commentid>
    <comment_count>16</comment_count>
      <attachid>253823</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-27 18:22:10 -0700</bug_when>
    <thetext>Created attachment 253823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097829</commentid>
    <comment_count>17</comment_count>
      <attachid>253823</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-05-27 21:33:57 -0700</bug_when>
    <thetext>Comment on attachment 253823
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:24
&gt; +         and we fail the put_by_id because we try to set a property a on number.

Wording - &quot;... a on number&quot;, should this be &quot;on a number&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097946</commentid>
    <comment_count>18</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-28 13:58:03 -0700</bug_when>
    <thetext>Committed r184960: &lt;http://trac.webkit.org/changeset/184960&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098103</commentid>
    <comment_count>19</comment_count>
    <who name="Jack Preston">unwttng</who>
    <bug_when>2015-05-29 03:13:39 -0700</bug_when>
    <thetext>Great to see a resolution. Next question is when this will make its way into mobile Safari?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107075</commentid>
    <comment_count>20</comment_count>
    <who name="Spencer Williams">spencerwi</who>
    <bug_when>2015-07-06 05:17:23 -0700</bug_when>
    <thetext>Great to see a patch/resolution for this. I do echo Jack&apos;s question though: is there any word yet on a timeline for fixing iOS Safari? This causes sporadic/nondeterministic issues with Angular.js webapps, and there&apos;s no real workaround except to recommend installing Chrome for its JS engine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107087</commentid>
    <comment_count>21</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-07-06 07:14:35 -0700</bug_when>
    <thetext>This was fixed in iOS 9 Dev Seed 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107089</commentid>
    <comment_count>22</comment_count>
    <who name="Spencer Williams">spencerwi</who>
    <bug_when>2015-07-06 07:18:23 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; This was fixed in iOS 9 Dev Seed 2.

Great! Thanks for the quick response. Are there any plans for a backport for iOS8 users? (pardon me if it&apos;s a question with an obvious answer; I&apos;m not very familiar with the iOS ecosystem in general)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107092</commentid>
    <comment_count>23</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-07-06 07:36:07 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; This was fixed in iOS 9 Dev Seed 2.
&gt; 
&gt; Great! Thanks for the quick response. Are there any plans for a backport for
&gt; iOS8 users? (pardon me if it&apos;s a question with an obvious answer; I&apos;m not
&gt; very familiar with the iOS ecosystem in general)

It is unlikely that this will be backported to iOS 8.x.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107439</commentid>
    <comment_count>24</comment_count>
    <who name="Mark">mark.hatsell</who>
    <bug_when>2015-07-07 06:17:17 -0700</bug_when>
    <thetext>This jsfiddle example still seems to fail for me on iOS 9 Beta 2.

http://jsfiddle.net/adrian_vasiliu/ftyafr0d/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107481</commentid>
    <comment_count>25</comment_count>
    <who name="Stefan Penner">stefan.penner</who>
    <bug_when>2015-07-07 10:41:30 -0700</bug_when>
    <thetext>&gt; It is unlikely that this will be backported to iOS 8.x.

This would be unfortunate, a large amount of devices and sites are affected by this. The solution is basically, hand tailor scenario by scenario and wait for armv7 devices on iOS8 to age out.

Luckily iOS age out faster then android, Unfortunately this will still be years of time. Time where app authors have no reasonable solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107482</commentid>
    <comment_count>26</comment_count>
    <who name="Stefan Penner">stefan.penner</who>
    <bug_when>2015-07-07 10:42:57 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; This jsfiddle example still seems to fail for me on iOS 9 Beta 2.
&gt; 
&gt; http://jsfiddle.net/adrian_vasiliu/ftyafr0d/

This fiddle illustrates a different issue. Confusingly it manifests in a similar way as the one this bug is tracking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107557</commentid>
    <comment_count>27</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-07-07 13:55:43 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #24)
&gt; &gt; This jsfiddle example still seems to fail for me on iOS 9 Beta 2.
&gt; &gt; 
&gt; &gt; http://jsfiddle.net/adrian_vasiliu/ftyafr0d/
&gt; 
&gt; This fiddle illustrates a different issue. Confusingly it manifests in a
&gt; similar way as the one this bug is tracking.

Do we have a new bug tracking this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124216</commentid>
    <comment_count>28</comment_count>
    <who name="Sivakumar Kailasam">sivakumar.ur.friend</who>
    <bug_when>2015-09-08 01:28:14 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; &gt; It is unlikely that this will be backported to iOS 8.x.
&gt; 
&gt; This would be unfortunate, a large amount of devices and sites are affected
&gt; by this. The solution is basically, hand tailor scenario by scenario and
&gt; wait for armv7 devices on iOS8 to age out.
&gt; 
&gt; Luckily iOS age out faster then android, Unfortunately this will still be
&gt; years of time. Time where app authors have no reasonable solution.

Although I&apos;m happy that this is fixed, I feel concerned that this isn&apos;t getting backported to iOS8. For those of us serving enterprise web apps this is a blocking issue since most of our users just can&apos;t use our apps because of this issue. The &apos;use strict&apos; removal didn&apos;t work for us. 

Not entirely sure about the webkit process but there have been instances where such issues have been fixed at least in one prior version.  Given that iOS9 isn&apos;t still out and would take a while for everyone to adapt please consider backporting this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124219</commentid>
    <comment_count>29</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-09-08 03:46:53 -0700</bug_when>
    <thetext>Thanks, Sivakumar.  We will take this into consideration, but we rarely release updates to the previous major version of iOS after shipping a new major version.

I would encourage you to continue looking for a workaround if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125587</commentid>
    <comment_count>30</comment_count>
    <who name="Jack Preston">unwttng</who>
    <bug_when>2015-09-14 06:07:03 -0700</bug_when>
    <thetext>If I might, I&apos;ll register again that this is impacting a large swathe of our users too, with no attempts at workarounds working. If you&apos;re not prepared to backport, I feel a certain amount of support towards the effort of finding viable workarounds would be a responsible way to treat this. It&apos;s a breaking issue in a core part of code.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253823</attachid>
            <date>2015-05-27 18:22:10 -0700</date>
            <delta_ts>2015-05-27 21:33:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138038-20150527182158.patch</filename>
            <type>text/plain</type>
            <size>6975</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0ODY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NWViNjg3OTQ5OTM1NGVkMTY4Y2RlOGY0NTNkMzBhYWJlMmE3NDlmLi40YmFjOGEyYzgwOWRiOGZj
ZmRhYzk5YTZjNjNiZDhhODFhZTIxOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxNS0wNS0yNyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW2lPUzhdW0FSTXY3KHMpXSBPcHRpbWl6ZWQgT2JqZWN0LmNyZWF0
ZSBpbiAndXNlIHN0cmljdCcgY29udGV4dCBzb21ldGltZXMgYnJlYWtzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MDM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVEw7RFI6IHNvbWV0aW1lcyB0aGUg
YmFzZWxpbmUgSklUIGNvdWxkIGFjY2lkZW50YWxseSBudWtlIHRoZSB0YWcgYmVmb3JlIGNhbGxp
bmcKKyAgICAgICAgICAgICAgIHRvIEMrKywgbWFraW5nIHB1dF9ieV9pZCBiZWhhdmUgZXJyYXRp
Y2FsbHkuCisKKyAgICAgICAgVGhlIGJ1ZyB3YXMgdGhhdCBwdXRfYnlfaWQgd291bGQgcmFuZG9t
bHkgbm90IHdvcmsgY29ycmVjdGx5IGluIDMyYml0cy4gSXQgaGFwcGVuZWQKKyAgICAgICAgaW4g
dGhlIGJhc2VsaW5lIEpJVCBpZiB3ZSB3ZXJlIHVubHVja3kgZW5vdWdoOgorICAgICAgICAtVGhl
IGNvZGUgZ2V0IGhvdCBlbm91Z2ggYW5kIHRoZSBzdHJ1Y3R1cmUgaXMgc3RhYmxlIHNvIHdlIGdl
dCBhIGZhc3QgcGF0aCBmb3IKKyAgICAgICAgIHB1dF9ieV9pZC4KKyAgICAgICAgLVdlIHJlcGF0
Y2ggdGhlIGZhc3QtcGF0aCBicmFuY2ggd2l0aCBhIHN0dWIgZ2VuZXJhdGVkIGJ5CisgICAgICAg
ICBlbWl0UHV0VHJhbnNpdGlvblN0dWJBbmRHZXRPbGRTdHJ1Y3R1cmUoKS4KKyAgICAgICAgLUlu
IGVtaXRQdXRUcmFuc2l0aW9uU3R1YkFuZEdldE9sZFN0cnVjdHVyZSgpLCB3ZSBvbmx5IHByZXNl
cnZlIHRoZSBwYXlsb2FkIG9mIHRoZSBiYXNlCisgICAgICAgICByZWdpc3RlciwgdGhlIHRhZyBy
ZWdpc3RlciBpcyBpZ25vcmVkLgorICAgICAgICAtZW1pdFB1dFRyYW5zaXRpb25TdHViQW5kR2V0
T2xkU3RydWN0dXJlKCkgYWxsb2NhdGUgMiB0byAzIHJlZ2lzdGVycy4gQW55IG9mIHRob3NlCisg
ICAgICAgICBjb3VsZCBiZSB0aGUgb25lIHVzZWQgZm9yIHRoZSBiYXNlJ3MgdGFnIGJlZm9yZSB0
aGUgZmFzdCBwYXRoIGFuZCB0aGUgdmFsdWUgaXMgdHJhc2hlZC4KKyAgICAgICAgLUlmIHdlIGhp
dCBvbmUgb2YgdGhlIGZhaWx1cmUgY2FzZSwgd2UgZmFsbGJhY2sgdG8gdGhlIHNsb3cgcGF0aCwg
YnV0IHdlIGRlc3Ryb3llZAorICAgICAgICAgdGhlIHRhZyBwb2ludGVyLgorICAgICAgICAtV2Ug
bm93IGhhdmUgdW5yZWxhdGVkIGJpdHMgaW4gdGhlIHRhZywgdGhlIG1vc3QgbGlrZWx5IHZhbHVl
IHR5cGUgaXMgbm93ICJkb3VibGUiCisgICAgICAgICBhbmQgd2UgZmFpbCB0aGUgcHV0X2J5X2lk
IGJlY2F1c2Ugd2UgdHJ5IHRvIHNldCBhIHByb3BlcnR5IGEgb24gbnVtYmVyLgorCisgICAgICAg
IFRoZSBtb3N0IG9idmlvdXMgc29sdXRpb24gd291bGQgYmUgdG8gY2hhbmdlIGVtaXRQdXRUcmFu
c2l0aW9uU3R1YkFuZEdldE9sZFN0cnVjdHVyZSgpCisgICAgICAgIHRvIHByZXNlcnZlIHRoZSB0
YWcgcmVnaXN0ZXIgaW4gYWRkaXRpb24gdG8gdGhlIHZhbHVlIHJlZ2lzdGVyLgorICAgICAgICBJ
IGRlY2lkZWQgYWdhaW5zdCB0aGF0IG9wdGlvbiBiZWNhdXNlIG9mIHRoZSBhZGRlZCBjb21wbGV4
aXR5LiBUaGUgREZHIGRvZXMgbm90IG5lZWQKKyAgICAgICAgdGhhdCBjYXNlLCBzbyBJIHdvdWxk
IGhhdmUgdG8gYWRkIGJyYW5jaGVzIGV2ZXJ5d2hlcmUgdG8gZGlzdGluZ3Vpc2ggdGhlIGNhc2Vz
CisgICAgICAgIHdlcmUgd2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGUgdGFnIG9yIG5vdC4KKworICAg
ICAgICBJbnN0ZWFkLCBJIGp1c3QgbG9hZCB0aGUgdGFnIGJhY2sgZnJvbSBtZW1vcnkgaW4gdGhl
IHNsb3cgcGF0aC4gVGhlIGZ1bmN0aW9uIGluIHRoZSBzbG93CisgICAgICAgIHBhdGggaXMgc2V2
ZXJhbCBvcmRlciBvZiBtYWduaXR1ZGUgc2xvd2VyIHRoYW4gYSBsb2FkLCBpdCBpcyBub3Qgd29y
dGggZWxpbWluYXRpbmcgaXQsCisgICAgICAgIGVzcGVjaWFsbHkgaW4gYmFzZWxpbmUgSklULgor
CisgICAgICAgIEkgYWxzbyBkaXNjb3ZlcmVkIDQgdXNlbGVzcyBsb2FkcyBpbiB0aGUgZmFzdCBw
YXRoLCBzbyBldmVuIHdpdGggbXkgZXh0cmEgbG9hZCwgdGhpcyBwYXRjaAorICAgICAgICBtYWtl
cyB0aGUgYmFzZWxpbmUgZmFzdGVyIDopCisKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nl
c3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X2lkKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV9pZCk6IERlbGV0ZWQuCisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1vbi1uZXctb2JqZWN0LWFmdGVyLXByb3RvdHlwZS10
cmFuc2l0aW9uLW5vbi1zdHJpY3QuanM6IEFkZGVkLgorICAgICAgICAob3BhcXVlTmV3T2JqZWN0
KToKKyAgICAgICAgKHB1dFZhbHVlT25OZXdPYmplY3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9wdXQtYnktaWQtb24tbmV3LW9iamVjdC1hZnRlci1wcm90b3R5cGUtdHJhbnNpdGlvbi1zdHJp
Y3QuanM6IEFkZGVkLgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUub3BhcXVlTmV3T2Jq
ZWN0KToKKyAgICAgICAgKHB1dFZhbHVlT25OZXdPYmplY3QpOgorCiAyMDE1LTA1LTI2ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIElubGluZSBAQXJy
YXkgLyBAT2JqZWN0IGNhbGxzaXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggMGExMWJiYTQ5ZTRmMmU2NmRkMGVk
NGFlNjQ2ODE0NDFmMWEyODAyMC4uMDkwMTFiMTFhMmY2MTNjMTg0MzEwMDRkZjc1ODFmZjg5OTFk
ZWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzMzJfNjQuY3BwCkBAIC01MzUsOSArNTM1LDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0
X2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdExvYWQyKGJh
c2UsIHJlZ1QxLCByZWdUMCwgdmFsdWUsIHJlZ1QzLCByZWdUMik7CiAgICAgCiAgICAgZW1pdEp1
bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKLSAgICAKLSAgICBlbWl0TG9hZChi
YXNlLCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMywgcmVnVDIpOwog
CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygp
LApAQCAtNTU5LDcgKzU1NiwxMCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X2lkKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZQogICAgIGxpbmtT
bG93Q2FzZShpdGVyKTsKICAgICAKICAgICBMYWJlbCBjb2xkUGF0aEJlZ2luKHRoaXMpOwotICAg
IAorCisgICAgLy8gSklUUHV0QnlJZEdlbmVyYXRvciBvbmx5IHByZXNlcnZlIHRoZSB2YWx1ZSBh
bmQgdGhlIGJhc2UncyBwYXlsb2FkLCB3ZSBoYXZlIHRvIHJlbG9hZCB0aGUgdGFnLgorICAgIGVt
aXRMb2FkVGFnKGJhc2UsIHJlZ1QxKTsKKwogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3ImIGdlbiA9
IG1fcHV0QnlJZHNbbV9wdXRCeUlkSW5kZXgrK107CiAgICAgCiAgICAgQ2FsbCBjYWxsID0gY2Fs
bE9wZXJhdGlvbigKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvcHV0LWJ5LWlkLW9uLW5ldy1vYmplY3QtYWZ0ZXItcHJvdG90eXBlLXRyYW5zaXRpb24tbm9u
LXN0cmljdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHV0LWJ5LWlk
LW9uLW5ldy1vYmplY3QtYWZ0ZXItcHJvdG90eXBlLXRyYW5zaXRpb24tbm9uLXN0cmljdC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNWNjOWY5OWM5OTY0NWZhYjdhZTkyZWJlYmVlOGVhYmJmNTI0NWYzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wdXQtYnkt
aWQtb24tbmV3LW9iamVjdC1hZnRlci1wcm90b3R5cGUtdHJhbnNpdGlvbi1ub24tc3RyaWN0Lmpz
CkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIG9wYXF1ZU5ld09iamVjdChwcm90b3R5cGUpCit7
CisgICAgcmV0dXJuIE9iamVjdC5jcmVhdGUocHJvdG90eXBlKTsKK30KK25vSW5saW5lKG9wYXF1
ZU5ld09iamVjdCk7CisKK2Z1bmN0aW9uIHB1dFZhbHVlT25OZXdPYmplY3QodmFsdWUsIHByb3Rv
dHlwZSkKK3sKKyAgICB2YXIgb2JqZWN0ID0gb3BhcXVlTmV3T2JqZWN0KHByb3RvdHlwZSk7Cisg
ICAgb2JqZWN0Lm15UHJvcGVydHkgPSB2YWx1ZTsKKyAgICByZXR1cm4gb2JqZWN0OworfQorbm9J
bmxpbmUocHV0VmFsdWVPbk5ld09iamVjdCkKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkgeworICAgIHZhciBpbml0aWFsUHJvdG90eXBlID0gbmV3IE9iamVjdDsKKyAgICBmb3IgKHZh
ciBqID0gMDsgaiA8IDU7ICsraikgeworICAgICAgICB2YXIgb2JqZWN0ID0gcHV0VmFsdWVPbk5l
d09iamVjdChqLCBpbml0aWFsUHJvdG90eXBlKTsKKyAgICAgICAgaWYgKG9iamVjdFsibXlQcm9w
ZXJ0eSJdICE9PSBqKSB7CisgICAgICAgICAgICB0aHJvdyAiT29vcHMsIHdlIG1lc3MgdXAgYmVm
b3JlIHRoZSBwcm90b3R5cGUgY2hhbmdlIGF0IGl0ZXJhdGlvbiBpID0gIiArIGkgKyAiIGogPSAi
ICsgajsKKyAgICAgICAgfQorICAgIH0KKworICAgIGluaXRpYWxQcm90b3R5cGUuZm9vID0gImJh
ciI7CisgICAgZm9yICh2YXIgaiA9IDA7IGogPCA1OyArK2opIHsKKyAgICAgICAgdmFyIG9iamVj
dCA9IHB1dFZhbHVlT25OZXdPYmplY3QoaiwgaW5pdGlhbFByb3RvdHlwZSk7CisgICAgICAgIGlm
IChvYmplY3RbIm15UHJvcGVydHkiXSAhPT0gaikgeworICAgICAgICAgICAgdGhyb3cgIk9vb3Bz
LCB3ZSBtZXNzIHVwIGF0IGl0ZXJhdGlvbiBpID0gIiArIGkgKyAiIGogPSAiICsgajsKKyAgICAg
ICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1vbi1uZXctb2JqZWN0
LWFmdGVyLXByb3RvdHlwZS10cmFuc2l0aW9uLXN0cmljdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLW9uLW5ldy1vYmplY3QtYWZ0ZXItcHJvdG90eXBl
LXRyYW5zaXRpb24tc3RyaWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1NDIyNDQzY2NhODEyMmQ0NzM0ODMz
ODZhNjcyYWZjZTYzYTRhNzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1vbi1uZXctb2JqZWN0LWFmdGVyLXByb3RvdHlwZS10
cmFuc2l0aW9uLXN0cmljdC5qcwpAQCAtMCwwICsxLDMzIEBACisidXNlIHN0cmljdCIKKworZnVu
Y3Rpb24gb3BhcXVlTmV3T2JqZWN0KHByb3RvdHlwZSkKK3sKKyAgICByZXR1cm4gT2JqZWN0LmNy
ZWF0ZShwcm90b3R5cGUpOworfQorbm9JbmxpbmUob3BhcXVlTmV3T2JqZWN0KTsKKworZnVuY3Rp
b24gcHV0VmFsdWVPbk5ld09iamVjdCh2YWx1ZSwgcHJvdG90eXBlKQoreworICAgIHZhciBvYmpl
Y3QgPSBvcGFxdWVOZXdPYmplY3QocHJvdG90eXBlKTsKKyAgICBvYmplY3QubXlQcm9wZXJ0eSA9
IHZhbHVlOworICAgIHJldHVybiBvYmplY3Q7Cit9Citub0lubGluZShwdXRWYWx1ZU9uTmV3T2Jq
ZWN0KQorCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGluaXRpYWxQ
cm90b3R5cGUgPSBuZXcgT2JqZWN0OworICAgIGZvciAodmFyIGogPSAwOyBqIDwgNTsgKytqKSB7
CisgICAgICAgIHZhciBvYmplY3QgPSBwdXRWYWx1ZU9uTmV3T2JqZWN0KGosIGluaXRpYWxQcm90
b3R5cGUpOworICAgICAgICBpZiAob2JqZWN0WyJteVByb3BlcnR5Il0gIT09IGopIHsKKyAgICAg
ICAgICAgIHRocm93ICJPb29wcywgd2UgbWVzcyB1cCBiZWZvcmUgdGhlIHByb3RvdHlwZSBjaGFu
Z2UgYXQgaXRlcmF0aW9uIGkgPSAiICsgaSArICIgaiA9ICIgKyBqOworICAgICAgICB9CisgICAg
fQorCisgICAgaW5pdGlhbFByb3RvdHlwZS5mb28gPSAiYmFyIjsKKyAgICBmb3IgKHZhciBqID0g
MDsgaiA8IDU7ICsraikgeworICAgICAgICB2YXIgb2JqZWN0ID0gcHV0VmFsdWVPbk5ld09iamVj
dChqLCBpbml0aWFsUHJvdG90eXBlKTsKKyAgICAgICAgaWYgKG9iamVjdFsibXlQcm9wZXJ0eSJd
ICE9PSBqKSB7CisgICAgICAgICAgICB0aHJvdyAiT29vcHMsIHdlIG1lc3MgdXAgYXQgaXRlcmF0
aW9uIGkgPSAiICsgaSArICIgaiA9ICIgKyBqOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="278769"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>