<?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>90240</bug_id>
          
          <creation_ts>2012-06-28 20:19:49 -0700</creation_ts>
          <short_desc>DOMHTMLCollection::item may return a wrong element after namedItem is called</short_desc>
          <delta_ts>2012-06-29 00:00:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>90118</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>660090</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-28 20:19:49 -0700</bug_when>
    <thetext>DOMHTMLCollection::item may return a wrong element after namedItem is called</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660091</commentid>
    <comment_count>1</comment_count>
      <attachid>150071</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-28 20:22:20 -0700</bug_when>
    <thetext>Created attachment 150071
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660106</commentid>
    <comment_count>2</comment_count>
      <attachid>150071</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-28 20:45:35 -0700</bug_when>
    <thetext>Comment on attachment 150071
Fixes the bug

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

&gt; Source/WebCore/html/HTMLCollection.cpp:285
&gt;      m_cache.current = 0;

I guess I should have removed this line as well (it&apos;ll degrade the performance to some extent and needs to be removed in the bug 90118 but doesn&apos;t introduce any incorrect behavior).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660141</commentid>
    <comment_count>3</comment_count>
      <attachid>150071</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-06-28 22:33:23 -0700</bug_when>
    <thetext>Comment on attachment 150071
Fixes the bug

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

&gt; Source/WebCore/html/HTMLCollection.cpp:275
&gt; +    unsigned i = 0;
&gt;      for (Element* e = itemAfter(0); e; e = itemAfter(e)) {
&gt;          if (checkForNameMatch(e, /* checkName */ false, name)) {
&gt;              m_cache.current = e;
&gt; +            m_cache.position = i;
&gt;              return e;
&gt;          }
&gt;      }
&gt;  
&gt; +    i = 0;

You are not incrementing i.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660164</commentid>
    <comment_count>4</comment_count>
      <attachid>150089</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-28 23:20:06 -0700</bug_when>
    <thetext>Created attachment 150089
Fixed the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660170</commentid>
    <comment_count>5</comment_count>
      <attachid>150089</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-06-28 23:25:55 -0700</bug_when>
    <thetext>Comment on attachment 150089
Fixed the bug

r=me. nice API test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660178</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-28 23:38:46 -0700</bug_when>
    <thetext>Committed r121521: &lt;http://trac.webkit.org/changeset/121521&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660188</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-29 00:00:25 -0700</bug_when>
    <thetext>Nice!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150071</attachid>
            <date>2012-06-28 20:22:20 -0700</date>
            <delta_ts>2012-06-28 23:20:02 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-90240-20120628202702.patch</filename>
            <type>text/plain</type>
            <size>16082</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTUxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA2LTI4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERPTUhUTUxDb2xsZWN0aW9uOjpp
dGVtIG1heSByZXR1cm4gYSB3cm9uZyBlbGVtZW50IGFmdGVyIG5hbWVkSXRlbSBpcyBjYWxsZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMjQwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyB3
YXMgY2F1c2VkIGJ5IG5hbWVkSXRlbSB1cGRhdGluZyBtX2NhY2hlLmN1cnJlbnQgd2l0aG91dCB1
cGRhdGluZyBtX2NhY2hlLnBvc2l0aW9uLgorICAgICAgICBGaXhlZCB0aGUgYnVnIGJ5IHVwZGF0
aW5nIGJvdGguIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgYnVnIEkgZml4ZWQgaW4gcjEyMTQ3OC4K
KworICAgICAgICBXZWJLaXQgQVBJIFRlc3Q6IFdlYktpdDEuSFRNTENvbGxlY3Rpb25OYW1lZEl0
ZW1UZXN0CisKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW0pOgorCiAyMDEyLTA2LTI4ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBm
aWx0ZXIgdXJsKCkgZnVuY3Rpb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xs
ZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0
aW9uLmNwcAkocmV2aXNpb24gMTIxNTExKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29s
bGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MywxOCArMjYzLDIzIEBAIE5vZGUqIEhU
TUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgQXQKICAgICAvLyB0aGF0IGFyZSBhbGxvd2Vk
IGEgbmFtZSBhdHRyaWJ1dGUuCiAgICAgaW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsKIAorICAg
IHVuc2lnbmVkIGkgPSAwOwogICAgIGZvciAoRWxlbWVudCogZSA9IGl0ZW1BZnRlcigwKTsgZTsg
ZSA9IGl0ZW1BZnRlcihlKSkgewogICAgICAgICBpZiAoY2hlY2tGb3JOYW1lTWF0Y2goZSwgLyog
Y2hlY2tOYW1lICovIGZhbHNlLCBuYW1lKSkgewogICAgICAgICAgICAgbV9jYWNoZS5jdXJyZW50
ID0gZTsKKyAgICAgICAgICAgIG1fY2FjaGUucG9zaXRpb24gPSBpOwogICAgICAgICAgICAgcmV0
dXJuIGU7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpID0gMDsKICAgICBmb3IgKEVsZW1lbnQq
IGUgPSBpdGVtQWZ0ZXIoMCk7IGU7IGUgPSBpdGVtQWZ0ZXIoZSkpIHsKICAgICAgICAgaWYgKGNo
ZWNrRm9yTmFtZU1hdGNoKGUsIC8qIGNoZWNrTmFtZSAqLyB0cnVlLCBuYW1lKSkgewogICAgICAg
ICAgICAgbV9jYWNoZS5jdXJyZW50ID0gZTsKKyAgICAgICAgICAgIG1fY2FjaGUucG9zaXRpb24g
PSBpOwogICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgIH0KKyAgICAgICAgaSsrOwogICAg
IH0KIAogICAgIG1fY2FjaGUuY3VycmVudCA9IDA7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjE1MTQpCisrKyBUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNi0yOCAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBET01IVE1MQ29sbGVjdGlv
bjo6aXRlbSBtYXkgcmV0dXJuIGEgd3JvbmcgZWxlbWVudCBhZnRlciBuYW1lZEl0ZW0gaXMgY2Fs
bGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDI0
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IFdlYktpdCBBUEkgdGVzdCBzaW5jZSBuYW1lZEl0ZW0gaXMgbm90IHVzZWQgaW4gdGhlIEpTL1Y4
IGJpbmRpbmcgY29kZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWw6IENvcGllZCBmcm9tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1t
OiBDb3BpZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9IVE1MRm9ybUNvbGxl
Y3Rpb25OYW1lZEl0ZW0ubW0uCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAx
Mi0wNi0yOCAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBu
cnd0OiByZW1vdmUgdGhlICdnb29nbGUtY2hyb21lJyBwb3J0IGNvZGUKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMjE1MTEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NzMsNiArNzMsOCBAQAogCQk5M0Y3RTg2RjE0REM4RTVDMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi87IH07CiAJCTlC
MjZGQzZDMTU5RDA2MTAwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI2RkM2QjE1
OUQwNjEwMDBDQzM3NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLm1tICovOyB9Owog
CQk5QjI2RkNDQTE1OUQxNkRFMDBDQzM3NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVt
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIyNkZDQjQxNTlEMTVFNzAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRl
bS5odG1sICovOyB9OworCQk5QjRGOEZBNDE1OUQ1MkIxMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rp
b25OYW1lZEl0ZW0ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjRGOEZBMzE1OUQ1MkIxMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0u
bW0gKi87IH07CisJCTlCNEY4RkE3MTU5RDUyREQwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5h
bWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCNEY4RkE2MTU5RDUyQ0EwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVk
SXRlbS5odG1sICovOyB9OwogCQlBN0E5NjZEQjE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFy
aXRobWV0aWNPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3QTk2NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRp
Y09wZXJhdGlvbnMuY3BwICovOyB9OwogCQlCNTVGMTFBMDE1MTY4MzRGMDA5MTU5MTYgLyogQXR0
cmlidXRlZFN0cmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEI1NUYxMTlGMTUxNjgzNEYwMDkxNTkxNiAvKiBBdHRyaWJ1dGVkU3RyaW5nLm1tICov
OyB9OwogCQlCNTVGMTFCNzE1MTdEMDMzMDA5MTU5MTYgLyogYXR0cmlidXRlZFN0cmluZ0N1c3Rv
bUZvbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCNTVGMTFCMDE1MTdBMkM0MDA5MTU5MTYgLyogYXR0cmlidXRlZFN0cmluZ0N1c3Rv
bUZvbnQuaHRtbCAqLzsgfTsKQEAgLTE4OCw2ICsxOTAsNyBAQAogCQkJCUI1NUYxMUI3MTUxN0Qw
MzMwMDkxNTkxNiAvKiBhdHRyaWJ1dGVkU3RyaW5nQ3VzdG9tRm9udC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTc2RTE4MkRGMTU0NzY3RTYwMEYxRkFERCAvKiBhdXRvLXN1Ym1pdHRp
bmctZm9ybS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNDJCMjczMTUxN0M4Qzgw
MEMzMkIxOSAvKiBDb250ZXh0TWVudUNhbkNvcHlVUkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKKwkJCQk5QjRGOEZBNzE1OUQ1MkREMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0
ZW0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5QjI2RkNDQTE1OUQxNkRFMDBDQzM3
NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJRTEyMjBEQ0ExNTVCMjhBQTAwMTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdp
dGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
NTE3RTdFMDQxNTExMTlDMTAwRDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjg0LDYgKzI4Nyw4
IEBACiAJCTkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjI2RkM2QjE1OUQwNjEwMDBDQzM3NjUgLyog
SFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjI2RkNCNDE1OUQxNUU3MDBDQzM3NjUgLyogSFRNTEZvcm1D
b2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBIVE1M
Rm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUI0RjhGQTMxNTlENTJCMTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSFRNTENvbGxlY3Rpb25O
YW1lZEl0ZW0ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNEY4RkE2MTU5RDUy
Q0EwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTdBOTY2REExNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0
aG1ldGljT3BlcmF0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwOyBwYXRoID0gV1RGL0NoZWNrZWRBcml0
aG1ldGljT3BlcmF0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1NUYx
MTlGMTUxNjgzNEYwMDkxNTkxNiAvKiBBdHRyaWJ1dGVkU3RyaW5nLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXR0cmlidXRlZFN0cmluZy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU1RjExQjAxNTE3QTJDNDAwOTE1OTE2IC8qIGF0dHJpYnV0
ZWRTdHJpbmdDdXN0b21Gb250Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBhdHRy
aWJ1dGVkU3RyaW5nQ3VzdG9tRm9udC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNjYzLDYgKzY2OCw3IEBACiAJCQkJQzA3RTZDQUUxM0ZENjc2NTAwMzhCMjJCIC8qIER5bmFt
aWNEZXZpY2VTY2FsZUZhY3Rvci5tbSAqLywKIAkJCQkzNzc2QkM2MjE1MDk0NkJDMDA0M0E2NkQg
LyogRGV2aWNlU2NhbGVGYWN0b3JJbkRhc2hib2FyZFJlZ2lvbnMubW0gKi8sCiAJCQkJOTM5QkE5
MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNrLm1tICovLAorCQkJ
CTlCNEY4RkEzMTU5RDUyQjEwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAq
LywKIAkJCQk5QjI2RkM2QjE1OUQwNjEwMDBDQzM3NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFt
ZWRJdGVtLm1tICovLAogCQkJCUM1MDdFOEE2MTRDNjU0NUIwMDVENkIzQiAvKiBJbnNwZWN0b3JC
YXIubW0gKi8sCiAJCQkJRTEyMjBEOUYxNTVCMjU0ODAwMTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlz
YWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tICovLApAQCAtNjg3LDYgKzY5Myw3IEBA
CiAJCQkJMzc5MDI4QjgxNEZBQkU0OTAwN0U2QjQzIC8qIGFjY2VwdHNGaXJzdE1vdXNlLmh0bWwg
Ki8sCiAJCQkJNTE0MkIyNzIxNTE3Qzg5MTAwQzMyQjE5IC8qIENvbnRleHRNZW51Q2FuQ29weVVS
TC5odG1sICovLAogCQkJCTM3REM2NzhGMTQwRDdEM0EwMEFCQ0NEQiAvKiBET01SYW5nZU9mU3Ry
aW5nLmh0bWwgKi8sCisJCQkJOUI0RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0
aW9uTmFtZWRJdGVtLmh0bWwgKi8sCiAJCQkJOUIyNkZDQjQxNTlEMTVFNzAwQ0MzNzY1IC8qIEhU
TUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICovLAogCQkJCUUxMjIwREM5MTU1QjI4N0Qw
MDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5o
dG1sICovLAogCQkJCTUxN0U3RTAzMTUxMTE4NzUwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5l
V2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLywKQEAgLTg5OSw2ICs5MDYsNyBAQAog
CQkJCTUxRTkzMDE3MTU2QjEzRTEwMDRDOTlERiAvKiBXS1BhZ2VHZXRTY2FsZUZhY3Rvck5vdFpl
cm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJCOENGOTYxNTg2OENGMDAwMjgxMDUzIC8qIFNl
dERvY3VtZW50VVJJLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIyNkZDNkMxNTlEMDYxMDAwQ0Mz
NzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTlCNEY4RkE0MTU5RDUyQjEwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTENv
bGxlY3Rpb25OYW1lZEl0ZW0uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9IVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sCShyZXZpc2lvbiAxMjE1MTEp
CShmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxGb3JtQ29sbGVjdGlvbk5h
bWVkSXRlbS5odG1sOjEyMTUxMSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hU
TUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8Zm9ybT4KKyAgICA8aW5wdXQgdHlw
ZT0idGV4dCIgbmFtZT0ibmFtZUZvclR3b1RleHRGaWVsZHMiIHZhbHVlPSJmaXJzdEl0ZW0iPgor
ICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lRm9yVHdvVGV4dEZpZWxkcyIgdmFsdWU9
InNlY29uZEl0ZW0iPgorPC9mb3JtPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9IVE1MQ29sbGVjdGlvbk5hbWVk
SXRlbS5odG1sCShyZXZpc2lvbiAxMjE1MTEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9IVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkg
KzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgotPGZvcm0+Ci0gICAgPGlu
cHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWVGb3JUd29UZXh0RmllbGRzIiB2YWx1ZT0iZmlyc3RJ
dGVtIj4KLSAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibmFtZUZvclR3b1RleHRGaWVsZHMi
IHZhbHVlPSJzZWNvbmRJdGVtIj4KLTwvZm9ybT4KKzxpbWcgbmFtZT0ibmFtZUZvclR3b0ltYWdl
cyIgdGl0bGU9ImZpcnN0SXRlbSI+Cis8aW1nIG5hbWU9Im5hbWVGb3JUd29JbWFnZXMiIHRpdGxl
PSJzZWNvbmRJdGVtIj4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tCShy
ZXZpc2lvbiAxMjE1MTEpCShmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxG
b3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5tbToxMjE1MTEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9IVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CisKKyNpbXBvcnQgPFdlYktpdC9ET00uaD4KKyNpbXBvcnQg
PFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgorCitAaW50ZXJmYWNlIEhUTUxGb3JtQ29sbGVjdGlv
bk5hbWVkSXRlbVRlc3QgOiBOU09iamVjdCB7Cit9CitAZW5kCisKK3N0YXRpYyBib29sIGRpZEZp
bmlzaExvYWQ7CisKK0BpbXBsZW1lbnRhdGlvbiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW1U
ZXN0CisKKy0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkaWRGaW5pc2hMb2FkRm9y
RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKK3sKKyAgICBkaWRGaW5pc2hMb2FkID0gdHJ1ZTsKK30K
K0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYktpdDEsIEhUTUxG
b3JtQ29sbGVjdGlvbk5hbWVkSXRlbVRlc3QpCit7CisgICAgUmV0YWluUHRyPFdlYlZpZXc+IHdl
YlZpZXcoQWRvcHROUywgW1tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgMTIwLCAyMDApIGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOm5pbF0pOworICAgIFJldGFp
blB0cjxIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW1UZXN0PiB0ZXN0Q29udHJvbGxlcihBZG9w
dE5TLCBbSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtVGVzdCBuZXddKTsKKworICAgIHdlYlZp
ZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSB0ZXN0Q29udHJvbGxlci5nZXQoKTsKKyAgICBb
W3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0KKyAgICAgICAgVVJMRm9yUmVzb3VyY2U6
QCJIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CisKKyAgICBVdGlsOjpydW4o
JmRpZEZpbmlzaExvYWQpOworICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKKworICAgIERPTURv
Y3VtZW50ICpkb2N1bWVudCA9IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lRG9jdW1lbnQ7CisgICAg
RE9NSFRNTEZvcm1FbGVtZW50ICpmb3JtID0gKERPTUhUTUxGb3JtRWxlbWVudCAqKVtkb2N1bWVu
dCBxdWVyeVNlbGVjdG9yOkAiZm9ybSJdOworICAgIFJldGFpblB0cjxET01IVE1MQ29sbGVjdGlv
bj4gY29sbGVjdGlvbiA9IFtmb3JtIGVsZW1lbnRzXTsKKworICAgIEVYUEVDVF9FUShbY29sbGVj
dGlvbi5nZXQoKSBsZW5ndGhdLCAodW5zaWduZWQpMik7CisgICAgRVhQRUNUX1dLX1NUUkVRKFtb
Y29sbGVjdGlvbi5nZXQoKSBpdGVtOjBdIHZhbHVlXSwgQCJmaXJzdEl0ZW0iKTsKKyAgICBFWFBF
Q1RfV0tfU1RSRVEoW1tjb2xsZWN0aW9uLmdldCgpIGl0ZW06MV0gdmFsdWVdLCBAInNlY29uZEl0
ZW0iKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW1tjb2xsZWN0aW9uLmdldCgpIG5hbWVkSXRlbTpA
Im5hbWVGb3JUd29UZXh0RmllbGRzIl0gdmFsdWVdLCBAImZpcnN0SXRlbSIpOworICAgIEVYUEVD
VF9XS19TVFJFUShbW2NvbGxlY3Rpb24uZ2V0KCkgaXRlbToxXSB2YWx1ZV0sIEAic2Vjb25kSXRl
bSIpOworICAgIEVYUEVDVF9XS19TVFJFUShbW2NvbGxlY3Rpb24uZ2V0KCkgaXRlbTowXSB2YWx1
ZV0sIEAiZmlyc3RJdGVtIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVt
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxDb2xs
ZWN0aW9uTmFtZWRJdGVtLm1tCShyZXZpc2lvbiAxMjE1MTEpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9IVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzIsMTMgKzMyLDEzIEBACiAjaW1wb3J0IDxXZWJLaXQvRE9NLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViVmlld1ByaXZhdGUuaD4KIAotQGludGVyZmFjZSBIVE1MRm9ybUNvbGxlY3Rpb25OYW1l
ZEl0ZW1UZXN0IDogTlNPYmplY3QgeworQGludGVyZmFjZSBIVE1MQ29sbGVjdGlvbk5hbWVkSXRl
bVRlc3QgOiBOU09iamVjdCB7CiB9CiBAZW5kCiAKIHN0YXRpYyBib29sIGRpZEZpbmlzaExvYWQ7
CiAKLUBpbXBsZW1lbnRhdGlvbiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW1UZXN0CitAaW1w
bGVtZW50YXRpb24gSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW1UZXN0CiAKIC0gKHZvaWQpd2ViVmll
dzooV2ViVmlldyAqKXNlbmRlciBkaWRGaW5pc2hMb2FkRm9yRnJhbWU6KFdlYkZyYW1lICopZnJh
bWUKIHsKQEAgLTQ4LDI4ICs0OCwyNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5k
ZXIgZGlkRmluCiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAotVEVTVChXZWJLaXQxLCBI
VE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW1UZXN0KQorVEVTVChXZWJLaXQxLCBIVE1MQ29sbGVj
dGlvbk5hbWVkSXRlbVRlc3QpCiB7CiAgICAgUmV0YWluUHRyPFdlYlZpZXc+IHdlYlZpZXcoQWRv
cHROUywgW1tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTIw
LCAyMDApIGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOm5pbF0pOwotICAgIFJldGFpblB0cjxIVE1M
Rm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW1UZXN0PiB0ZXN0Q29udHJvbGxlcihBZG9wdE5TLCBbSFRN
TEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtVGVzdCBuZXddKTsKKyAgICBSZXRhaW5QdHI8SFRNTENv
bGxlY3Rpb25OYW1lZEl0ZW1UZXN0PiB0ZXN0Q29udHJvbGxlcihBZG9wdE5TLCBbSFRNTENvbGxl
Y3Rpb25OYW1lZEl0ZW1UZXN0IG5ld10pOwogCiAgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWRE
ZWxlZ2F0ZSA9IHRlc3RDb250cm9sbGVyLmdldCgpOwogICAgIFtbd2ViVmlldy5nZXQoKSBtYWlu
RnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXQotICAgICAgICBVUkxGb3JSZXNvdXJjZTpAIkhUTUxGb3JtQ29sbGVjdGlv
bk5hbWVkSXRlbSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl1dXTsKKyAgICAgICAgVVJMRm9yUmVzb3VyY2U6QCJIVE1MQ29sbGVj
dGlvbk5hbWVkSXRlbSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKIAogICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7
CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50
ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1bWVudDsKLSAgICBET01IVE1MRm9ybUVsZW1l
bnQgKmZvcm0gPSAoRE9NSFRNTEZvcm1FbGVtZW50ICopW2RvY3VtZW50IHF1ZXJ5U2VsZWN0b3I6
QCJmb3JtIl07Ci0gICAgUmV0YWluUHRyPERPTUhUTUxDb2xsZWN0aW9uPiBjb2xsZWN0aW9uID0g
W2Zvcm0gZWxlbWVudHNdOworICAgIFJldGFpblB0cjxET01IVE1MQ29sbGVjdGlvbj4gY29sbGVj
dGlvbiA9IFtbZG9jdW1lbnQgYm9keV0gY2hpbGRyZW5dOwogCiAgICAgRVhQRUNUX0VRKFtjb2xs
ZWN0aW9uLmdldCgpIGxlbmd0aF0sICh1bnNpZ25lZCkyKTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEo
W1tjb2xsZWN0aW9uLmdldCgpIGl0ZW06MF0gdmFsdWVdLCBAImZpcnN0SXRlbSIpOwotICAgIEVY
UEVDVF9XS19TVFJFUShbW2NvbGxlY3Rpb24uZ2V0KCkgaXRlbToxXSB2YWx1ZV0sIEAic2Vjb25k
SXRlbSIpOwotICAgIEVYUEVDVF9XS19TVFJFUShbW2NvbGxlY3Rpb24uZ2V0KCkgbmFtZWRJdGVt
OkAibmFtZUZvclR3b1RleHRGaWVsZHMiXSB2YWx1ZV0sIEAiZmlyc3RJdGVtIik7Ci0gICAgRVhQ
RUNUX1dLX1NUUkVRKFtbY29sbGVjdGlvbi5nZXQoKSBpdGVtOjFdIHZhbHVlXSwgQCJzZWNvbmRJ
dGVtIik7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKFtbY29sbGVjdGlvbi5nZXQoKSBpdGVtOjBdIHZh
bHVlXSwgQCJmaXJzdEl0ZW0iKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoWyhET01IVE1MRWxlbWVu
dCopW2NvbGxlY3Rpb24uZ2V0KCkgaXRlbTowXSB0aXRsZV0sIEAiZmlyc3RJdGVtIik7CisgICAg
RVhQRUNUX1dLX1NUUkVRKFsoRE9NSFRNTEVsZW1lbnQqKVtjb2xsZWN0aW9uLmdldCgpIGl0ZW06
MV0gdGl0bGVdLCBAInNlY29uZEl0ZW0iKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoWyhET01IVE1M
RWxlbWVudCopW2NvbGxlY3Rpb24uZ2V0KCkgbmFtZWRJdGVtOkAibmFtZUZvclR3b0ltYWdlcyJd
IHRpdGxlXSwgQCJmaXJzdEl0ZW0iKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoWyhET01IVE1MRWxl
bWVudCopW2NvbGxlY3Rpb24uZ2V0KCkgaXRlbToxXSB0aXRsZV0sIEAic2Vjb25kSXRlbSIpOwor
ICAgIEVYUEVDVF9XS19TVFJFUShbKERPTUhUTUxFbGVtZW50KilbY29sbGVjdGlvbi5nZXQoKSBp
dGVtOjBdIHRpdGxlXSwgQCJmaXJzdEl0ZW0iKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150089</attachid>
            <date>2012-06-28 23:20:06 -0700</date>
            <delta_ts>2012-06-28 23:25:54 -0700</delta_ts>
            <desc>Fixed the bug</desc>
            <filename>bug-90240-20120628232447.patch</filename>
            <type>text/plain</type>
            <size>16397</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTUxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA2LTI4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERPTUhUTUxDb2xsZWN0aW9uOjpp
dGVtIG1heSByZXR1cm4gYSB3cm9uZyBlbGVtZW50IGFmdGVyIG5hbWVkSXRlbSBpcyBjYWxsZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMjQwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyB3
YXMgY2F1c2VkIGJ5IG5hbWVkSXRlbSB1cGRhdGluZyBtX2NhY2hlLmN1cnJlbnQgd2l0aG91dCB1
cGRhdGluZyBtX2NhY2hlLnBvc2l0aW9uLgorICAgICAgICBGaXhlZCB0aGUgYnVnIGJ5IHVwZGF0
aW5nIGJvdGguIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgYnVnIEkgZml4ZWQgaW4gcjEyMTQ3OC4K
KworICAgICAgICBXZWJLaXQgQVBJIFRlc3Q6IFdlYktpdDEuSFRNTENvbGxlY3Rpb25OYW1lZEl0
ZW1UZXN0CisKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW0pOgorCiAyMDEyLTA2LTI4ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBm
aWx0ZXIgdXJsKCkgZnVuY3Rpb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xs
ZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0
aW9uLmNwcAkocmV2aXNpb24gMTIxNTExKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29s
bGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MywyMSArMjYzLDI2IEBAIE5vZGUqIEhU
TUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgQXQKICAgICAvLyB0aGF0IGFyZSBhbGxvd2Vk
IGEgbmFtZSBhdHRyaWJ1dGUuCiAgICAgaW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsKIAorICAg
IHVuc2lnbmVkIGkgPSAwOwogICAgIGZvciAoRWxlbWVudCogZSA9IGl0ZW1BZnRlcigwKTsgZTsg
ZSA9IGl0ZW1BZnRlcihlKSkgewogICAgICAgICBpZiAoY2hlY2tGb3JOYW1lTWF0Y2goZSwgLyog
Y2hlY2tOYW1lICovIGZhbHNlLCBuYW1lKSkgewogICAgICAgICAgICAgbV9jYWNoZS5jdXJyZW50
ID0gZTsKKyAgICAgICAgICAgIG1fY2FjaGUucG9zaXRpb24gPSBpOwogICAgICAgICAgICAgcmV0
dXJuIGU7CiAgICAgICAgIH0KKyAgICAgICAgaSsrOwogICAgIH0KIAorICAgIGkgPSAwOwogICAg
IGZvciAoRWxlbWVudCogZSA9IGl0ZW1BZnRlcigwKTsgZTsgZSA9IGl0ZW1BZnRlcihlKSkgewog
ICAgICAgICBpZiAoY2hlY2tGb3JOYW1lTWF0Y2goZSwgLyogY2hlY2tOYW1lICovIHRydWUsIG5h
bWUpKSB7CiAgICAgICAgICAgICBtX2NhY2hlLmN1cnJlbnQgPSBlOworICAgICAgICAgICAgbV9j
YWNoZS5wb3NpdGlvbiA9IGk7CiAgICAgICAgICAgICByZXR1cm4gZTsKICAgICAgICAgfQorICAg
ICAgICBpKys7CiAgICAgfQogCi0gICAgbV9jYWNoZS5jdXJyZW50ID0gMDsKICAgICByZXR1cm4g
MDsKIH0KIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTIxNTE0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDYtMjggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgRE9NSFRNTENvbGxlY3Rpb246Oml0ZW0gbWF5IHJldHVybiBhIHdy
b25nIGVsZW1lbnQgYWZ0ZXIgbmFtZWRJdGVtIGlzIGNhbGxlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAyNDAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBXZWJLaXQgQVBJIHRlc3Qgc2luY2Ug
bmFtZWRJdGVtIGlzIG5vdCB1c2VkIGluIHRoZSBKUy9WOCBiaW5kaW5nIGNvZGUuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9IVE1MQ29sbGVjdGlvbk5hbWVk
SXRlbS5odG1sOiBDb3BpZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9IVE1M
Rm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9IVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbTogQ29waWVkIGZyb20gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLm1tLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTItMDYtMjggIERpcmsgUHJhbmtlICA8
ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgbnJ3dDogcmVtb3ZlIHRoZSAnZ29vZ2xl
LWNocm9tZScgcG9ydCBjb2RlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MTIxNTExKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDggQEAKIAkJOTNGN0U4
NkYxNERDOEU1QzAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1l
c19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGN0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZyYW1lc19CdW5kbGUuY3BwICovOyB9OwogCQk5QjI2RkM2QzE1OUQwNjEwMDBDQzM3NjUg
LyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNkZDNkIxNTlEMDYxMDAwQ0MzNzY1IC8qIEhUTUxG
b3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLzsgfTsKIAkJOUIyNkZDQ0ExNTlEMTZERTAwQ0Mz
NzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMjZGQ0I0MTU5RDE1RTcwMEND
Mzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCAqLzsgfTsKKwkJOUI0RjhG
QTQxNTlENTJCMTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI0RjhGQTMxNTlENTJCMTAw
MkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tICovOyB9OworCQk5QjRGOEZBNzE1
OUQ1MkREMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjRGOEZBNjE1OUQ1
MkNBMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCAqLzsgfTsKIAkJQTdB
OTY2REIxNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E5NjZEQTE0
MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLzsgfTsK
IAkJQjU1RjExQTAxNTE2ODM0RjAwOTE1OTE2IC8qIEF0dHJpYnV0ZWRTdHJpbmcubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTVGMTE5RjE1MTY4MzRG
MDA5MTU5MTYgLyogQXR0cmlidXRlZFN0cmluZy5tbSAqLzsgfTsKIAkJQjU1RjExQjcxNTE3RDAz
MzAwOTE1OTE2IC8qIGF0dHJpYnV0ZWRTdHJpbmdDdXN0b21Gb250Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU1RjExQjAxNTE3QTJD
NDAwOTE1OTE2IC8qIGF0dHJpYnV0ZWRTdHJpbmdDdXN0b21Gb250Lmh0bWwgKi87IH07CkBAIC0x
ODgsNiArMTkwLDcgQEAKIAkJCQlCNTVGMTFCNzE1MTdEMDMzMDA5MTU5MTYgLyogYXR0cmlidXRl
ZFN0cmluZ0N1c3RvbUZvbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3NkUxODJE
RjE1NDc2N0U2MDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQk1MTQyQjI3MzE1MTdDOEM4MDBDMzJCMTkgLyogQ29udGV4dE1lbnVD
YW5Db3B5VVJMLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJOUI0RjhGQTcxNTlENTJE
RDAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJOUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlv
bk5hbWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUUxMjIwRENBMTU1QjI4
QUEwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxN0U3RTA0MTUxMTE5QzEwMEQwQjAw
OCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKQEAgLTI4NCw2ICsyODcsOCBAQAogCQk5M0Y3RTg2RTE0REM4RTVC
MDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUIyNkZDNkIxNTlEMDYxMDAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVk
SXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhUTUxGb3Jt
Q29sbGVjdGlvbk5hbWVkSXRlbS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIy
NkZDQjQxNTlEMTVFNzAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVt
Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNEY4RkEzMTU5RDUyQjEwMDJE
OUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5QjRGOEZBNjE1OUQ1MkNBMDAyRDlGOTQgLyogSFRNTENvbGxl
Y3Rpb25OYW1lZEl0ZW0uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEhUTUxDb2xs
ZWN0aW9uTmFtZWRJdGVtLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QTk2
NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2hlY2tlZEFyaXRobWV0aWNPcGVy
YXRpb25zLmNwcDsgcGF0aCA9IFdURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTVGMTE5RjE1MTY4MzRGMDA5MTU5MTYgLyog
QXR0cmlidXRlZFN0cmluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEF0dHJpYnV0ZWRTdHJpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1
NUYxMUIwMTUxN0EyQzQwMDkxNTkxNiAvKiBhdHRyaWJ1dGVkU3RyaW5nQ3VzdG9tRm9udC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gYXR0cmlidXRlZFN0cmluZ0N1c3RvbUZvbnQu
aHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2Myw2ICs2NjgsNyBAQAogCQkJ
CUMwN0U2Q0FFMTNGRDY3NjUwMDM4QjIyQiAvKiBEeW5hbWljRGV2aWNlU2NhbGVGYWN0b3IubW0g
Ki8sCiAJCQkJMzc3NkJDNjIxNTA5NDZCQzAwNDNBNjZEIC8qIERldmljZVNjYWxlRmFjdG9ySW5E
YXNoYm9hcmRSZWdpb25zLm1tICovLAogCQkJCTkzOUJBOTE2MTQxMDM0MTIwMDFBMDFCRCAvKiBE
ZXZpY2VTY2FsZUZhY3Rvck9uQmFjay5tbSAqLywKKwkJCQk5QjRGOEZBMzE1OUQ1MkIxMDAyRDlG
OTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCiAJCQkJOUIyNkZDNkIxNTlEMDYx
MDAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLywKIAkJCQlDNTA3
RThBNjE0QzY1NDVCMDA1RDZCM0IgLyogSW5zcGVjdG9yQmFyLm1tICovLAogCQkJCUUxMjIwRDlG
MTU1QjI1NDgwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWRE
ZWxlZ2F0ZS5tbSAqLywKQEAgLTY4Nyw2ICs2OTMsNyBAQAogCQkJCTM3OTAyOEI4MTRGQUJFNDkw
MDdFNkI0MyAvKiBhY2NlcHRzRmlyc3RNb3VzZS5odG1sICovLAogCQkJCTUxNDJCMjcyMTUxN0M4
OTEwMEMzMkIxOSAvKiBDb250ZXh0TWVudUNhbkNvcHlVUkwuaHRtbCAqLywKIAkJCQkzN0RDNjc4
RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovLAorCQkJCTlCNEY4
RkE2MTU5RDUyQ0EwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICovLAog
CQkJCTlCMjZGQ0I0MTU5RDE1RTcwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0
ZW0uaHRtbCAqLywKIAkJCQlFMTIyMERDOTE1NUIyODdEMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVE
aXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLywKIAkJCQk1MTdFN0UwMzE1
MTExODc1MDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVn
YXRlLmh0bWwgKi8sCkBAIC04OTksNiArOTA2LDcgQEAKIAkJCQk1MUU5MzAxNzE1NkIxM0UxMDA0
Qzk5REYgLyogV0tQYWdlR2V0U2NhbGVGYWN0b3JOb3RaZXJvLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUyQjhDRjk2MTU4NjhDRjAwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTlCMjZGQzZDMTU5RDA2MTAwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rp
b25OYW1lZEl0ZW0ubW0gaW4gU291cmNlcyAqLywKKwkJCQk5QjRGOEZBNDE1OUQ1MkIxMDAyRDlG
OTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTENvbGxlY3Rp
b25OYW1lZEl0ZW0uaHRtbAkocmV2aXNpb24gMTIxNTExKQkoZnJvbSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9IVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbDoxMjE1MTEpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9IVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPGZvcm0+CisgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWVGb3JU
d29UZXh0RmllbGRzIiB2YWx1ZT0iZmlyc3RJdGVtIj4KKyAgICA8aW5wdXQgdHlwZT0idGV4dCIg
bmFtZT0ibmFtZUZvclR3b1RleHRGaWVsZHMiIHZhbHVlPSJzZWNvbmRJdGVtIj4KKzwvZm9ybT4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hU
TUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbAkocmV2aXNpb24gMTIx
NTExKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTENvbGxlY3Rpb25OYW1l
ZEl0ZW0uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KLTxmb3JtPgotICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJu
YW1lRm9yVHdvVGV4dEZpZWxkcyIgdmFsdWU9ImZpcnN0SXRlbSI+Ci0gICAgPGlucHV0IHR5cGU9
InRleHQiIG5hbWU9Im5hbWVGb3JUd29UZXh0RmllbGRzIiB2YWx1ZT0ic2Vjb25kSXRlbSI+Ci08
L2Zvcm0+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlkRm9yVHdvVGV4dEZpZWxkcyIgdmFsdWU9
ImZpcnN0SXRlbSI+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlkRm9yVHdvVGV4dEZpZWxkcyIg
dmFsdWU9InNlY29uZEl0ZW0iPgorPGltZyBuYW1lPSJuYW1lRm9yVHdvSW1hZ2VzIiB0aXRsZT0i
dGhpcmRJdGVtIj4KKzxpbWcgbmFtZT0ibmFtZUZvclR3b0ltYWdlcyIgdGl0bGU9ImZvdXJ0aEl0
ZW0iPgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0JKHJldmlzaW9uIDEy
MTUxMSkJKGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTEZvcm1Db2xsZWN0
aW9uTmFtZWRJdGVtLm1tOjEyMTUxMSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworI2ltcG9ydCA8V2ViS2l0L0RPTS5oPgorI2ltcG9ydCA8V2ViS2l0L1dl
YlZpZXdQcml2YXRlLmg+CisKK0BpbnRlcmZhY2UgSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVt
VGVzdCA6IE5TT2JqZWN0IHsKK30KK0BlbmQKKworc3RhdGljIGJvb2wgZGlkRmluaXNoTG9hZDsK
KworQGltcGxlbWVudGF0aW9uIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbVRlc3QKKworLSAo
dm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZEZpbmlzaExvYWRGb3JGcmFtZTooV2Vi
RnJhbWUgKilmcmFtZQoreworICAgIGRpZEZpbmlzaExvYWQgPSB0cnVlOworfQorQGVuZAorCitu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV2ViS2l0MSwgSFRNTEZvcm1Db2xsZWN0
aW9uTmFtZWRJdGVtVGVzdCkKK3sKKyAgICBSZXRhaW5QdHI8V2ViVmlldz4gd2ViVmlldyhBZG9w
dE5TLCBbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMjAs
IDIwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7CisgICAgUmV0YWluUHRyPEhUTUxG
b3JtQ29sbGVjdGlvbk5hbWVkSXRlbVRlc3Q+IHRlc3RDb250cm9sbGVyKEFkb3B0TlMsIFtIVE1M
Rm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW1UZXN0IG5ld10pOworCisgICAgd2ViVmlldy5nZXQoKS5m
cmFtZUxvYWREZWxlZ2F0ZSA9IHRlc3RDb250cm9sbGVyLmdldCgpOworICAgIFtbd2ViVmlldy5n
ZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W1tOU0J1bmRsZSBtYWluQnVuZGxlXQorICAgICAgICBVUkxGb3JSZXNvdXJjZTpAIkhUTUxGb3Jt
Q29sbGVjdGlvbk5hbWVkSXRlbSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKKworICAgIFV0aWw6OnJ1bigmZGlkRmluaXNo
TG9hZCk7CisgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOworCisgICAgRE9NRG9jdW1lbnQgKmRv
Y3VtZW50ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1bWVudDsKKyAgICBET01IVE1MRm9y
bUVsZW1lbnQgKmZvcm0gPSAoRE9NSFRNTEZvcm1FbGVtZW50ICopW2RvY3VtZW50IHF1ZXJ5U2Vs
ZWN0b3I6QCJmb3JtIl07CisgICAgUmV0YWluUHRyPERPTUhUTUxDb2xsZWN0aW9uPiBjb2xsZWN0
aW9uID0gW2Zvcm0gZWxlbWVudHNdOworCisgICAgRVhQRUNUX0VRKFtjb2xsZWN0aW9uLmdldCgp
IGxlbmd0aF0sICh1bnNpZ25lZCkyKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW1tjb2xsZWN0aW9u
LmdldCgpIGl0ZW06MF0gdmFsdWVdLCBAImZpcnN0SXRlbSIpOworICAgIEVYUEVDVF9XS19TVFJF
UShbW2NvbGxlY3Rpb24uZ2V0KCkgaXRlbToxXSB2YWx1ZV0sIEAic2Vjb25kSXRlbSIpOworICAg
IEVYUEVDVF9XS19TVFJFUShbW2NvbGxlY3Rpb24uZ2V0KCkgbmFtZWRJdGVtOkAibmFtZUZvclR3
b1RleHRGaWVsZHMiXSB2YWx1ZV0sIEAiZmlyc3RJdGVtIik7CisgICAgRVhQRUNUX1dLX1NUUkVR
KFtbY29sbGVjdGlvbi5nZXQoKSBpdGVtOjFdIHZhbHVlXSwgQCJzZWNvbmRJdGVtIik7CisgICAg
RVhQRUNUX1dLX1NUUkVRKFtbY29sbGVjdGlvbi5nZXQoKSBpdGVtOjBdIHZhbHVlXSwgQCJmaXJz
dEl0ZW0iKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTENvbGxlY3Rpb25OYW1l
ZEl0ZW0ubW0JKHJldmlzaW9uIDEyMTUxMSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMyAr
MzIsMTMgQEAKICNpbXBvcnQgPFdlYktpdC9ET00uaD4KICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3
UHJpdmF0ZS5oPgogCi1AaW50ZXJmYWNlIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbVRlc3Qg
OiBOU09iamVjdCB7CitAaW50ZXJmYWNlIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtVGVzdCA6IE5T
T2JqZWN0IHsKIH0KIEBlbmQKIAogc3RhdGljIGJvb2wgZGlkRmluaXNoTG9hZDsKIAotQGltcGxl
bWVudGF0aW9uIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbVRlc3QKK0BpbXBsZW1lbnRhdGlv
biBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbVRlc3QKIAogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3
ICopc2VuZGVyIGRpZEZpbmlzaExvYWRGb3JGcmFtZTooV2ViRnJhbWUgKilmcmFtZQogewpAQCAt
NDgsMjggKzQ4LDMzIEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkaWRGaW4K
IAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCi1URVNUKFdlYktpdDEsIEhUTUxGb3JtQ29s
bGVjdGlvbk5hbWVkSXRlbVRlc3QpCitURVNUKFdlYktpdDEsIEhUTUxDb2xsZWN0aW9uTmFtZWRJ
dGVtVGVzdCkKIHsKICAgICBSZXRhaW5QdHI8V2ViVmlldz4gd2ViVmlldyhBZG9wdE5TLCBbW1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMjAsIDIwMCkgZnJh
bWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7Ci0gICAgUmV0YWluUHRyPEhUTUxGb3JtQ29sbGVj
dGlvbk5hbWVkSXRlbVRlc3Q+IHRlc3RDb250cm9sbGVyKEFkb3B0TlMsIFtIVE1MRm9ybUNvbGxl
Y3Rpb25OYW1lZEl0ZW1UZXN0IG5ld10pOworICAgIFJldGFpblB0cjxIVE1MQ29sbGVjdGlvbk5h
bWVkSXRlbVRlc3Q+IHRlc3RDb250cm9sbGVyKEFkb3B0TlMsIFtIVE1MQ29sbGVjdGlvbk5hbWVk
SXRlbVRlc3QgbmV3XSk7CiAKICAgICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0g
dGVzdENvbnRyb2xsZXIuZ2V0KCk7CiAgICAgW1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5k
bGVdCi0gICAgICAgIFVSTEZvclJlc291cmNlOkAiSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVt
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXV1dOworICAgICAgICBVUkxGb3JSZXNvdXJjZTpAIkhUTUxDb2xsZWN0aW9uTmFtZWRJ
dGVtIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXV1dOwogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKICAgICBkaWRG
aW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3
LmdldCgpLm1haW5GcmFtZURvY3VtZW50OwotICAgIERPTUhUTUxGb3JtRWxlbWVudCAqZm9ybSA9
IChET01IVE1MRm9ybUVsZW1lbnQgKilbZG9jdW1lbnQgcXVlcnlTZWxlY3RvcjpAImZvcm0iXTsK
LSAgICBSZXRhaW5QdHI8RE9NSFRNTENvbGxlY3Rpb24+IGNvbGxlY3Rpb24gPSBbZm9ybSBlbGVt
ZW50c107CisgICAgUmV0YWluUHRyPERPTUhUTUxDb2xsZWN0aW9uPiBjb2xsZWN0aW9uID0gW1tk
b2N1bWVudCBib2R5XSBjaGlsZHJlbl07CiAKLSAgICBFWFBFQ1RfRVEoW2NvbGxlY3Rpb24uZ2V0
KCkgbGVuZ3RoXSwgKHVuc2lnbmVkKTIpOworICAgIEVYUEVDVF9FUShbY29sbGVjdGlvbi5nZXQo
KSBsZW5ndGhdLCAodW5zaWduZWQpNCk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKFtbY29sbGVjdGlv
bi5nZXQoKSBpdGVtOjBdIHZhbHVlXSwgQCJmaXJzdEl0ZW0iKTsKICAgICBFWFBFQ1RfV0tfU1RS
RVEoW1tjb2xsZWN0aW9uLmdldCgpIGl0ZW06MV0gdmFsdWVdLCBAInNlY29uZEl0ZW0iKTsKLSAg
ICBFWFBFQ1RfV0tfU1RSRVEoW1tjb2xsZWN0aW9uLmdldCgpIG5hbWVkSXRlbTpAIm5hbWVGb3JU
d29UZXh0RmllbGRzIl0gdmFsdWVdLCBAImZpcnN0SXRlbSIpOworICAgIEVYUEVDVF9XS19TVFJF
UShbW2NvbGxlY3Rpb24uZ2V0KCkgbmFtZWRJdGVtOkAiaWRGb3JUd29UZXh0RmllbGRzIl0gdmFs
dWVdLCBAImZpcnN0SXRlbSIpOwogICAgIEVYUEVDVF9XS19TVFJFUShbW2NvbGxlY3Rpb24uZ2V0
KCkgaXRlbToxXSB2YWx1ZV0sIEAic2Vjb25kSXRlbSIpOwogICAgIEVYUEVDVF9XS19TVFJFUShb
W2NvbGxlY3Rpb24uZ2V0KCkgaXRlbTowXSB2YWx1ZV0sIEAiZmlyc3RJdGVtIik7CisKKyAgICBF
WFBFQ1RfV0tfU1RSRVEoWyhET01IVE1MRWxlbWVudCopW2NvbGxlY3Rpb24uZ2V0KCkgaXRlbToy
XSB0aXRsZV0sIEAidGhpcmRJdGVtIik7CisgICAgRVhQRUNUX1dLX1NUUkVRKFsoRE9NSFRNTEVs
ZW1lbnQqKVtjb2xsZWN0aW9uLmdldCgpIGl0ZW06M10gdGl0bGVdLCBAImZvdXJ0aEl0ZW0iKTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoWyhET01IVE1MRWxlbWVudCopW2NvbGxlY3Rpb24uZ2V0KCkg
bmFtZWRJdGVtOkAibmFtZUZvclR3b0ltYWdlcyJdIHRpdGxlXSwgQCJ0aGlyZEl0ZW0iKTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoWyhET01IVE1MRWxlbWVudCopW2NvbGxlY3Rpb24uZ2V0KCkgaXRl
bTozXSB0aXRsZV0sIEAiZm91cnRoSXRlbSIpOworICAgIEVYUEVDVF9XS19TVFJFUShbKERPTUhU
TUxFbGVtZW50KilbY29sbGVjdGlvbi5nZXQoKSBpdGVtOjJdIHRpdGxlXSwgQCJ0aGlyZEl0ZW0i
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>
<flag name="review"
          id="158271"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>