<?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>129746</bug_id>
          
          <creation_ts>2014-03-05 10:54:35 -0800</creation_ts>
          <short_desc>JSDataViewPrototype::getData() and setData() crash on platforms that don&apos;t allow unaligned accesses</short_desc>
          <delta_ts>2014-03-05 12:55:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>987308</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-03-05 10:54:35 -0800</bug_when>
    <thetext>In runtime/JSDataViewPrototype.cpp getData() and setData() us reinterpret_cast from uint8_t* to the various native data types needed to implement the various get*() and set*() DataView methods.  For platforms that don&apos;t allow aligned accesses, this will cause a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987315</commentid>
    <comment_count>1</comment_count>
      <attachid>225894</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-03-05 11:18:08 -0800</bug_when>
    <thetext>Created attachment 225894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987325</commentid>
    <comment_count>2</comment_count>
      <attachid>225894</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-05 11:40:43 -0800</bug_when>
    <thetext>Comment on attachment 225894
Patch

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

R=me if you add some squigles.

&gt; Source/JavaScriptCore/runtime/JSDataViewPrototype.cpp:181
&gt;      if (needToFlipBytesIfLittleEndian(littleEndian))
&gt; -        value = flipBytes(value);
&gt; -    
&gt; -    *reinterpret_cast&lt;typename Adaptor::Type*&gt;(static_cast&lt;uint8_t*&gt;(dataView-&gt;vector()) + byteOffset) = value;
&gt; -    
&gt; +        for (unsigned i = dataSize; i--;)
&gt; +            *dataPtr++ = u.rawBytes[i];
&gt; +    else
&gt; +        for (unsigned i = 0; i &lt; dataSize; i++)
&gt; +            *dataPtr++ = u.rawBytes[i];

You need some squigly braces {} here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987356</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-03-05 12:55:57 -0800</bug_when>
    <thetext>Committed r165121: &lt;http://trac.webkit.org/changeset/165121&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225894</attachid>
            <date>2014-03-05 11:18:08 -0800</date>
            <delta_ts>2014-03-05 11:40:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>129746.patch</filename>
            <type>text/plain</type>
            <size>21062</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1MTE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDE0LTAzLTA1ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEpTRGF0YVZpZXdQcm90b3R5cGU6OmdldERhdGEoKSBhbmQgc2V0RGF0YSgpIGNyYXNoIG9u
IHBsYXRmb3JtcyB0aGF0IGRvbid0IGFsbG93IHVuYWxpZ25lZCBhY2Nlc3NlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NzQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlZCB0byB1c2UgYSB1
bmlvbiB0byBtYW51YWxseSBhc3NlbWJsZSBvciBkaXNhc3NlbWJsZSB0aGUgdmFyaW91cyB0eXBl
cworICAgICAgICBmcm9tIC8gdG8gdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZXMuICBBbGwgbWVtb3J5
IGFjY2VzcyBpcyBub3cgZG9uZSB1c2luZworICAgICAgICBieXRlIGFjY2Vzc2VzLgorCisgICAg
ICAgICogcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0
RGF0YSk6CisgICAgICAgIChKU0M6OnNldERhdGEpOgorCiAyMDE0LTAzLTA1ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgVHdlYWsgYWZ0ZXIgcjE2NTEw
OSB0byBhdm9pZCBleHRyYSBjb3BpZXMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxNjUwODAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDEzICsxMTYsMjMgQEAgRW5jb2RlZEpTVmFsdWUgZ2V0
RGF0YShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgdW5zaWduZWQgYnl0ZUxlbmd0aCA9IGRhdGFWaWV3
LT5sZW5ndGgoKTsKICAgICBpZiAoZWxlbWVudFNpemUgPiBieXRlTGVuZ3RoIHx8IGJ5dGVPZmZz
ZXQgPiBieXRlTGVuZ3RoIC0gZWxlbWVudFNpemUpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiT3V0IG9mIGJvdW5kcyBhY2Nlc3MiKSk7
Ci0gICAgCi0gICAgdHlwZW5hbWUgQWRhcHRvcjo6VHlwZSB2YWx1ZSA9ICpyZWludGVycHJldF9j
YXN0PHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUqPihzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGF0YVZp
ZXctPnZlY3RvcigpKSArIGJ5dGVPZmZzZXQpOwotICAgIAorCisgICAgY29uc3QgdW5zaWduZWQg
ZGF0YVNpemUgPSBzaXplb2YodHlwZW5hbWUgQWRhcHRvcjo6VHlwZSk7CisgICAgdW5pb24gewor
ICAgICAgICB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlIHZhbHVlOworICAgICAgICB1aW50OF90IHJh
d0J5dGVzW2RhdGFTaXplXTsKKyAgICB9IHU7CisKKyAgICB1aW50OF90KiBkYXRhUHRyID0gc3Rh
dGljX2Nhc3Q8dWludDhfdCo+KGRhdGFWaWV3LT52ZWN0b3IoKSkgKyBieXRlT2Zmc2V0OworCiAg
ICAgaWYgKG5lZWRUb0ZsaXBCeXRlc0lmTGl0dGxlRW5kaWFuKGxpdHRsZUVuZGlhbikpCi0gICAg
ICAgIHZhbHVlID0gZmxpcEJ5dGVzKHZhbHVlKTsKLSAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEFkYXB0b3I6OnRvSlNWYWx1ZSh2YWx1ZSkpOworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSBkYXRhU2l6ZTsgaS0tOykKKyAgICAgICAgICAgIHUucmF3Qnl0ZXNbaV0gPSAqZGF0YVB0
cisrOworICAgIGVsc2UKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRhdGFTaXpl
OyBpKyspCisgICAgICAgICAgICB1LnJhd0J5dGVzW2ldID0gKmRhdGFQdHIrKzsKKworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoQWRhcHRvcjo6dG9KU1ZhbHVlKHUudmFsdWUpKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4KQEAgLTEzOCw4ICsxNDgsMTQgQEAgRW5jb2RlZEpT
VmFsdWUgc2V0RGF0YShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCA9
IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvVUludDMyKGV4ZWMpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICAKLSAgICB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlIHZhbHVlID0gdG9OYXRp
dmVGcm9tVmFsdWU8QWRhcHRvcj4oZXhlYywgZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwor
CisgICAgY29uc3QgdW5zaWduZWQgZGF0YVNpemUgPSBzaXplb2YodHlwZW5hbWUgQWRhcHRvcjo6
VHlwZSk7CisgICAgdW5pb24geworICAgICAgICB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlIHZhbHVl
OworICAgICAgICB1aW50OF90IHJhd0J5dGVzW2RhdGFTaXplXTsKKyAgICB9IHU7CisKKyAgICB1
LnZhbHVlID0gdG9OYXRpdmVGcm9tVmFsdWU8QWRhcHRvcj4oZXhlYywgZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAKQEAgLTE1NCwxMiArMTcw
LDE2IEBAIEVuY29kZWRKU1ZhbHVlIHNldERhdGEoRXhlY1N0YXRlKiBleGVjKQogICAgIHVuc2ln
bmVkIGJ5dGVMZW5ndGggPSBkYXRhVmlldy0+bGVuZ3RoKCk7CiAgICAgaWYgKGVsZW1lbnRTaXpl
ID4gYnl0ZUxlbmd0aCB8fCBieXRlT2Zmc2V0ID4gYnl0ZUxlbmd0aCAtIGVsZW1lbnRTaXplKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywg
Ik91dCBvZiBib3VuZHMgYWNjZXNzIikpOwotICAgIAorCisgICAgdWludDhfdCogZGF0YVB0ciA9
IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhVmlldy0+dmVjdG9yKCkpICsgYnl0ZU9mZnNldDsK
KwogICAgIGlmIChuZWVkVG9GbGlwQnl0ZXNJZkxpdHRsZUVuZGlhbihsaXR0bGVFbmRpYW4pKQot
ICAgICAgICB2YWx1ZSA9IGZsaXBCeXRlcyh2YWx1ZSk7Ci0gICAgCi0gICAgKnJlaW50ZXJwcmV0
X2Nhc3Q8dHlwZW5hbWUgQWRhcHRvcjo6VHlwZSo+KHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRh
Vmlldy0+dmVjdG9yKCkpICsgYnl0ZU9mZnNldCkgPSB2YWx1ZTsKLSAgICAKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gZGF0YVNpemU7IGktLTspCisgICAgICAgICAgICAqZGF0YVB0cisrID0g
dS5yYXdCeXRlc1tpXTsKKyAgICBlbHNlCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBkYXRhU2l6ZTsgaSsrKQorICAgICAgICAgICAgKmRhdGFQdHIrKyA9IHUucmF3Qnl0ZXNbaV07
CisKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxNjUxMTUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMy0wNSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fi
b2ZmQGFwcGxlLmNvbT4KKworICAgICAgICBKU0RhdGFWaWV3UHJvdG90eXBlOjpnZXREYXRhKCkg
YW5kIHNldERhdGEoKSBjcmFzaCBvbiBwbGF0Zm9ybXMgdGhhdCBkb24ndCBhbGxvdyB1bmFsaWdu
ZWQgYWNjZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTc0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5ldyB0ZXN0IHRvIHZhbGlkYXRlIHByb3BlciBvcGVyYXRpb24gb2YgRGF0YVZpZXcgb3Bl
cmF0aW9ucyBhdAorICAgICAgICB2YXJpb3VzIGJ5dGUgb2Zmc2V0cyB1c2luZyBib3RoIGxpdHRs
ZSBhbmQgYmlnIGVuZGlhbi4KKworICAgICAgICAqIGpzL2FycmF5YnVmZmVyLWRhdGF2aWV3LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvYXJyYXlidWZmZXItZGF0YXZpZXcuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2FycmF5YnVmZmVyLWRhdGF2aWV3
LmpzOiBBZGRlZC4KKyAgICAgICAgKHBhZGRlZEhleCk6CisgICAgICAgIChieXRlU3RyaW5nKToK
KyAgICAgICAgKGNsZWFyVmlldyk6CisKIDIwMTQtMDMtMDUgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IFdyb25nIGNsaXByZWN0
IG9uIGFic29sdXRlIHBvc2l0aW9uZWQgZWxlbWVudHMuCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9h
cnJheWJ1ZmZlci1kYXRhdmlldy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvYXJyYXlidWZmZXItZGF0YXZpZXctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvanMvYXJyYXlidWZmZXItZGF0YXZpZXctZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjgxIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgRGF0YVZpZXcg
bWV0aG9kcyB3b3JrIGF0IGRpZmZlcmVudCBhbGlnbm1lbnRzIGFuZCB3aXRoIGJvdGggZW5kaWFu
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYnl0ZVN0cmluZyh2aWV3
LCAwLCA1KSBpcyAnMTYgMWIgYWQgZmEgY2UnCitQQVNTIGJ5dGVTdHJpbmcodmlldywgMCwgNCkg
aXMgJzEyIDM0IDU2IDc4JworUEFTUyB2aWV3LmdldEludDE2KDApLnRvU3RyaW5nKDE2KSBpcyAn
MTIzNCcKK1BBU1Mgdmlldy5nZXRJbnQxNihpLCB0cnVlKS50b1N0cmluZygxNikgaXMgJzM0MTIn
CitQQVNTIHZpZXcuZ2V0SW50MzIoMCkudG9TdHJpbmcoMTYpIGlzICcxMjM0NTY3OCcKK1BBU1Mg
dmlldy5nZXRJbnQzMihpLCB0cnVlKS50b1N0cmluZygxNikgaXMgJzc4NTYzNDEyJworUEFTUyBi
eXRlU3RyaW5nKHZpZXcsIDAsIDQpIGlzICdmZiBmZiBmZiBmZicKK1BBU1Mgdmlldy5nZXRJbnQ4
KDApIGlzIC0xCitQQVNTIHZpZXcuZ2V0VWludDgoMCkgaXMgMjU1CitQQVNTIHZpZXcuZ2V0SW50
MTYoMCkgaXMgLTEKK1BBU1Mgdmlldy5nZXRVaW50MTYoMCkgaXMgNjU1MzUKK1BBU1Mgdmlldy5n
ZXRJbnQzMigwKSBpcyAtMQorUEFTUyB2aWV3LmdldFVpbnQzMigwKSBpcyA0Mjk0OTY3Mjk1CitQ
QVNTIHZpZXcuZ2V0SW50OCgwKSA8IDAgaXMgdHJ1ZQorUEFTUyB2aWV3LmdldEludDgoMCx0cnVl
KSA8IDAgaXMgdHJ1ZQorUEFTUyB2aWV3LmdldEludDE2KDApIDwgMCBpcyB0cnVlCitQQVNTIHZp
ZXcuZ2V0SW50MTYoMCx0cnVlKSA8IDAgaXMgZmFsc2UKK1BBU1Mgdmlldy5nZXRJbnQzMigwKSA8
IDAgaXMgdHJ1ZQorUEFTUyB2aWV3LmdldEludDMyKDAsdHJ1ZSkgPCAwIGlzIGZhbHNlCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigwKSBpcyAyCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLHRydWUpICE9
IDIuMCBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwKSBpcyAtMgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMCx0cnVlKSAhPSAtMi4wIGlzIHRydWUKK1BBU1MgTWF0aC5hYnModmlldy5nZXRG
bG9hdDMyKDApIC0gTWF0aC5TUVJUMikgPCAwLjAwMDAwMDEgaXMgdHJ1ZQorUEFTUyBNYXRoLmFi
cyh2aWV3LmdldEZsb2F0MzIoMCx0cnVlKSAtIE1hdGguU1FSVDIpID4gMC4wMDAwMDAxIGlzIHRy
dWUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDApIGlzIE5hTgorUEFTUyBpc05hTih2aWV3LmdldEZs
b2F0MzIoMCx0cnVlKSkgaXMgZmFsc2UKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDApIGlzIE5hTgor
UEFTUyBpc05hTih2aWV3LmdldEZsb2F0MzIoMCx0cnVlKSkgaXMgZmFsc2UKK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDApIGlzIDEKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsdHJ1ZSkgIT0gMSBpcyB0
cnVlCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwKSBpcyAtMQorUEFTUyB2aWV3LmdldEZsb2F0NjQo
MCx0cnVlKSAhPSAtMSBpcyB0cnVlCitQQVNTIE1hdGguYWJzKHZpZXcuZ2V0RmxvYXQ2NCgwKSAt
IE1hdGguUEkpIDwgMC4wMDAwMDAwMDEgaXMgdHJ1ZQorUEFTUyBieXRlU3RyaW5nKHZpZXcsIDEs
IDUpIGlzICcxNiAxYiBhZCBmYSBjZScKK1BBU1MgYnl0ZVN0cmluZyh2aWV3LCAxLCA0KSBpcyAn
MTIgMzQgNTYgNzgnCitQQVNTIHZpZXcuZ2V0SW50MTYoMSkudG9TdHJpbmcoMTYpIGlzICcxMjM0
JworUEFTUyB2aWV3LmdldEludDE2KGksIHRydWUpLnRvU3RyaW5nKDE2KSBpcyAnMzQxMicKK1BB
U1Mgdmlldy5nZXRJbnQzMigxKS50b1N0cmluZygxNikgaXMgJzEyMzQ1Njc4JworUEFTUyB2aWV3
LmdldEludDMyKGksIHRydWUpLnRvU3RyaW5nKDE2KSBpcyAnNzg1NjM0MTInCitQQVNTIGJ5dGVT
dHJpbmcodmlldywgMSwgNCkgaXMgJ2ZmIGZmIGZmIGZmJworUEFTUyB2aWV3LmdldEludDgoMSkg
aXMgLTEKK1BBU1Mgdmlldy5nZXRVaW50OCgxKSBpcyAyNTUKK1BBU1Mgdmlldy5nZXRJbnQxNigx
KSBpcyAtMQorUEFTUyB2aWV3LmdldFVpbnQxNigxKSBpcyA2NTUzNQorUEFTUyB2aWV3LmdldElu
dDMyKDEpIGlzIC0xCitQQVNTIHZpZXcuZ2V0VWludDMyKDEpIGlzIDQyOTQ5NjcyOTUKK1BBU1Mg
dmlldy5nZXRJbnQ4KDEpIDwgMCBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0SW50OCgxLHRydWUpIDwg
MCBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0SW50MTYoMSkgPCAwIGlzIHRydWUKK1BBU1Mgdmlldy5n
ZXRJbnQxNigxLHRydWUpIDwgMCBpcyBmYWxzZQorUEFTUyB2aWV3LmdldEludDMyKDEpIDwgMCBp
cyB0cnVlCitQQVNTIHZpZXcuZ2V0SW50MzIoMSx0cnVlKSA8IDAgaXMgZmFsc2UKK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDEpIGlzIDIKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEsdHJ1ZSkgIT0gMi4w
IGlzIHRydWUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEpIGlzIC0yCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigxLHRydWUpICE9IC0yLjAgaXMgdHJ1ZQorUEFTUyBNYXRoLmFicyh2aWV3LmdldEZsb2F0
MzIoMSkgLSBNYXRoLlNRUlQyKSA8IDAuMDAwMDAwMSBpcyB0cnVlCitQQVNTIE1hdGguYWJzKHZp
ZXcuZ2V0RmxvYXQzMigxLHRydWUpIC0gTWF0aC5TUVJUMikgPiAwLjAwMDAwMDEgaXMgdHJ1ZQor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMSkgaXMgTmFOCitQQVNTIGlzTmFOKHZpZXcuZ2V0RmxvYXQz
MigxLHRydWUpKSBpcyBmYWxzZQorUEFTUyB2aWV3LmdldEZsb2F0MzIoMSkgaXMgTmFOCitQQVNT
IGlzTmFOKHZpZXcuZ2V0RmxvYXQzMigxLHRydWUpKSBpcyBmYWxzZQorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMSkgaXMgMQorUEFTUyB2aWV3LmdldEZsb2F0NjQoMSx0cnVlKSAhPSAxIGlzIHRydWUK
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEpIGlzIC0xCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxLHRy
dWUpICE9IC0xIGlzIHRydWUKK1BBU1MgTWF0aC5hYnModmlldy5nZXRGbG9hdDY0KDEpIC0gTWF0
aC5QSSkgPCAwLjAwMDAwMDAwMSBpcyB0cnVlCitQQVNTIGJ5dGVTdHJpbmcodmlldywgMiwgNSkg
aXMgJzE2IDFiIGFkIGZhIGNlJworUEFTUyBieXRlU3RyaW5nKHZpZXcsIDIsIDQpIGlzICcxMiAz
NCA1NiA3OCcKK1BBU1Mgdmlldy5nZXRJbnQxNigyKS50b1N0cmluZygxNikgaXMgJzEyMzQnCitQ
QVNTIHZpZXcuZ2V0SW50MTYoaSwgdHJ1ZSkudG9TdHJpbmcoMTYpIGlzICczNDEyJworUEFTUyB2
aWV3LmdldEludDMyKDIpLnRvU3RyaW5nKDE2KSBpcyAnMTIzNDU2NzgnCitQQVNTIHZpZXcuZ2V0
SW50MzIoaSwgdHJ1ZSkudG9TdHJpbmcoMTYpIGlzICc3ODU2MzQxMicKK1BBU1MgYnl0ZVN0cmlu
Zyh2aWV3LCAyLCA0KSBpcyAnZmYgZmYgZmYgZmYnCitQQVNTIHZpZXcuZ2V0SW50OCgyKSBpcyAt
MQorUEFTUyB2aWV3LmdldFVpbnQ4KDIpIGlzIDI1NQorUEFTUyB2aWV3LmdldEludDE2KDIpIGlz
IC0xCitQQVNTIHZpZXcuZ2V0VWludDE2KDIpIGlzIDY1NTM1CitQQVNTIHZpZXcuZ2V0SW50MzIo
MikgaXMgLTEKK1BBU1Mgdmlldy5nZXRVaW50MzIoMikgaXMgNDI5NDk2NzI5NQorUEFTUyB2aWV3
LmdldEludDgoMikgPCAwIGlzIHRydWUKK1BBU1Mgdmlldy5nZXRJbnQ4KDIsdHJ1ZSkgPCAwIGlz
IHRydWUKK1BBU1Mgdmlldy5nZXRJbnQxNigyKSA8IDAgaXMgdHJ1ZQorUEFTUyB2aWV3LmdldElu
dDE2KDIsdHJ1ZSkgPCAwIGlzIGZhbHNlCitQQVNTIHZpZXcuZ2V0SW50MzIoMikgPCAwIGlzIHRy
dWUKK1BBU1Mgdmlldy5nZXRJbnQzMigyLHRydWUpIDwgMCBpcyBmYWxzZQorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMikgaXMgMgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMix0cnVlKSAhPSAyLjAgaXMg
dHJ1ZQorUEFTUyB2aWV3LmdldEZsb2F0MzIoMikgaXMgLTIKK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDIsdHJ1ZSkgIT0gLTIuMCBpcyB0cnVlCitQQVNTIE1hdGguYWJzKHZpZXcuZ2V0RmxvYXQzMigy
KSAtIE1hdGguU1FSVDIpIDwgMC4wMDAwMDAxIGlzIHRydWUKK1BBU1MgTWF0aC5hYnModmlldy5n
ZXRGbG9hdDMyKDIsdHJ1ZSkgLSBNYXRoLlNRUlQyKSA+IDAuMDAwMDAwMSBpcyB0cnVlCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigyKSBpcyBOYU4KK1BBU1MgaXNOYU4odmlldy5nZXRGbG9hdDMyKDIs
dHJ1ZSkpIGlzIGZhbHNlCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigyKSBpcyBOYU4KK1BBU1MgaXNO
YU4odmlldy5nZXRGbG9hdDMyKDIsdHJ1ZSkpIGlzIGZhbHNlCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgyKSBpcyAxCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgyLHRydWUpICE9IDEgaXMgdHJ1ZQorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMikgaXMgLTEKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDIsdHJ1ZSkg
IT0gLTEgaXMgdHJ1ZQorUEFTUyBNYXRoLmFicyh2aWV3LmdldEZsb2F0NjQoMikgLSBNYXRoLlBJ
KSA8IDAuMDAwMDAwMDAxIGlzIHRydWUKK1BBU1MgYnl0ZVN0cmluZyh2aWV3LCAzLCA1KSBpcyAn
MTYgMWIgYWQgZmEgY2UnCitQQVNTIGJ5dGVTdHJpbmcodmlldywgMywgNCkgaXMgJzEyIDM0IDU2
IDc4JworUEFTUyB2aWV3LmdldEludDE2KDMpLnRvU3RyaW5nKDE2KSBpcyAnMTIzNCcKK1BBU1Mg
dmlldy5nZXRJbnQxNihpLCB0cnVlKS50b1N0cmluZygxNikgaXMgJzM0MTInCitQQVNTIHZpZXcu
Z2V0SW50MzIoMykudG9TdHJpbmcoMTYpIGlzICcxMjM0NTY3OCcKK1BBU1Mgdmlldy5nZXRJbnQz
MihpLCB0cnVlKS50b1N0cmluZygxNikgaXMgJzc4NTYzNDEyJworUEFTUyBieXRlU3RyaW5nKHZp
ZXcsIDMsIDQpIGlzICdmZiBmZiBmZiBmZicKK1BBU1Mgdmlldy5nZXRJbnQ4KDMpIGlzIC0xCitQ
QVNTIHZpZXcuZ2V0VWludDgoMykgaXMgMjU1CitQQVNTIHZpZXcuZ2V0SW50MTYoMykgaXMgLTEK
K1BBU1Mgdmlldy5nZXRVaW50MTYoMykgaXMgNjU1MzUKK1BBU1Mgdmlldy5nZXRJbnQzMigzKSBp
cyAtMQorUEFTUyB2aWV3LmdldFVpbnQzMigzKSBpcyA0Mjk0OTY3Mjk1CitQQVNTIHZpZXcuZ2V0
SW50OCgzKSA8IDAgaXMgdHJ1ZQorUEFTUyB2aWV3LmdldEludDgoMyx0cnVlKSA8IDAgaXMgdHJ1
ZQorUEFTUyB2aWV3LmdldEludDE2KDMpIDwgMCBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0SW50MTYo
Myx0cnVlKSA8IDAgaXMgZmFsc2UKK1BBU1Mgdmlldy5nZXRJbnQzMigzKSA8IDAgaXMgdHJ1ZQor
UEFTUyB2aWV3LmdldEludDMyKDMsdHJ1ZSkgPCAwIGlzIGZhbHNlCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigzKSBpcyAyCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLHRydWUpICE9IDIuMCBpcyB0cnVl
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzKSBpcyAtMgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMyx0
cnVlKSAhPSAtMi4wIGlzIHRydWUKK1BBU1MgTWF0aC5hYnModmlldy5nZXRGbG9hdDMyKDMpIC0g
TWF0aC5TUVJUMikgPCAwLjAwMDAwMDEgaXMgdHJ1ZQorUEFTUyBNYXRoLmFicyh2aWV3LmdldEZs
b2F0MzIoMyx0cnVlKSAtIE1hdGguU1FSVDIpID4gMC4wMDAwMDAxIGlzIHRydWUKK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDMpIGlzIE5hTgorUEFTUyBpc05hTih2aWV3LmdldEZsb2F0MzIoMyx0cnVl
KSkgaXMgZmFsc2UKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMpIGlzIE5hTgorUEFTUyBpc05hTih2
aWV3LmdldEZsb2F0MzIoMyx0cnVlKSkgaXMgZmFsc2UKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMp
IGlzIDEKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsdHJ1ZSkgIT0gMSBpcyB0cnVlCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCgzKSBpcyAtMQorUEFTUyB2aWV3LmdldEZsb2F0NjQoMyx0cnVlKSAhPSAt
MSBpcyB0cnVlCitQQVNTIE1hdGguYWJzKHZpZXcuZ2V0RmxvYXQ2NCgzKSAtIE1hdGguUEkpIDwg
MC4wMDAwMDAwMDEgaXMgdHJ1ZQorUEFTUyBieXRlU3RyaW5nKHZpZXcsIDQsIDUpIGlzICcxNiAx
YiBhZCBmYSBjZScKK1BBU1MgYnl0ZVN0cmluZyh2aWV3LCA0LCA0KSBpcyAnMTIgMzQgNTYgNzgn
CitQQVNTIHZpZXcuZ2V0SW50MTYoNCkudG9TdHJpbmcoMTYpIGlzICcxMjM0JworUEFTUyB2aWV3
LmdldEludDE2KGksIHRydWUpLnRvU3RyaW5nKDE2KSBpcyAnMzQxMicKK1BBU1Mgdmlldy5nZXRJ
bnQzMig0KS50b1N0cmluZygxNikgaXMgJzEyMzQ1Njc4JworUEFTUyB2aWV3LmdldEludDMyKGks
IHRydWUpLnRvU3RyaW5nKDE2KSBpcyAnNzg1NjM0MTInCitQQVNTIGJ5dGVTdHJpbmcodmlldywg
NCwgNCkgaXMgJ2ZmIGZmIGZmIGZmJworUEFTUyB2aWV3LmdldEludDgoNCkgaXMgLTEKK1BBU1Mg
dmlldy5nZXRVaW50OCg0KSBpcyAyNTUKK1BBU1Mgdmlldy5nZXRJbnQxNig0KSBpcyAtMQorUEFT
UyB2aWV3LmdldFVpbnQxNig0KSBpcyA2NTUzNQorUEFTUyB2aWV3LmdldEludDMyKDQpIGlzIC0x
CitQQVNTIHZpZXcuZ2V0VWludDMyKDQpIGlzIDQyOTQ5NjcyOTUKK1BBU1Mgdmlldy5nZXRJbnQ4
KDQpIDwgMCBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0SW50OCg0LHRydWUpIDwgMCBpcyB0cnVlCitQ
QVNTIHZpZXcuZ2V0SW50MTYoNCkgPCAwIGlzIHRydWUKK1BBU1Mgdmlldy5nZXRJbnQxNig0LHRy
dWUpIDwgMCBpcyBmYWxzZQorUEFTUyB2aWV3LmdldEludDMyKDQpIDwgMCBpcyB0cnVlCitQQVNT
IHZpZXcuZ2V0SW50MzIoNCx0cnVlKSA8IDAgaXMgZmFsc2UKK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDQpIGlzIDIKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDQsdHJ1ZSkgIT0gMi4wIGlzIHRydWUKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDQpIGlzIC0yCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig0LHRydWUp
ICE9IC0yLjAgaXMgdHJ1ZQorUEFTUyBNYXRoLmFicyh2aWV3LmdldEZsb2F0MzIoNCkgLSBNYXRo
LlNRUlQyKSA8IDAuMDAwMDAwMSBpcyB0cnVlCitQQVNTIE1hdGguYWJzKHZpZXcuZ2V0RmxvYXQz
Mig0LHRydWUpIC0gTWF0aC5TUVJUMikgPiAwLjAwMDAwMDEgaXMgdHJ1ZQorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNCkgaXMgTmFOCitQQVNTIGlzTmFOKHZpZXcuZ2V0RmxvYXQzMig0LHRydWUpKSBp
cyBmYWxzZQorUEFTUyB2aWV3LmdldEZsb2F0MzIoNCkgaXMgTmFOCitQQVNTIGlzTmFOKHZpZXcu
Z2V0RmxvYXQzMig0LHRydWUpKSBpcyBmYWxzZQorUEFTUyB2aWV3LmdldEZsb2F0NjQoNCkgaXMg
MQorUEFTUyB2aWV3LmdldEZsb2F0NjQoNCx0cnVlKSAhPSAxIGlzIHRydWUKK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDQpIGlzIC0xCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg0LHRydWUpICE9IC0xIGlz
IHRydWUKK1BBU1MgTWF0aC5hYnModmlldy5nZXRGbG9hdDY0KDQpIC0gTWF0aC5QSSkgPCAwLjAw
MDAwMDAwMSBpcyB0cnVlCitQQVNTIGJ5dGVTdHJpbmcodmlldywgNSwgNSkgaXMgJzE2IDFiIGFk
IGZhIGNlJworUEFTUyBieXRlU3RyaW5nKHZpZXcsIDUsIDQpIGlzICcxMiAzNCA1NiA3OCcKK1BB
U1Mgdmlldy5nZXRJbnQxNig1KS50b1N0cmluZygxNikgaXMgJzEyMzQnCitQQVNTIHZpZXcuZ2V0
SW50MTYoaSwgdHJ1ZSkudG9TdHJpbmcoMTYpIGlzICczNDEyJworUEFTUyB2aWV3LmdldEludDMy
KDUpLnRvU3RyaW5nKDE2KSBpcyAnMTIzNDU2NzgnCitQQVNTIHZpZXcuZ2V0SW50MzIoaSwgdHJ1
ZSkudG9TdHJpbmcoMTYpIGlzICc3ODU2MzQxMicKK1BBU1MgYnl0ZVN0cmluZyh2aWV3LCA1LCA0
KSBpcyAnZmYgZmYgZmYgZmYnCitQQVNTIHZpZXcuZ2V0SW50OCg1KSBpcyAtMQorUEFTUyB2aWV3
LmdldFVpbnQ4KDUpIGlzIDI1NQorUEFTUyB2aWV3LmdldEludDE2KDUpIGlzIC0xCitQQVNTIHZp
ZXcuZ2V0VWludDE2KDUpIGlzIDY1NTM1CitQQVNTIHZpZXcuZ2V0SW50MzIoNSkgaXMgLTEKK1BB
U1Mgdmlldy5nZXRVaW50MzIoNSkgaXMgNDI5NDk2NzI5NQorUEFTUyB2aWV3LmdldEludDgoNSkg
PCAwIGlzIHRydWUKK1BBU1Mgdmlldy5nZXRJbnQ4KDUsdHJ1ZSkgPCAwIGlzIHRydWUKK1BBU1Mg
dmlldy5nZXRJbnQxNig1KSA8IDAgaXMgdHJ1ZQorUEFTUyB2aWV3LmdldEludDE2KDUsdHJ1ZSkg
PCAwIGlzIGZhbHNlCitQQVNTIHZpZXcuZ2V0SW50MzIoNSkgPCAwIGlzIHRydWUKK1BBU1Mgdmll
dy5nZXRJbnQzMig1LHRydWUpIDwgMCBpcyBmYWxzZQorUEFTUyB2aWV3LmdldEZsb2F0MzIoNSkg
aXMgMgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNSx0cnVlKSAhPSAyLjAgaXMgdHJ1ZQorUEFTUyB2
aWV3LmdldEZsb2F0MzIoNSkgaXMgLTIKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDUsdHJ1ZSkgIT0g
LTIuMCBpcyB0cnVlCitQQVNTIE1hdGguYWJzKHZpZXcuZ2V0RmxvYXQzMig1KSAtIE1hdGguU1FS
VDIpIDwgMC4wMDAwMDAxIGlzIHRydWUKK1BBU1MgTWF0aC5hYnModmlldy5nZXRGbG9hdDMyKDUs
dHJ1ZSkgLSBNYXRoLlNRUlQyKSA+IDAuMDAwMDAwMSBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMig1KSBpcyBOYU4KK1BBU1MgaXNOYU4odmlldy5nZXRGbG9hdDMyKDUsdHJ1ZSkpIGlzIGZh
bHNlCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig1KSBpcyBOYU4KK1BBU1MgaXNOYU4odmlldy5nZXRG
bG9hdDMyKDUsdHJ1ZSkpIGlzIGZhbHNlCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg1KSBpcyAxCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCg1LHRydWUpICE9IDEgaXMgdHJ1ZQorUEFTUyB2aWV3LmdldEZs
b2F0NjQoNSkgaXMgLTEKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDUsdHJ1ZSkgIT0gLTEgaXMgdHJ1
ZQorUEFTUyBNYXRoLmFicyh2aWV3LmdldEZsb2F0NjQoNSkgLSBNYXRoLlBJKSA8IDAuMDAwMDAw
MDAxIGlzIHRydWUKK1BBU1MgYnl0ZVN0cmluZyh2aWV3LCA2LCA1KSBpcyAnMTYgMWIgYWQgZmEg
Y2UnCitQQVNTIGJ5dGVTdHJpbmcodmlldywgNiwgNCkgaXMgJzEyIDM0IDU2IDc4JworUEFTUyB2
aWV3LmdldEludDE2KDYpLnRvU3RyaW5nKDE2KSBpcyAnMTIzNCcKK1BBU1Mgdmlldy5nZXRJbnQx
NihpLCB0cnVlKS50b1N0cmluZygxNikgaXMgJzM0MTInCitQQVNTIHZpZXcuZ2V0SW50MzIoNiku
dG9TdHJpbmcoMTYpIGlzICcxMjM0NTY3OCcKK1BBU1Mgdmlldy5nZXRJbnQzMihpLCB0cnVlKS50
b1N0cmluZygxNikgaXMgJzc4NTYzNDEyJworUEFTUyBieXRlU3RyaW5nKHZpZXcsIDYsIDQpIGlz
ICdmZiBmZiBmZiBmZicKK1BBU1Mgdmlldy5nZXRJbnQ4KDYpIGlzIC0xCitQQVNTIHZpZXcuZ2V0
VWludDgoNikgaXMgMjU1CitQQVNTIHZpZXcuZ2V0SW50MTYoNikgaXMgLTEKK1BBU1Mgdmlldy5n
ZXRVaW50MTYoNikgaXMgNjU1MzUKK1BBU1Mgdmlldy5nZXRJbnQzMig2KSBpcyAtMQorUEFTUyB2
aWV3LmdldFVpbnQzMig2KSBpcyA0Mjk0OTY3Mjk1CitQQVNTIHZpZXcuZ2V0SW50OCg2KSA8IDAg
aXMgdHJ1ZQorUEFTUyB2aWV3LmdldEludDgoNix0cnVlKSA8IDAgaXMgdHJ1ZQorUEFTUyB2aWV3
LmdldEludDE2KDYpIDwgMCBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0SW50MTYoNix0cnVlKSA8IDAg
aXMgZmFsc2UKK1BBU1Mgdmlldy5nZXRJbnQzMig2KSA8IDAgaXMgdHJ1ZQorUEFTUyB2aWV3Lmdl
dEludDMyKDYsdHJ1ZSkgPCAwIGlzIGZhbHNlCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig2KSBpcyAy
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMig2LHRydWUpICE9IDIuMCBpcyB0cnVlCitQQVNTIHZpZXcu
Z2V0RmxvYXQzMig2KSBpcyAtMgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNix0cnVlKSAhPSAtMi4w
IGlzIHRydWUKK1BBU1MgTWF0aC5hYnModmlldy5nZXRGbG9hdDMyKDYpIC0gTWF0aC5TUVJUMikg
PCAwLjAwMDAwMDEgaXMgdHJ1ZQorUEFTUyBNYXRoLmFicyh2aWV3LmdldEZsb2F0MzIoNix0cnVl
KSAtIE1hdGguU1FSVDIpID4gMC4wMDAwMDAxIGlzIHRydWUKK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDYpIGlzIE5hTgorUEFTUyBpc05hTih2aWV3LmdldEZsb2F0MzIoNix0cnVlKSkgaXMgZmFsc2UK
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDYpIGlzIE5hTgorUEFTUyBpc05hTih2aWV3LmdldEZsb2F0
MzIoNix0cnVlKSkgaXMgZmFsc2UKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDYpIGlzIDEKK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDYsdHJ1ZSkgIT0gMSBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg2KSBpcyAtMQorUEFTUyB2aWV3LmdldEZsb2F0NjQoNix0cnVlKSAhPSAtMSBpcyB0cnVlCitQ
QVNTIE1hdGguYWJzKHZpZXcuZ2V0RmxvYXQ2NCg2KSAtIE1hdGguUEkpIDwgMC4wMDAwMDAwMDEg
aXMgdHJ1ZQorUEFTUyBieXRlU3RyaW5nKHZpZXcsIDcsIDUpIGlzICcxNiAxYiBhZCBmYSBjZScK
K1BBU1MgYnl0ZVN0cmluZyh2aWV3LCA3LCA0KSBpcyAnMTIgMzQgNTYgNzgnCitQQVNTIHZpZXcu
Z2V0SW50MTYoNykudG9TdHJpbmcoMTYpIGlzICcxMjM0JworUEFTUyB2aWV3LmdldEludDE2KGks
IHRydWUpLnRvU3RyaW5nKDE2KSBpcyAnMzQxMicKK1BBU1Mgdmlldy5nZXRJbnQzMig3KS50b1N0
cmluZygxNikgaXMgJzEyMzQ1Njc4JworUEFTUyB2aWV3LmdldEludDMyKGksIHRydWUpLnRvU3Ry
aW5nKDE2KSBpcyAnNzg1NjM0MTInCitQQVNTIGJ5dGVTdHJpbmcodmlldywgNywgNCkgaXMgJ2Zm
IGZmIGZmIGZmJworUEFTUyB2aWV3LmdldEludDgoNykgaXMgLTEKK1BBU1Mgdmlldy5nZXRVaW50
OCg3KSBpcyAyNTUKK1BBU1Mgdmlldy5nZXRJbnQxNig3KSBpcyAtMQorUEFTUyB2aWV3LmdldFVp
bnQxNig3KSBpcyA2NTUzNQorUEFTUyB2aWV3LmdldEludDMyKDcpIGlzIC0xCitQQVNTIHZpZXcu
Z2V0VWludDMyKDcpIGlzIDQyOTQ5NjcyOTUKK1BBU1Mgdmlldy5nZXRJbnQ4KDcpIDwgMCBpcyB0
cnVlCitQQVNTIHZpZXcuZ2V0SW50OCg3LHRydWUpIDwgMCBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0
SW50MTYoNykgPCAwIGlzIHRydWUKK1BBU1Mgdmlldy5nZXRJbnQxNig3LHRydWUpIDwgMCBpcyBm
YWxzZQorUEFTUyB2aWV3LmdldEludDMyKDcpIDwgMCBpcyB0cnVlCitQQVNTIHZpZXcuZ2V0SW50
MzIoNyx0cnVlKSA8IDAgaXMgZmFsc2UKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcpIGlzIDIKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDcsdHJ1ZSkgIT0gMi4wIGlzIHRydWUKK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDcpIGlzIC0yCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LHRydWUpICE9IC0yLjAgaXMg
dHJ1ZQorUEFTUyBNYXRoLmFicyh2aWV3LmdldEZsb2F0MzIoNykgLSBNYXRoLlNRUlQyKSA8IDAu
MDAwMDAwMSBpcyB0cnVlCitQQVNTIE1hdGguYWJzKHZpZXcuZ2V0RmxvYXQzMig3LHRydWUpIC0g
TWF0aC5TUVJUMikgPiAwLjAwMDAwMDEgaXMgdHJ1ZQorUEFTUyB2aWV3LmdldEZsb2F0MzIoNykg
aXMgTmFOCitQQVNTIGlzTmFOKHZpZXcuZ2V0RmxvYXQzMig3LHRydWUpKSBpcyBmYWxzZQorUEFT
UyB2aWV3LmdldEZsb2F0MzIoNykgaXMgTmFOCitQQVNTIGlzTmFOKHZpZXcuZ2V0RmxvYXQzMig3
LHRydWUpKSBpcyBmYWxzZQorUEFTUyB2aWV3LmdldEZsb2F0NjQoNykgaXMgMQorUEFTUyB2aWV3
LmdldEZsb2F0NjQoNyx0cnVlKSAhPSAxIGlzIHRydWUKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcp
IGlzIC0xCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LHRydWUpICE9IC0xIGlzIHRydWUKK1BBU1Mg
TWF0aC5hYnModmlldy5nZXRGbG9hdDY0KDcpIC0gTWF0aC5QSSkgPCAwLjAwMDAwMDAwMSBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvanMvYXJyYXlidWZmZXItZGF0YXZpZXcuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9hcnJheWJ1ZmZlci1kYXRhdmlldy5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvanMvYXJyYXlidWZmZXItZGF0YXZpZXcuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvYXJyYXlidWZmZXItZGF0YXZpZXcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5YnVmZmVyLWRhdGF2
aWV3LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJheWJ1
ZmZlci1kYXRhdmlldy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9hcnJheWJ1ZmZlci1kYXRhdmlldy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEy
MCBAQAorZGVzY3JpcHRpb24oCisgICAgIlRoaXMgdGVzdCBjaGVja3MgdGhhdCBEYXRhVmlldyBt
ZXRob2RzIHdvcmsgYXQgZGlmZmVyZW50IGFsaWdubWVudHMgYW5kIHdpdGggYm90aCBlbmRpYW5z
LiIKKyk7CisKK2Z1bmN0aW9uIHBhZGRlZEhleCh2KQoreworICAgIHZhciByZXN1bHQgPSAiIgor
CisgICAgaWYgKHYgPCAxNikKKyAgICAgICAgcmVzdWx0ID0gIjAiCisgICAgcmVzdWx0ICs9IHYu
dG9TdHJpbmcoMTYpOworCisgICAgcmV0dXJuIHJlc3VsdAorfQorCitmdW5jdGlvbiBieXRlU3Ry
aW5nKHZpZXcsIHN0YXJ0LCBsZW4pCit7CisgICAgaWYgKHN0YXJ0IDwgMCB8fCBsZW4gPCAwIHx8
IHN0YXJ0ICsgbGVuID4gdmlldy5ieXRlTGVuZ3RoKQorICAgICAgICByZXR1cm4gIlVuZGVmaW5l
ZCIKKworICAgIHJlc3VsdCA9ICIiCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykg
eworCWlmIChpKQorCSAgICByZXN1bHQgKz0gIiAiCisgICAgICAgIHJlc3VsdCArPSBwYWRkZWRI
ZXgodmlldy5nZXRVaW50OChzdGFydCArIGkpKQorICAgIH0KKworICAgIHJldHVybiByZXN1bHQK
K30KKworZnVuY3Rpb24gY2xlYXJWaWV3KHZpZXcpCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB2aWV3LmJ5dGVMZW5ndGg7IGkrKykKKwl2aWV3LnNldFVpbnQ4KGksIDApOworfQorCit2YXIg
YnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDE2KTsKK3ZhciB2aWV3ID0gbmV3IERhdGFWaWV3KGJ1
ZmZlciwgMCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgY2xlYXJWaWV3
KHZpZXcpCisgICAgdmlldy5zZXRJbnQ4KGksIDIyKQorICAgIHZpZXcuc2V0VWludDMyKGkgKyAx
LCAweDFiYWRmYWNlKQorICAgIHNob3VsZEJlKCJieXRlU3RyaW5nKHZpZXcsICIgKyBpICsgIiwg
NSkiLCAiJzE2IDFiIGFkIGZhIGNlJyIpCisKKyAgICBjbGVhclZpZXcodmlldykKKyAgICB2aWV3
LnNldEludDgoaSwgMHgxMikKKyAgICB2aWV3LnNldEludDgoaSArIDEsIDB4MzQpCisgICAgdmll
dy5zZXRJbnQ4KGkgKyAyLCAweDU2KQorICAgIHZpZXcuc2V0SW50OChpICsgMywgMHg3OCkKKyAg
ICBzaG91bGRCZSgiYnl0ZVN0cmluZyh2aWV3LCAiICsgaSArICIsIDQpIiwgIicxMiAzNCA1NiA3
OCciKQorICAgIHNob3VsZEJlKCJ2aWV3LmdldEludDE2KCIgKyBpICsgIikudG9TdHJpbmcoMTYp
IiwgIicxMjM0JyIpCisgICAgc2hvdWxkQmUoInZpZXcuZ2V0SW50MTYoaSwgdHJ1ZSkudG9TdHJp
bmcoMTYpIiwgIiczNDEyJyIpCisgICAgc2hvdWxkQmUoInZpZXcuZ2V0SW50MzIoIiArIGkgKyAi
KS50b1N0cmluZygxNikiLCAiJzEyMzQ1Njc4JyIpCisgICAgc2hvdWxkQmUoInZpZXcuZ2V0SW50
MzIoaSwgdHJ1ZSkudG9TdHJpbmcoMTYpIiwgIic3ODU2MzQxMiciKQorCisgICAgY2xlYXJWaWV3
KHZpZXcpCisgICAgdmlldy5zZXRJbnQzMihpLCAtMSB8IDApCisgICAgc2hvdWxkQmUoImJ5dGVT
dHJpbmcodmlldywgIiArIGkgKyAiLCA0KSIsICInZmYgZmYgZmYgZmYnIikKKyAgICBzaG91bGRC
ZSgidmlldy5nZXRJbnQ4KCIgKyBpICsgIikiLCAiLTEiKQorICAgIHNob3VsZEJlKCJ2aWV3Lmdl
dFVpbnQ4KCIgKyBpICsgIikiLCAiMjU1IikKKyAgICBzaG91bGRCZSgidmlldy5nZXRJbnQxNigi
ICsgaSArICIpIiwgIi0xIikKKyAgICBzaG91bGRCZSgidmlldy5nZXRVaW50MTYoIiArIGkgKyAi
KSIsICI2NTUzNSIpCisgICAgc2hvdWxkQmUoInZpZXcuZ2V0SW50MzIoIiArIGkgKyAiKSIsICIt
MSIpCisgICAgc2hvdWxkQmUoInZpZXcuZ2V0VWludDMyKCIgKyBpICsgIikiLCAiNDI5NDk2NzI5
NSIpCisKKyAgICBjbGVhclZpZXcodmlldykKKyAgICB2aWV3LnNldEludDgoaSwgLTEgfCAwKQor
ICAgIHNob3VsZEJlVHJ1ZSgidmlldy5nZXRJbnQ4KCIgKyBpICsgIikgPCAwIikKKyAgICBzaG91
bGRCZVRydWUoInZpZXcuZ2V0SW50OCgiICsgaSArICIsdHJ1ZSkgPCAwIikKKyAgICBzaG91bGRC
ZVRydWUoInZpZXcuZ2V0SW50MTYoIiArIGkgKyAiKSA8IDAiKQorICAgIHNob3VsZEJlRmFsc2Uo
InZpZXcuZ2V0SW50MTYoIiArIGkgKyAiLHRydWUpIDwgMCIpCisgICAgc2hvdWxkQmVUcnVlKCJ2
aWV3LmdldEludDMyKCIgKyBpICsgIikgPCAwIikKKyAgICBzaG91bGRCZUZhbHNlKCJ2aWV3Lmdl
dEludDMyKCIgKyBpICsgIix0cnVlKSA8IDAiKQorCisgICAgY2xlYXJWaWV3KHZpZXcpCisgICAg
dmlldy5zZXRVaW50MTYoaSwgMHg0MDAwKQorICAgIHNob3VsZEJlKCJ2aWV3LmdldEZsb2F0MzIo
IiArIGkgKyAiKSIsICIyIikKKyAgICBzaG91bGRCZVRydWUoInZpZXcuZ2V0RmxvYXQzMigiICsg
aSArICIsdHJ1ZSkgIT0gMi4wIikKKworICAgIGNsZWFyVmlldyh2aWV3KQorICAgIHZpZXcuc2V0
VWludDE2KGksIDB4YzAwMCkKKyAgICBzaG91bGRCZSgidmlldy5nZXRGbG9hdDMyKCIgKyBpICsg
IikiLCAiLTIiKQorICAgIHNob3VsZEJlVHJ1ZSgidmlldy5nZXRGbG9hdDMyKCIgKyBpICsgIix0
cnVlKSAhPSAtMi4wIikKKworICAgIGNsZWFyVmlldyh2aWV3KQorICAgIHZpZXcuc2V0VWludDMy
KGksIDB4M2ZiNTA0ZjMpCisgICAgc2hvdWxkQmVUcnVlKCJNYXRoLmFicyh2aWV3LmdldEZsb2F0
MzIoIiArIGkgKyAiKSAtIE1hdGguU1FSVDIpIDwgMC4wMDAwMDAxIikKKyAgICBzaG91bGRCZVRy
dWUoIk1hdGguYWJzKHZpZXcuZ2V0RmxvYXQzMigiICsgaSArICIsdHJ1ZSkgLSBNYXRoLlNRUlQy
KSA+IDAuMDAwMDAwMSIpCisKKyAgICBjbGVhclZpZXcodmlldykKKyAgICB2aWV3LnNldFVpbnQ4
KGksIDB4N2YpCisgICAgdmlldy5zZXRVaW50OChpICsgMSwgMHg4MCkKKyAgICB2aWV3LnNldFVp
bnQ4KGkgKyAzLCAweDAxKQorICAgIHNob3VsZEJlTmFOKCJ2aWV3LmdldEZsb2F0MzIoIiArIGkg
KyAiKSIpCisgICAgc2hvdWxkQmVGYWxzZSgiaXNOYU4odmlldy5nZXRGbG9hdDMyKCIgKyBpICsg
Iix0cnVlKSkiKQorCisgICAgY2xlYXJWaWV3KHZpZXcpCisgICAgdmlldy5zZXRVaW50OChpLCAw
eGZmKQorICAgIHZpZXcuc2V0VWludDgoaSArIDEsIDB4YzApCisgICAgc2hvdWxkQmVOYU4oInZp
ZXcuZ2V0RmxvYXQzMigiICsgaSArICIpIikKKyAgICBzaG91bGRCZUZhbHNlKCJpc05hTih2aWV3
LmdldEZsb2F0MzIoIiArIGkgKyAiLHRydWUpKSIpCisKKyAgICBjbGVhclZpZXcodmlldykKKyAg
ICB2aWV3LnNldFVpbnQxNihpLCAweDNmZjApCisgICAgc2hvdWxkQmUoInZpZXcuZ2V0RmxvYXQ2
NCgiICsgaSArICIpIiwgIjEiKQorICAgIHNob3VsZEJlVHJ1ZSgidmlldy5nZXRGbG9hdDY0KCIg
KyBpICsgIix0cnVlKSAhPSAxIikKKworICAgIGNsZWFyVmlldyh2aWV3KQorICAgIHZpZXcuc2V0
VWludDE2KGksIDB4YmZmMCkKKyAgICBzaG91bGRCZSgidmlldy5nZXRGbG9hdDY0KCIgKyBpICsg
IikiLCAiLTEiKQorICAgIHNob3VsZEJlVHJ1ZSgidmlldy5nZXRGbG9hdDY0KCIgKyBpICsgIix0
cnVlKSAhPSAtMSIpCisKKyAgICBjbGVhclZpZXcodmlldykKKyAgICB2aWV3LnNldFVpbnQxNihp
LCAweDQwMDkpCisgICAgdmlldy5zZXRVaW50MTYoaSArIDIsIDB4MjFmYikKKyAgICB2aWV3LnNl
dFVpbnQxNihpICsgNCwgMHg1NDQ0KQorICAgIHZpZXcuc2V0VWludDE2KGkgKyA2LCAweDJkMTgp
CisgICAgc2hvdWxkQmVUcnVlKCJNYXRoLmFicyh2aWV3LmdldEZsb2F0NjQoIiArIGkgKyAiKSAt
IE1hdGguUEkpIDwgMC4wMDAwMDAwMDEiKQorfQo=
</data>
<flag name="review"
          id="250080"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>