<?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>11109</bug_id>
          
          <creation_ts>2006-10-01 07:50:36 -0700</creation_ts>
          <short_desc>REGRESSION (r15471): menus are offset on eink.com</short_desc>
          <delta_ts>2007-01-26 04:44:03 -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>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.eink.com/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>GoogleBug, InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>11582</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>enadil</cc>
    
    <cc>hyatt</cc>
    
    <cc>jluisfa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>56877</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-10-01 07:50:36 -0700</bug_when>
    <thetext>The drop-down menus on eink.com are offset by 10px up and to the left since r15471 (fix for bug 9943). It turns out that the body&apos;s offsetLeft and offsetTop should be 0 (this part was fixed), but consequently the body&apos;s margins should be included in the offsetLeft/Top of any element whose offsetParent is the body. See the attached test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56878</commentid>
    <comment_count>1</comment_count>
      <attachid>10855</attachid>
    <who name="">mitz</who>
    <bug_when>2006-10-01 07:51:33 -0700</bug_when>
    <thetext>Created attachment 10855
Test case (expected values are based on Firefox and WinIE)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36424</commentid>
    <comment_count>2</comment_count>
      <attachid>12289</attachid>
    <who name="">mitz</who>
    <bug_when>2007-01-07 14:44:46 -0800</bug_when>
    <thetext>Created attachment 12289
[WIP] Patch without change log

The behavior is slightly more subtle - although the body element is always in the offsetParent hierarchy, if it&apos;s static it&apos;s skipped over in offsetTop/Left computation. This patch fixes eink.com and doesn&apos;t fail any layout tests, but I still need to verify that it doesn&apos;t silently break any of the tests that use offset*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36398</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-01-07 15:19:28 -0800</bug_when>
    <thetext>Double check quirks vs. strict mode here please to make sure the behavior in WinIE stays the same.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36345</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-08 08:23:04 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Double check quirks vs. strict mode here please to make sure the behavior in
&gt; WinIE stays the same.
&gt; 

Firefox behaves the same in both modes. IE&apos;s behavior is totally different: in strict mode it gives the body&apos;s true offsets, and in quirks mode it gives 0 and skips over the body regardless of whether it&apos;s positioned or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34509</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-17 04:10:52 -0800</bug_when>
    <thetext>*** Bug 12294 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34516</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-01-17 06:40:21 -0800</bug_when>
    <thetext>Per Bug 12294 Comment #5:

&lt;rdar://problem/4928707&gt;

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32637</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-25 12:25:43 -0800</bug_when>
    <thetext>I think this is affecting the new format of Google Image Search results: the box around the hovered result is broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32640</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-01-25 12:44:06 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think this is affecting the new format of Google Image Search results: the
&gt; box around the hovered result is broken.

That sounds like Bug 12330.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32649</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-25 14:33:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/4824760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32652</commentid>
    <comment_count>10</comment_count>
      <attachid>12674</attachid>
    <who name="">mitz</who>
    <bug_when>2007-01-25 14:40:49 -0800</bug_when>
    <thetext>Created attachment 12674
Match Firefox&apos;s offset{Left,Top} behavior for objects whose containing block is the root

Includes change log, layout test, and updated tests or results for tests that were relying on the old behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32668</commentid>
    <comment_count>11</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-01-25 22:25:16 -0800</bug_when>
    <thetext>How does this compare to how IE does it? This may require a layout expert like hyatt to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32669</commentid>
    <comment_count>12</comment_count>
      <attachid>12674</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-25 23:38:07 -0800</bug_when>
    <thetext>Comment on attachment 12674
Match Firefox&apos;s offset{Left,Top} behavior for objects whose containing block is the root

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32580</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-01-26 03:58:53 -0800</bug_when>
    <thetext>Landed in r19149.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32583</commentid>
    <comment_count>14</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-26 04:44:03 -0800</bug_when>
    <thetext>*** Bug 12330 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>10855</attachid>
            <date>2006-10-01 07:51:33 -0700</date>
            <delta_ts>2006-10-01 07:51:33 -0700</delta_ts>
            <desc>Test case (expected values are based on Firefox and WinIE)</desc>
            <filename>bodyMarginOffset.html</filename>
            <type>text/html</type>
            <size>578</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgogICAgPHNjcmlwdD4KICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICB7CiAgICAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CiAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKTsKICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgPSAiYm9keSBvZmZzZXRM
ZWZ0OiAiICsgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0ICsgIiAoc2hvdWxkIGJlIDApIgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIjxicj50YXJnZXQgb2Zmc2V0TGVmdDogIiAr
IHRhcmdldC5vZmZzZXRMZWZ0ICsgIiAoc2hvdWxkIGJlIDI3KSI7CiAgICAgICAgfQogICAgPC9z
Y3JpcHQ+CjwvaGVhZD4KPGJvZHkgc3R5bGU9InBhZGRpbmc6IDlweDsgbWFyZ2luOiAxMHB4IiBv
bmxvYWQ9InRlc3QoKSI+CiAgICA8dHQgaWQ9ImNvbnNvbGUiPjwvdHQ+CiAgICA8ZGl2IGlkPSJ0
YXJnZXQiIHN0eWxlPSJwYWRkaW5nOiA2cHg7IG1hcmdpbjogOHB4OyI+PC9kaXY+CjwvYm9keT4K
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12289</attachid>
            <date>2007-01-07 14:44:46 -0800</date>
            <delta_ts>2007-01-07 14:44:46 -0800</delta_ts>
            <desc>[WIP] Patch without change log</desc>
            <filename>11109_r0.patch</filename>
            <type>text/plain</type>
            <size>1721</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvY2xpY2stbmVhci1hbm9ueW1vdXMtdGFibGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NsaWNrLW5lYXItYW5v
bnltb3VzLXRhYmxlLmh0bWwJKHJldmlzaW9uIDE4NjQ5KQorKysgTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9jbGljay1uZWFyLWFub255bW91cy10YWJsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
Miw4ICsxMiw4IEBACiAgICAgICAgICAgICB2YXIgYmFzZVkgPSA4ICsgdGFyZ2V0Lm9mZnNldFRv
cDsKICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0YXJnZXQuY2hpbGRyZW4ubGVuZ3RoOyBp
KyspIHsKICAgICAgICAgICAgICAgICB2YXIgZGl2ID0gdGFyZ2V0LmNoaWxkcmVuW2ldOwotICAg
ICAgICAgICAgICAgIHZhciBjbGlja1ggPSBiYXNlWCArIHRhcmdldC5vZmZzZXRMZWZ0ICsgdGFy
Z2V0Lm9mZnNldFdpZHRoICsgNTsKLSAgICAgICAgICAgICAgICB2YXIgY2xpY2tZID0gYmFzZVkg
KyB0YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCArIDU7CisgICAgICAgICAg
ICAgICAgdmFyIGNsaWNrWCA9IGJhc2VYICsgZGl2Lm9mZnNldExlZnQgKyBkaXYub2Zmc2V0V2lk
dGggKyA1OworICAgICAgICAgICAgICAgIHZhciBjbGlja1kgPSBiYXNlWSArIGRpdi5vZmZzZXRU
b3AgKyBkaXYub2Zmc2V0SGVpZ2h0ICsgNTsKICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyhjbGlja1gsIGNsaWNrWSk7CiAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CiAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiAxODY0OSkKKysrIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxNCw2ICs2
MTQsOCBAQCBpbnQgUmVuZGVyT2JqZWN0OjpvZmZzZXRMZWZ0KCkgY29uc3QKICAgICAgICAgICAg
IHggKz0gY3Vyci0+eFBvcygpOwogICAgICAgICAgICAgY3VyciA9IGN1cnItPnBhcmVudCgpOwog
ICAgICAgICB9CisgICAgICAgIGlmIChvZmZzZXRQYXItPmlzQm9keSgpICYmICFvZmZzZXRQYXIt
PmlzUmVsUG9zaXRpb25lZCgpICYmICFvZmZzZXRQYXItPmlzUG9zaXRpb25lZCgpKQorICAgICAg
ICAgICAgeCArPSBvZmZzZXRQYXItPnhQb3MoKTsKICAgICB9CiAgICAgcmV0dXJuIHg7CiB9CkBA
IC02MzMsNiArNjM1LDggQEAgaW50IFJlbmRlck9iamVjdDo6b2Zmc2V0VG9wKCkgY29uc3QKICAg
ICAgICAgICAgICAgICB5ICs9IGN1cnItPnlQb3MoKTsKICAgICAgICAgICAgIGN1cnIgPSBjdXJy
LT5wYXJlbnQoKTsKICAgICAgICAgfQorICAgICAgICBpZiAob2Zmc2V0UGFyLT5pc0JvZHkoKSAm
JiAhb2Zmc2V0UGFyLT5pc1JlbFBvc2l0aW9uZWQoKSAmJiAhb2Zmc2V0UGFyLT5pc1Bvc2l0aW9u
ZWQoKSkKKyAgICAgICAgICAgIHkgKz0gb2Zmc2V0UGFyLT55UG9zKCk7CiAgICAgfQogICAgIHJl
dHVybiB5OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12674</attachid>
            <date>2007-01-25 14:40:49 -0800</date>
            <delta_ts>2007-01-25 23:38:07 -0800</delta_ts>
            <desc>Match Firefox&apos;s offset{Left,Top} behavior for objects whose containing block is the root</desc>
            <filename>11109_r1.patch</filename>
            <type>text/plain</type>
            <size>23021</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5MTMxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDctMDEtMjYgIE1pdHogUGV0dGVsICA8bWl0
ekB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gdGVzdCBhbmQgdXBkYXRlZCB0ZXN0cyBhbmQgcmVzdWx0cyBmb3IKKyAgICAgICAg
ICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEwOQorICAgICAgICAg
IFJFR1JFU1NJT04gKHIxNTQ3MSk6IG1lbnVzIGFyZSBvZmZzZXQgb24gZWluay5jb20KKyAgICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDgyNDc2MD4KKworICAgICAgICAqIGVkaXRpbmcvZXhlY0Nv
bW1hbmQvZmluZFN0cmluZy0yLmh0bWw6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkLzQ5
NDcxMzAuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC10ZXh0LXdpdGhv
dXQtc2VsZWN0aW9uLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vYW5jaG9yLWZv
Y3VzMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vY2xpY2stYmVm
b3JlLWFuZC1hZnRlci10YWJsZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2Ry
YWctc2VsZWN0LTEuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9lZGl0YWJsZS1s
aW5rcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbWl4ZWQtZWRp
dGFiaWxpdHktMS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3BhcmFncmFwaC1n
cmFudWxhcml0eS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1h
Y3Rpb25zLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vd29yZC1ncmFudWxhcml0
eS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvb2Zmc2V0TGVmdC1vZmZzZXRUb3At
Ym9keS1xdWlyay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1l
bnQvb2Zmc2V0TGVmdC1vZmZzZXRUb3AtYm9keS1xdWlyay5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Zvcm1zL2RyYWctaW50by10ZXh0YXJlYS5odG1sOgorICAgICAgICAqIGZhc3QvZm9y
bXMvbGlzdGJveC1zZWxlY3Rpb24tMi5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvbGlzdGJv
eC1zZWxlY3Rpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2NsaWNrLW5lYXItYW5vbnlt
b3VzLXRhYmxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2NsaWNrLW5lYXIt
YW5vbnltb3VzLXRhYmxlLmh0bWw6CisKIDIwMDctMDEtMjUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvZmluZFN0cmluZy0yLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9maW5kU3RyaW5nLTIu
aHRtbAkocmV2aXNpb24gMTkxMTIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2ZpbmRTdHJpbmctMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDkgKzksOCBAQCBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogPHNjcmlwdD4KIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKICAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxl
Y3RtZSIpOwotICAgIC8vIFRoZSA4IGhlcmUgaXMgdGhlIGRlZmF1bHQgbWFyZ2luIG9uIHRoZSBi
b2R5IGVsZW1lbnQuCi0gICAgdmFyIHggPSA4ICsgZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0
aCAvIDI7Ci0gICAgdmFyIHkgPSA4ICsgZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7
CisgICAgdmFyIHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIg
eSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC80
OTQ3MTMwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
LzQ5NDcxMzAuaHRtbAkocmV2aXNpb24gMTkxMTIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvNDk0NzEzMC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw4ICsxNyw4IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CiBmdW5jdGlvbiBzdGVwMigpIHsKIAogICAgIHZhciBpbWcgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIik7Ci0gICAgdmFyIGxlZnQgPSBpbWcub2Zmc2V0
UGFyZW50Lm9mZnNldExlZnQgKyBpbWcub2Zmc2V0TGVmdDsKLSAgICB2YXIgdG9wID0gaW1nLm9m
ZnNldFBhcmVudC5vZmZzZXRUb3AgKyBpbWcub2Zmc2V0VG9wOworICAgIHZhciBsZWZ0ID0gaW1n
Lm9mZnNldExlZnQ7CisgICAgdmFyIHRvcCA9IGltZy5vZmZzZXRUb3A7CiAgICAgdmFyIHggPSBs
ZWZ0ICsgaW1nLm9mZnNldFdpZHRoIC8gMjsKICAgICB2YXIgeSA9IHRvcCArIGltZy5vZmZzZXRI
ZWlnaHQgLyAyOwogICAgIApAQCAtMjYsNyArMjYsNyBAQCBmdW5jdGlvbiBzdGVwMigpIHsKICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgx
MzAwKTsKIAotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGxlZnQgLSAyMCwgeSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obGVmdCAtIDI4LCB5KTsKICAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CiAKICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2Ryb3AtdGV4dC13aXRob3V0
LXNlbGVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9kcm9wLXRleHQtd2l0aG91dC1zZWxlY3Rpb24uaHRtbAkocmV2aXNpb24gMTkxMTIpCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC10ZXh0LXdpdGhvdXQtc2VsZWN0
aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEyICsyNSw4IEBAIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CiAKICAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaW5rIik7
CiAKLSAgICAvLyBUaGUgOCBoZXJlIGlzIHRoZSBkZWZhdWx0IG1hcmdpbiBvbiB0aGUgYm9keSBl
bGVtZW50LgotICAgIHZhciB4T2ZmID0gODsKLSAgICB2YXIgeU9mZiA9IDg7Ci0gICAgCi0gICAg
dmFyIHggPSB4T2ZmICsgbGluay5vZmZzZXRMZWZ0ICsgbGluay5vZmZzZXRXaWR0aCAvIDI7Ci0g
ICAgdmFyIHkgPSB5T2ZmICsgbGluay5vZmZzZXRUb3AgKyBsaW5rLm9mZnNldEhlaWdodCAvIDI7
CisgICAgdmFyIHggPSBsaW5rLm9mZnNldExlZnQgKyBsaW5rLm9mZnNldFdpZHRoIC8gMjsKKyAg
ICB2YXIgeSA9IGxpbmsub2Zmc2V0VG9wICsgbGluay5vZmZzZXRIZWlnaHQgLyAyOwogCiAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CkBAIC0zOCw4ICszNCw4IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgZXZlbnRTZW5k
ZXIubGVhcEZvcndhcmQoNDAwKTsKICAgICB2YXIgZmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZmllbGQiKTsKICAgICAKLSAgICB4ID0geE9mZiArIGZpZWxkLm9mZnNldExlZnQgKyBm
aWVsZC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgeSA9IHlPZmYgKyBmaWVsZC5vZmZzZXRUb3AgKyBm
aWVsZC5vZmZzZXRIZWlnaHQgLyAyOworICAgIHggPSBmaWVsZC5vZmZzZXRMZWZ0ICsgZmllbGQu
b2Zmc2V0V2lkdGggLyAyOworICAgIHkgPSBmaWVsZC5vZmZzZXRUb3AgKyBmaWVsZC5vZmZzZXRI
ZWlnaHQgLyAyOwogCiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CiAgICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
YW5jaG9yLWZvY3VzMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vYW5jaG9yLWZvY3VzMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE5MTEy
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vYW5jaG9yLWZvY3VzMS1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACi1FRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20g
MSBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9m
ICN0ZXh0ID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdl
OnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byAyIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBTUEFOID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBT
UEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IFNQQU4g
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmlu
aXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDIgb2YgI3RleHQgPiBTUEFOID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IFNQQU4gPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4
dCA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4g
U1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9u
QWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KIFRoaXMgdGVzdHMgdGhlIGFuY2hvck5vZGUsIGFuY2hvck9mZnNldCwgZm9jdXNO
b2RlIGFuZCBmb2N1c09mZnNldCBwcm9wZXJ0aWVzIG9mIHRoZSBTZWxlY3Rpb24gb2JqZWN0LiBU
aGVzZSBwcm9wZXJ0aWVzIGFyZSBwYXJ0IG9mIE1vemlsbGEncyBTZWxlY3Rpb24gb2JqZWN0IEFQ
SSwgYW5kIHNvIHRoZWlyIHZhbHVlcyBzaG91bGQgYmUgY29uc2lzdGVudCBpbiBib3RoIGJyb3dz
ZXJzLgogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1iZWZvcmUt
YW5kLWFmdGVyLXRhYmxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vY2xpY2stYmVmb3JlLWFuZC1hZnRlci10YWJsZS5odG1sCShyZXZpc2lvbiAxOTEx
MikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWJlZm9yZS1hbmQtYWZ0
ZXItdGFibGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsOSBAQCBlbHNlIHsKICAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIHZhciBzLCB4
LCB5LCBlLCB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQ7CiAgICAgdGFibGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFibGUiKTsKLSAgICAvLyBUaGUgOCBoZXJlIGlzIHRoZSBkZWZhdWx0
IG1hcmdpbiBvbiB0aGUgYm9keSBlbGVtZW50LgotICAgIHRvcCA9IDggKyB0YWJsZS5vZmZzZXRU
b3A7Ci0gICAgbGVmdCA9IDggKyB0YWJsZS5vZmZzZXRMZWZ0OworCisgICAgdG9wID0gdGFibGUu
b2Zmc2V0VG9wOworICAgIGxlZnQgPSB0YWJsZS5vZmZzZXRMZWZ0OwogICAgIGJvdHRvbSA9IHRv
cCArIHRhYmxlLm9mZnNldEhlaWdodDsKICAgICByaWdodCA9IGxlZnQgKyB0YWJsZS5vZmZzZXRX
aWR0aDsKICAgICAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RyYWctc2Vs
ZWN0LTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9k
cmFnLXNlbGVjdC0xLmh0bWwJKHJldmlzaW9uIDE5MTEyKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZHJhZy1zZWxlY3QtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxNCAr
MjMsMTQgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIHNlbC5zZXRQ
b3NpdGlvbihkaXYsIDApOwogICAgIAogICAgIHZhciBzdGFydCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzdGFydCIpOwotICAgIHZhciBzdGFydHggPSBzdGFydC5vZmZzZXRQYXJlbnQub2Zm
c2V0TGVmdCArIHN0YXJ0Lm9mZnNldExlZnQgKyBzdGFydC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAg
dmFyIHN0YXJ0eSA9IHN0YXJ0Lm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBzdGFydC5vZmZzZXRU
b3AgKyBzdGFydC5vZmZzZXRIZWlnaHQgLyAyOworICAgIHZhciBzdGFydHggPSAtOCArIHN0YXJ0
Lm9mZnNldExlZnQgKyBzdGFydC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIHN0YXJ0eSA9IHN0
YXJ0Lm9mZnNldFRvcCArIHN0YXJ0Lm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oc3RhcnR4LCBzdGFydHkpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwogCiAgICAgdmFyIGVuZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbmQiKTsKLSAgICBl
bmR4ID0gZW5kLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZW5kLm9mZnNldExlZnQgKyBlbmQu
b2Zmc2V0V2lkdGggLyAyOwotICAgIGVuZHkgPSBlbmQub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCAr
IGVuZC5vZmZzZXRUb3AgKyBlbmQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBlbmR4ID0gLTggKyBl
bmQub2Zmc2V0TGVmdCArIGVuZC5vZmZzZXRXaWR0aCAvIDI7CisgICAgZW5keSA9IGVuZC5vZmZz
ZXRUb3AgKyBlbmQub2Zmc2V0SGVpZ2h0IC8gMjsKIAogICAgIHZhciBzdGVwcyA9IDIwOwogICAg
IGZvciAodmFyIGkgPSAxOyBpIDw9IHN0ZXBzOyBpKyspIHsKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2VkaXRhYmxlLWxpbmtzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9lZGl0YWJsZS1saW5rcy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE5MTEyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZWRp
dGFibGUtbGlua3MtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAog
RURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZTpyYW5nZSBmcm9t
IDAgb2YgSFRNTCA+ICNkb2N1bWVudCB0byAyIG9mIEhUTUwgPiAjZG9jdW1lbnQKIEVESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05v
dGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5n
ZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBBID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IEEgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpG
QUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVs
bCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBBID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+IEEgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZp
bml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQog
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKQEAgLTE0LDQgKzE0LDQgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDY1LDApIHdpZHRo
IDc3OiAiZWRpdGFibGUgbGluayIKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQyLDAp
IHNpemUgNHgxOAogICAgICAgICB0ZXh0IHJ1biBhdCAoMTQyLDApIHdpZHRoIDQ6ICIuIgotY2Fy
ZXQ6IHBvc2l0aW9uIDUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDMge0F9IG9mIGNoaWxk
IDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitjYXJldDogcG9zaXRpb24g
NiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMyB7QX0gb2YgY2hpbGQgMSB7Qk9EWX0gb2Yg
Y2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL21peGVkLWVkaXRhYmlsaXR5LTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9taXhlZC1lZGl0YWJpbGl0eS0xLmh0bWwJKHJldmlzaW9uIDE5
MTEyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbWl4ZWQtZWRpdGFiaWxpdHkt
MS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw5ICsxMyw4IEBAIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKICAgICAKICAgICB2YXIgeCwgeTsKICAgICAKLSAgICAvLyBUaGUg
OCBoZXJlIGlzIHRoZSBkZWZhdWx0IG1hcmdpbiBvbiB0aGUgYm9keSBlbGVtZW50LgotICAgIHgg
PSA4ICsgc3RhcnQub2Zmc2V0TGVmdCArIHN0YXJ0Lm9mZnNldFdpZHRoIC8gMjsKLSAgICB5ID0g
OCArIHN0YXJ0Lm9mZnNldFRvcCArIHN0YXJ0Lm9mZnNldEhlaWdodCAvIDI7CisgICAgeCA9IHN0
YXJ0Lm9mZnNldExlZnQgKyBzdGFydC5vZmZzZXRXaWR0aCAvIDI7CisgICAgeSA9IHN0YXJ0Lm9m
ZnNldFRvcCArIHN0YXJ0Lm9mZnNldEhlaWdodCAvIDI7CiAgICAgCiAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oeCwgeSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wYXJhZ3JhcGgtZ3JhbnVsYXJpdHkuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wYXJhZ3JhcGgtZ3Jh
bnVsYXJpdHkuaHRtbAkocmV2aXNpb24gMTkxMTIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9wYXJhZ3JhcGgtZ3JhbnVsYXJpdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEs
NyArMTEsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogZnVuY3Rpb24gZWRp
dGluZ1Rlc3QoKSB7CiAgICAgdmFyIHN0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iik7CiAgICAgCi0gICAgeCA9IHN0YXJ0Lm9mZnNldExlZnQgKyAxMDsKKyAgICB4ID0gc3Rh
cnQub2Zmc2V0TGVmdCArIDI7CiAgICAgeSA9IHN0YXJ0Lm9mZnNldFRvcCArIDEwOwogICAgIAog
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpAQCAtMjMsNyArMjMsNyBAQCBmdW5j
dGlvbiBlZGl0aW5nVGVzdCgpIHsKICAgICAKICAgICB2YXIgZW5kID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImVuZCIpOwogICAgIAotICAgIHggPSBlbmQub2Zmc2V0TGVmdCArIGVuZC5vZmZz
ZXRXaWR0aCArIDEwOworICAgIHggPSBlbmQub2Zmc2V0TGVmdCArIGVuZC5vZmZzZXRXaWR0aCAr
IDI7CiAgICAgeSA9IGVuZC5vZmZzZXRUb3AgKyAxMDsKICAgICAKICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1hY3Rpb25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vc2VsZWN0aW9uLWFjdGlvbnMuaHRtbAkocmV2aXNpb24gMTkxMTIpCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWN0aW9ucy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMSw4ICsxMSw4IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKICAgICB2YXIgc3RhcnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKTsKICAgICAKLSAgICB4ID0gc3RhcnQub2Zmc2V0TGVmdCArIDEw
OwotICAgIHkgPSBzdGFydC5vZmZzZXRUb3AgKyAxMDsKKyAgICB4ID0gc3RhcnQub2Zmc2V0TGVm
dCArIDI7CisgICAgeSA9IHN0YXJ0Lm9mZnNldFRvcCArIDI7CiAgICAgCiAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oeCwgeSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi93b3JkLWdyYW51bGFyaXR5Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vd29yZC1ncmFudWxhcml0
eS5odG1sCShyZXZpc2lvbiAxOTExMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L3dvcmQtZ3JhbnVsYXJpdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CiAgICAgdmFyIHN0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iik7CiAgICAg
Ci0gICAgeCA9IHN0YXJ0Lm9mZnNldExlZnQgKyAxMDsKKyAgICB4ID0gc3RhcnQub2Zmc2V0TGVm
dCArIDI7CiAgICAgeSA9IHN0YXJ0Lm9mZnNldFRvcCArIDEwOwogICAgIAogICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpAQCAtMjEsNyArMjEsNyBAQCBmdW5jdGlvbiBlZGl0aW5n
VGVzdCgpIHsKICAgICAKICAgICB2YXIgZW5kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVu
ZCIpOwogICAgIAotICAgIHggPSBlbmQub2Zmc2V0TGVmdCArIGVuZC5vZmZzZXRXaWR0aCArIDEw
OworICAgIHggPSBlbmQub2Zmc2V0TGVmdCArIGVuZC5vZmZzZXRXaWR0aCArIDI7CiAgICAgeSA9
IGVuZC5vZmZzZXRUb3AgKyAxMDsKICAgICAKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvb2Zmc2V0TGVmdC1vZmZz
ZXRUb3AtYm9keS1xdWlyay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRWxlbWVudC9vZmZzZXRMZWZ0LW9mZnNldFRvcC1ib2R5LXF1aXJrLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvb2Zmc2V0
TGVmdC1vZmZzZXRUb3AtYm9keS1xdWlyay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsOCBAQAorc3RhdGljOiBib2R5OiAoMCwgMCkgY2hpbGQ6ICgyNywgMjcpCityZWxhdGl2
ZTogYm9keTogKDAsIDApIGNoaWxkOiAoMTcsIDE3KQorZml4ZWQ6IGJvZHk6ICgwLCAwKSBjaGls
ZDogKDE3LCAxNykKK2Fic29sdXRlOiBib2R5OiAoMCwgMCkgY2hpbGQ6ICgxNywgMTcpCisgCisg
CisgCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvb2Zmc2V0TGVmdC1vZmZz
ZXRUb3AtYm9keS1xdWlyay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0VsZW1lbnQvb2Zmc2V0TGVmdC1vZmZzZXRUb3AtYm9keS1xdWlyay5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9vZmZzZXRMZWZ0LW9mZnNldFRvcC1i
b2R5LXF1aXJrLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjkgQEAKKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiB0
ZXN0RnJhbWUobmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgZnJhbWUgPSBmcmFtZXNbbmFt
ZV07CisgICAgICAgICAgICB2YXIgZG9jID0gZnJhbWUuZG9jdW1lbnQ7CisgICAgICAgICAgICB2
YXIgdGFyZ2V0ID0gZG9jLmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICAgICAgICAgIGxv
ZyhuYW1lICsgIjogYm9keTogKCIgKyBkb2MuYm9keS5vZmZzZXRMZWZ0ICsgIiwgIiArIGRvYy5i
b2R5Lm9mZnNldFRvcCArICIpIiArCisgICAgICAgICAgICAgICAgIiBjaGlsZDogKCIgKyB0YXJn
ZXQub2Zmc2V0TGVmdCArICIsICIgKyB0YXJnZXQub2Zmc2V0VG9wICsgIikiKTsKKyAgICAgICAg
fQorICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgICAgIHRlc3RGcmFtZSgic3RhdGljIik7
CisgICAgICAgICAgICB0ZXN0RnJhbWUoInJlbGF0aXZlIik7CisgICAgICAgICAgICB0ZXN0RnJh
bWUoImZpeGVkIik7CisgICAgICAgICAgICB0ZXN0RnJhbWUoImFic29sdXRlIik7CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgIGlmcmFtZSB7IGJvcmRlcjog
dGhpbiBzb2xpZDsgaGVpZ2h0OiAxMDBweDsgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eSBzdHlsZT0icGFkZGluZzogOXB4OyBtYXJnaW46IDEwcHgiIG9ubG9hZD0idGVzdCgpIj4KKyAg
ICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworICAgIDxpZnJhbWUgbmFtZT0ic3RhdGljIiBz
cmM9J2RhdGE6dGV4dC9odG1sLAorICAgICAgICA8Ym9keSBzdHlsZT0icGFkZGluZzogOXB4OyBt
YXJnaW46IDEwcHg7IG91dGxpbmU6IHRoaW4gc29saWQgYmx1ZTsiPgorICAgICAgICAgICAgPGRp
diBpZD0idGFyZ2V0IiBzdHlsZT0icGFkZGluZzogNnB4OyBtYXJnaW46IDhweDsgb3V0bGluZTog
dGhpbiBzb2xpZCBncmVlbjsiPjwvZGl2PgorICAgICAgICA8L2JvZHk+CisgICAgJz4KKyAgICA8
L2lmcmFtZT4KKworICAgIDxicj4KKworICAgIDxpZnJhbWUgbmFtZT0icmVsYXRpdmUiIHNyYz0n
ZGF0YTp0ZXh0L2h0bWwsCisgICAgICAgIDxib2R5IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7
IGxlZnQ6IDEycHg7IHdpZHRoOiAxNTBweDsgcGFkZGluZzogOXB4OyBtYXJnaW46IDEwcHg7IG91
dGxpbmU6IHRoaW4gc29saWQgYmx1ZTsiPgorICAgICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBz
dHlsZT0icGFkZGluZzogNnB4OyBtYXJnaW46IDhweDsgb3V0bGluZTogdGhpbiBzb2xpZCBncmVl
bjsiPjwvZGl2PgorICAgICAgICA8L2JvZHk+CisgICAgJz4KKyAgICA8L2lmcmFtZT4KKworICAg
IDxicj4KKworICAgIDxpZnJhbWUgbmFtZT0iZml4ZWQiIHNyYz0nZGF0YTp0ZXh0L2h0bWwsCisg
ICAgICAgIDxib2R5IHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IDEycHg7IHBhZGRpbmc6
IDlweDsgbWFyZ2luOiAxMHB4OyBvdXRsaW5lOiB0aGluIHNvbGlkIGJsdWU7Ij4KKyAgICAgICAg
ICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9InBhZGRpbmc6IDZweDsgbWFyZ2luOiA4cHg7IG91
dGxpbmU6IHRoaW4gc29saWQgZ3JlZW47Ij48L2Rpdj4KKyAgICAgICAgPC9ib2R5PgorICAgICc+
CisgICAgPC9pZnJhbWU+CisKKyAgICA8YnI+CisKKyAgICA8aWZyYW1lIG5hbWU9ImFic29sdXRl
IiBzcmM9J2RhdGE6dGV4dC9odG1sLAorICAgICAgICA8Ym9keSBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAxMnB4OyBwYWRkaW5nOiA5cHg7IG1hcmdpbjogMTBweDsgb3V0bGluZTog
dGhpbiBzb2xpZCBibHVlOyI+CisgICAgICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJw
YWRkaW5nOiA2cHg7IG1hcmdpbjogOHB4OyBvdXRsaW5lOiB0aGluIHNvbGlkIGdyZWVuOyI+PC9k
aXY+CisgICAgICAgIDwvYm9keT4KKyAgICAnPgorICAgIDwvaWZyYW1lPgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnLWludG8tdGV4dGFyZWEuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWctaW50by10ZXh0YXJl
YS5odG1sCShyZXZpc2lvbiAxOTExMikKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZy1p
bnRvLXRleHRhcmVhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTIgKzIsMTIgQEAKIAogZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaW5wdXQiKTsKLSAgICB2YXIgeCA9IDggKyBpbnB1dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zm
c2V0V2lkdGggLyAyOwotICAgIHZhciB5ID0gOCArIGlucHV0Lm9mZnNldFRvcCArIGlucHV0Lm9m
ZnNldEhlaWdodCAvIDI7CisgICAgdmFyIHggPSBpbnB1dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zm
c2V0V2lkdGggLyAyOworICAgIHZhciB5ID0gaW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0
SGVpZ2h0IC8gMjsKIAogICAgIHZhciB0ZXh0YXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXh0YXJlYSIpOwotICAgIHZhciB0eCA9IDggKyB0ZXh0YXJlYS5vZmZzZXRMZWZ0ICsgdGV4
dGFyZWEub2Zmc2V0V2lkdGggLyAyOwotICAgIHZhciB0eSA9IDggKyB0ZXh0YXJlYS5vZmZzZXRU
b3AgKyB0ZXh0YXJlYS5vZmZzZXRIZWlnaHQgLyAyOworICAgIHZhciB0eCA9IHRleHRhcmVhLm9m
ZnNldExlZnQgKyB0ZXh0YXJlYS5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIHR5ID0gdGV4dGFy
ZWEub2Zmc2V0VG9wICsgdGV4dGFyZWEub2Zmc2V0SGVpZ2h0IC8gMjsKIAogICAgIGlucHV0LnNl
bGVjdCgpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtc2VsZWN0aW9u
LTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtc2Vs
ZWN0aW9uLTIuaHRtbAkocmV2aXNpb24gMTkxMTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2xpc3Rib3gtc2VsZWN0aW9uLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTcsOSArNTcsOSBA
QAogICAgICAgICAgICAgICAgIHZhciBpdGVtSGVpZ2h0ID0gMTQ7CiAgICAgICAgICAgICAgICAg
dmFyIGJvcmRlclBhZGRpbmdUb3AgPSAxNTsKICAgICAgICAgICAgICAgICB2YXIgYm9yZGVyUGFk
ZGluZ0xlZnQgPSAxNTsKLSAgICAgICAgICAgICAgICB2YXIgeSA9IDggKyBpbmRleCAqIGl0ZW1I
ZWlnaHQgLSB3aW5kb3cucGFnZVlPZmZzZXQgKyBib3JkZXJQYWRkaW5nVG9wOworICAgICAgICAg
ICAgICAgIHZhciB5ID0gaW5kZXggKiBpdGVtSGVpZ2h0IC0gd2luZG93LnBhZ2VZT2Zmc2V0ICsg
Ym9yZGVyUGFkZGluZ1RvcDsKICAgICAgICAgICAgICAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5j
cmVhdGVFdmVudCgiTW91c2VFdmVudCIpOwotICAgICAgICAgICAgICAgIGV2ZW50LmluaXRNb3Vz
ZUV2ZW50KCJtb3VzZWRvd24iLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMSwg
c2wub2Zmc2V0TGVmdCArIDggKyBib3JkZXJQYWRkaW5nTGVmdCwgc2wub2Zmc2V0VG9wICsgeSwg
c2wub2Zmc2V0TGVmdCArIDggKyBib3JkZXJQYWRkaW5nTGVmdCwgc2wub2Zmc2V0VG9wICsgeSwg
ZmFsc2UsIGZhbHNlLCBzaGlmdCwgbWV0YSwgMCwgZG9jdW1lbnQpOworICAgICAgICAgICAgICAg
IGV2ZW50LmluaXRNb3VzZUV2ZW50KCJtb3VzZWRvd24iLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5k
ZWZhdWx0VmlldywgMSwgc2wub2Zmc2V0TGVmdCArICBib3JkZXJQYWRkaW5nTGVmdCwgc2wub2Zm
c2V0VG9wICsgeSwgc2wub2Zmc2V0TGVmdCArIGJvcmRlclBhZGRpbmdMZWZ0LCBzbC5vZmZzZXRU
b3AgKyB5LCBmYWxzZSwgZmFsc2UsIHNoaWZ0LCBtZXRhLCAwLCBkb2N1bWVudCk7CiAgICAgICAg
ICAgICAgICAgc2wuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1zZWxlY3Rpb24uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtc2VsZWN0aW9u
Lmh0bWwJKHJldmlzaW9uIDE5MTEyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9saXN0Ym94
LXNlbGVjdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsMTAgKzExMSwxMSBAQAogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiBtb3VzZURvd25PblNlbGVjdChzZWxJZCwg
aW5kZXgsIHNoaWZ0LCBtZXRhKSB7CiAgICAgICAgICAgICAgICAgdmFyIHNsID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoc2VsSWQpOwotICAgICAgICAgICAgICAgIHZhciBpdGVtSGVpZ2h0ID0g
MTU7Ci0gICAgICAgICAgICAgICAgdmFyIHkgPSAxMCArIGluZGV4ICogaXRlbUhlaWdodCAtIHdp
bmRvdy5wYWdlWU9mZnNldDsKKyAgICAgICAgICAgICAgICB2YXIgaXRlbUhlaWdodCA9IDE0Owor
ICAgICAgICAgICAgICAgIHZhciBib3JkZXIgPSAxOworICAgICAgICAgICAgICAgIHZhciB5ID0g
Ym9yZGVyICsgaW5kZXggKiBpdGVtSGVpZ2h0IC0gd2luZG93LnBhZ2VZT2Zmc2V0OwogICAgICAg
ICAgICAgICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iik7
Ci0gICAgICAgICAgICAgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlZG93biIsIHRydWUs
IHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCAxLCBzbC5vZmZzZXRMZWZ0ICsgMTAsIHNsLm9m
ZnNldFRvcCArIHksIHNsLm9mZnNldExlZnQgKyAxMCwgc2wub2Zmc2V0VG9wICsgeSwgZmFsc2Us
IGZhbHNlLCBzaGlmdCwgbWV0YSwgMCwgZG9jdW1lbnQpOworICAgICAgICAgICAgICAgIGV2ZW50
LmluaXRNb3VzZUV2ZW50KCJtb3VzZWRvd24iLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0
VmlldywgMSwgc2wub2Zmc2V0TGVmdCArIGJvcmRlciwgc2wub2Zmc2V0VG9wICsgeSwgc2wub2Zm
c2V0TGVmdCArIGJvcmRlciwgc2wub2Zmc2V0VG9wICsgeSwgZmFsc2UsIGZhbHNlLCBzaGlmdCwg
bWV0YSwgMCwgZG9jdW1lbnQpOwogICAgICAgICAgICAgICAgIHNsLmRpc3BhdGNoRXZlbnQoZXZl
bnQpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2NsaWNrLW5lYXItYW5vbnltb3VzLXRhYmxlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NsaWNrLW5lYXItYW5vbnltb3VzLXRhYmxlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTkxMTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2Ns
aWNrLW5lYXItYW5vbnltb3VzLXRhYmxlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MzksNCArMzksNCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgICAg
UmVuZGVyVGFibGVDZWxsIGF0ICgwLDApIHNpemUgMTc2eDE4IFtyPTAgYz0wIHJzPTEgY3M9MV0K
ICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxNzZ4MTgK
ICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE3NjogIkNsaWNrIHRv
IHRoZSByaWdodCBvZiB0aGlzIHRleHQiCi1jYXJldDogcG9zaXRpb24gNDAgb2YgY2hpbGQgMCB7
I3RleHR9IG9mIGNoaWxkIDcge0RJVn0gb2YgY2hpbGQgNyB7RElWfSBvZiBjaGlsZCAxIHtCT0RZ
fSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorY2FyZXQ6IHBvc2l0aW9uIDkgb2YgY2hp
bGQgMCB7I3RleHR9IG9mIGNoaWxkIDcge0RJVn0gb2YgY2hpbGQgNyB7RElWfSBvZiBjaGlsZCAx
IHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC90YWJsZS9jbGljay1uZWFyLWFub255bW91cy10YWJsZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvY2xpY2stbmVhci1hbm9ueW1vdXMtdGFibGUuaHRtbAko
cmV2aXNpb24gMTkxMTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NsaWNrLW5lYXItYW5v
bnltb3VzLXRhYmxlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsMTMgKzcsMTEgQEAKICAgICAg
ICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0Iik7Ci0gICAgICAgICAgICAvLyBUaGUgOCBoZXJlIGlzIHRoZSBkZWZhdWx0IG1h
cmdpbiBvbiB0aGUgYm9keSBlbGVtZW50LgotICAgICAgICAgICAgdmFyIGJhc2VYID0gOCArIHRh
cmdldC5vZmZzZXRMZWZ0OwotICAgICAgICAgICAgdmFyIGJhc2VZID0gOCArIHRhcmdldC5vZmZz
ZXRUb3A7CisKICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0YXJnZXQuY2hpbGRyZW4ubGVu
Z3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICB2YXIgZGl2ID0gdGFyZ2V0LmNoaWxkcmVuW2ld
OwotICAgICAgICAgICAgICAgIHZhciBjbGlja1ggPSBiYXNlWCArIHRhcmdldC5vZmZzZXRMZWZ0
ICsgdGFyZ2V0Lm9mZnNldFdpZHRoICsgNTsKLSAgICAgICAgICAgICAgICB2YXIgY2xpY2tZID0g
YmFzZVkgKyB0YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCArIDU7CisgICAg
ICAgICAgICAgICAgdmFyIGNsaWNrWCA9IGRpdi5vZmZzZXRMZWZ0ICsgZGl2Lm9mZnNldFdpZHRo
ICsgNTsKKyAgICAgICAgICAgICAgICB2YXIgY2xpY2tZID0gZGl2Lm9mZnNldFRvcCArIDU7CiAg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY2xpY2tYLCBjbGlja1kpOwog
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTEzMCkKKysrIFdlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDctMDEtMjUgIE1pdHog
UGV0dGVsICA8bWl0ekB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIC0gZml4IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExMTA5CisgICAgICAgICAgUkVHUkVTU0lPTiAocjE1NDcxKTogbWVudXMgYXJlIG9m
ZnNldCBvbiBlaW5rLmNvbQorICAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODI0NzYwPgorCisg
ICAgICAgIENoYW5nZWQgb2Zmc2V0e0xlZnQsVG9wfSB0byBtYXRjaCBGaXJlZm94LiBJZiB0aGUg
Ym9keSBlbGVtZW50IGlzIHN0YXRpY2FsbHkKKyAgICAgICAgcG9zaXRpb25lZCwgaXQgaXMgc3Rp
bGwgcmV0dXJuZWQgYXMgdGhlIG9mZnNldFBhcmVudCBvZiBlbGVtZW50cyB3aG9zZSBjb250YWlu
aW5nCisgICAgICAgIGJsb2NrIGlzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2sgKHRoZSBy
b290KSwgYnV0IHRoZWlyIG9mZnNldHtMZWZ0LFRvcH0gYXJlCisgICAgICAgIHJlbGF0aXZlIHRv
IHRoZSByb290LiBJZiB0aGUgYm9keSBlbGVtZW50IGlzIHBvc2l0aW9uZWQsIHRoZW4gb2Zmc2V0
cyBhcmUgcmVsYXRpdmUKKyAgICAgICAgdG8gaXQuIFRoZSBib2R5J3Mgb3duIG9mZnNldHtMZWZ0
LFRvcH0gYXJlIGFsd2F5cyAwLiAKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9FbGVtZW50L29m
ZnNldExlZnQtb2Zmc2V0VG9wLWJvZHktcXVpcmsuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om9mZnNl
dExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpvZmZzZXRUb3ApOgorCiAy
MDA3LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBhbmQgbGFuZGVkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCShyZXZpc2lvbiAxOTExMikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxNiw2ICs1MTYsOCBAQCBpbnQgUmVuZGVy
T2JqZWN0OjpvZmZzZXRMZWZ0KCkgY29uc3QKICAgICAgICAgICAgIHggKz0gY3Vyci0+eFBvcygp
OwogICAgICAgICAgICAgY3VyciA9IGN1cnItPnBhcmVudCgpOwogICAgICAgICB9CisgICAgICAg
IGlmIChvZmZzZXRQYXItPmlzQm9keSgpICYmICFvZmZzZXRQYXItPmlzUmVsUG9zaXRpb25lZCgp
ICYmICFvZmZzZXRQYXItPmlzUG9zaXRpb25lZCgpKQorICAgICAgICAgICAgeCArPSBvZmZzZXRQ
YXItPnhQb3MoKTsKICAgICB9CiAgICAgcmV0dXJuIHg7CiB9CkBAIC01MzUsNiArNTM3LDggQEAg
aW50IFJlbmRlck9iamVjdDo6b2Zmc2V0VG9wKCkgY29uc3QKICAgICAgICAgICAgICAgICB5ICs9
IGN1cnItPnlQb3MoKTsKICAgICAgICAgICAgIGN1cnIgPSBjdXJyLT5wYXJlbnQoKTsKICAgICAg
ICAgfQorICAgICAgICBpZiAob2Zmc2V0UGFyLT5pc0JvZHkoKSAmJiAhb2Zmc2V0UGFyLT5pc1Jl
bFBvc2l0aW9uZWQoKSAmJiAhb2Zmc2V0UGFyLT5pc1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgICAg
IHkgKz0gb2Zmc2V0UGFyLT55UG9zKCk7CiAgICAgfQogICAgIHJldHVybiB5OwogfQo=
</data>
<flag name="review"
          id="4824"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>