<?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>74907</bug_id>
          
          <creation_ts>2011-12-19 20:30:57 -0800</creation_ts>
          <short_desc>Add support for scrollLineDown: and scrollLineUp: NSResponder selectors</short_desc>
          <delta_ts>2011-12-21 10:51:00 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>524403</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-19 20:30:57 -0800</bug_when>
    <thetext>Add support for scrollLineDown: and scrollLineUp: NSResponder selectors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524405</commentid>
    <comment_count>1</comment_count>
      <attachid>119980</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-19 20:34:29 -0800</bug_when>
    <thetext>Created attachment 119980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524412</commentid>
    <comment_count>2</comment_count>
      <attachid>119983</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-19 20:45:04 -0800</bug_when>
    <thetext>Created attachment 119983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524902</commentid>
    <comment_count>3</comment_count>
      <attachid>119983</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-20 15:47:34 -0800</bug_when>
    <thetext>Comment on attachment 119983
Patch

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

Do we need this in WebKit1? Without a rationale, I can&apos;t tell.

&gt; Tools/ChangeLog:8
&gt; +        Add ScrollByLineCommands API test.

Why an API test? We have plenty of tests for commands that use layoutTestController.execCommand (and can thus see all commands, not just the one that are available to JS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524906</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-12-20 15:51:46 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 119983 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=119983&amp;action=review
&gt; 
&gt; Do we need this in WebKit1?

WebFrameView implements this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525024</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-20 18:01:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Do we need this in WebKit1? Without a rationale, I can&apos;t tell.

This is implemented without WebCore involvement in WebKit1 (in WebFrameView as Dan noted), but this seemed like a more sound approach for WebKit2.

&gt; &gt; Tools/ChangeLog:8
&gt; &gt; +        Add ScrollByLineCommands API test.
&gt; 
&gt; Why an API test? We have plenty of tests for commands that use layoutTestController.execCommand (and can thus see all commands, not just the one that are available to JS).

I didn&apos;t remember we have that.  I can certainly convert the test/add one to LayoutTests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525095</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-20 21:52:48 -0800</bug_when>
    <thetext>In WK1, most NSResponder selectors go through WEBCORE_COMMAND in WebHTMLView.mm. I&apos;m not sure how we chose what to implement there, and what in WebFrameView. Obviously, commands that need to work in non-HTML content go to WebFrameView, but why is the implementation so different?

For example, scrollPageUp: is in WebFrameView, while pageUp: is in WebHTMLView.

This patch does feel weird in that it uses WebHTMLView machinery to implement something that&apos;s not implemented in WebHTMLView. But I don&apos;t know if there is a deep reason there, or any effect on observable behavior.

Please test that the methods added here don&apos;t change selection in editable HTML content.

&gt; I didn&apos;t remember we have that.  I can certainly convert the test/add one to LayoutTests.

Having a cross platform test would be useful. Maybe keeping an API test makes sense too, as execCommand won&apos;t test it for us. But then again, we don&apos;t test for any other selectors in API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525341</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-21 10:51:00 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; In WK1, most NSResponder selectors go through WEBCORE_COMMAND in WebHTMLView.mm. I&apos;m not sure how we chose what to implement there, and what in WebFrameView. Obviously, commands that need to work in non-HTML content go to WebFrameView, but why is the implementation so different?
&gt; 
&gt; For example, scrollPageUp: is in WebFrameView, while pageUp: is in WebHTMLView.

It’s just historical.

When I moved much code from WebHTMLView.mm into WebCore to make it cross-platform instead of Mac-specific and introduced WEBCORE_COMMAND I did not convert everything; Alice Liu and some others worked with me on it as well and it took a long time. Many pure scrolling functions were already implemented in WebFrameView and I did not attempt to make a 100% conversion to a new model for every last function. There were some scrolling subtleties in WebFrameView that I was not sure would be easy to translate, and I also slightly feared some incompatibility with apps that were going at specific WebKit views and depending on which handled a given selector.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119980</attachid>
            <date>2011-12-19 20:34:29 -0800</date>
            <delta_ts>2011-12-19 20:45:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74907-20111219203431.patch</filename>
            <type>text/plain</type>
            <size>14013</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzMwZGQ4YjJkZjgyMjZi
NTIxMzAxMjgwZGFmMDM0NWU3YzM3Mzk0YS4uZTk3ODcxNTNkNWNjYzM0OWM0Y2UzM2RmNjUwM2Uy
Y2I1MjVhYjQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTE5ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9s
bExpbmVEb3duOiBhbmQgc2Nyb2xsTGluZVVwOiBOU1Jlc3BvbmRlciBzZWxlY3RvcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgQVBJIHRlc3Q6
IFdlYktpdDIuU2Nyb2xsQnlMaW5lQ29tbWFuZHMKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlU2Nyb2xsTGluZVVwKToKKyAg
ICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVTY3JvbGxMaW5lRG93bik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAgQWRkIGltcGxlbWVudGF0aW9ucyBmb3Igc2Ny
b2xsTGluZVVwL0Rvd24uIERvIG5vdCBleHBvc2UKKyAgICAgICAgdGhlc2UgdG8gZXhlY0NvbW1h
bmQuCisKIDIwMTEtMTItMTkgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBJbmRleGVkREIgbXVsdGlwbGUgY2FsbHMgdG8gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUobmFtZSkgc2hvdWxkIHJldHVybiB0aGUgc2FtZSBpbnN0YW5jZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDIx
ZTgxZGRmMDY0NWRhZjFiMTdlZWYwMTBiZGUzZjYyMjAyZmY0ZDEuLmZiMTlmNDBlNWM0NGE1Y2Y1
MjNhMTgzY2Q1ZDUyMzA1ZTE1MTBiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
MS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBzY3JvbGxMaW5lRG93bjogYW5kIHNjcm9sbExpbmVVcDogTlNSZXNwb25kZXIgc2Vs
ZWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NDkwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICBBZGQgaW1wbGVtZW50YXRpb25z
IGZvciBzY3JvbGxMaW5lRG93bjogYW5kIHNjcm9sbExpbmVVcDogdXNpbmcgb3VyCisgICAgICAg
IGZ1biBtYWNyb3MuCisKIDIwMTEtMTItMTYgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgog
CiAgICAgICAgIFtXSzJdIEV4dGVuZCBzaG93IG5vdGlmaWNhdGlvbiBBUEkgdG8gaW5jbHVkZSB0
aGUgc291cmNlIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmlu
ZGV4IDM4ZjE0Y2ZhMDk4NjdkMzY4OTViNzhkNTZlMmU5ZTM2NTU1ZTExMWMuLjkyY2MwZDVmNTE3
NDIxMjYyNDBhZjVkNTNmYzYzNjZiMjk1NmQ2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcApAQCAtOTU1LDYgKzk1NSwxNiBAQCBzdGF0aWMgYm9vbCBleGVjdXRl
U2Nyb2xsUGFnZUZvcndhcmQoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3Vy
Y2UsCiAgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+bG9naWNhbFNjcm9sbFJlY3Vy
c2l2ZWx5KFNjcm9sbEJsb2NrRGlyZWN0aW9uRm9yd2FyZCwgU2Nyb2xsQnlQYWdlKTsKIH0KIAor
c3RhdGljIGJvb2wgZXhlY3V0ZVNjcm9sbExpbmVVcChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRp
dG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gZnJhbWUtPmV2
ZW50SGFuZGxlcigpLT5sb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkoU2Nyb2xsQmxvY2tEaXJlY3Rp
b25CYWNrd2FyZCwgU2Nyb2xsQnlMaW5lKTsKK30KKworc3RhdGljIGJvb2wgZXhlY3V0ZVNjcm9s
bExpbmVEb3duKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25z
dCBTdHJpbmcmKQoreworICAgIHJldHVybiBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmxvZ2ljYWxT
Y3JvbGxSZWN1cnNpdmVseShTY3JvbGxCbG9ja0RpcmVjdGlvbkZvcndhcmQsIFNjcm9sbEJ5TGlu
ZSk7Cit9CisKIHN0YXRpYyBib29sIGV4ZWN1dGVTY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQo
RnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYp
CiB7CiAgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+bG9naWNhbFNjcm9sbFJlY3Vy
c2l2ZWx5KFNjcm9sbEJsb2NrRGlyZWN0aW9uQmFja3dhcmQsIFNjcm9sbEJ5RG9jdW1lbnQpOwpA
QCAtMTUxNCw2ICsxNTI0LDggQEAgc3RhdGljIGNvbnN0IENvbW1hbmRNYXAmIGNyZWF0ZUNvbW1h
bmRNYXAoKQogICAgICAgICB7ICJSZW1vdmVGb3JtYXQiLCB7IGV4ZWN1dGVSZW1vdmVGb3JtYXQs
IHN1cHBvcnRlZCwgZW5hYmxlZFJhbmdlSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVO
dWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0g
fSwKICAgICAgICAgeyAiU2Nyb2xsUGFnZUJhY2t3YXJkIiwgeyBleGVjdXRlU2Nyb2xsUGFnZUJh
Y2t3YXJkLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZCwgc3RhdGVOb25l
LCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlz
YWJsZWQgfSB9LAogICAgICAgICB7ICJTY3JvbGxQYWdlRm9yd2FyZCIsIHsgZXhlY3V0ZVNjcm9s
bFBhZ2VGb3J3YXJkLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZCwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWQgfSB9LAorICAgICAgICB7ICJTY3JvbGxMaW5lVXAiLCB7IGV4ZWN1dGVTY3Jv
bGxMaW5lVXAsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkLCBzdGF0ZU5v
bmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5E
aXNhYmxlZCB9IH0sCisgICAgICAgIHsgIlNjcm9sbExpbmVEb3duIiwgeyBleGVjdXRlU2Nyb2xs
TGluZURvd24sIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkLCBzdGF0ZU5v
bmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5E
aXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudCIsIHsg
ZXhlY3V0ZVNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudCwgc3VwcG9ydGVkRnJvbU1lbnVPcktl
eUJpbmRpbmcsIGVuYWJsZWQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9u
LCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiU2Nyb2xs
VG9FbmRPZkRvY3VtZW50IiwgeyBleGVjdXRlU2Nyb2xsVG9FbmRPZkRvY3VtZW50LCBzdXBwb3J0
ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5v
dFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAg
ICAgICB7ICJTZWxlY3RBbGwiLCB7IGV4ZWN1dGVTZWxlY3RBbGwsIHN1cHBvcnRlZCwgZW5hYmxl
ZCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVj
dXRpb25XaGVuRGlzYWJsZWQgfSB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tCmluZGV4IDczZDgzNWVjMmJiOTY5NWVkNDQ2NzAzZjRkOTE3OWY3NWNiNzM2NGYu
LmRjYTAxOGE0MmYxOWJhNGU0ZTlkMzBkMzAwMDNhYTMwMTcxYTI5OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTQ4Niw2ICs0ODYsOCBAQCBXRUJD
T1JFX0NPTU1BTkQocGFzdGUpCiBXRUJDT1JFX0NPTU1BTkQocGFzdGVBc1BsYWluVGV4dCkKIFdF
QkNPUkVfQ09NTUFORChzY3JvbGxQYWdlRG93bikKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxQYWdl
VXApCitXRUJDT1JFX0NPTU1BTkQoc2Nyb2xsTGluZURvd24pCitXRUJDT1JFX0NPTU1BTkQoc2Ny
b2xsTGluZVVwKQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudCkK
IFdFQkNPUkVfQ09NTUFORChzY3JvbGxUb0VuZE9mRG9jdW1lbnQpCiBXRUJDT1JFX0NPTU1BTkQo
c2VsZWN0QWxsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDdkNWJkNjk3MTJiMmJkMDAwNDE4MTU4OWZmZmQ2ZDk1ZGExMTVlMTcuLjk2MTFhOTNi
M2EyNzE1Mjk2ZWEzN2VmNTM5NTc1ZjZkNDdkYTMwYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMi0xOSAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBz
Y3JvbGxMaW5lRG93bjogYW5kIHNjcm9sbExpbmVVcDogTlNSZXNwb25kZXIgc2VsZWN0b3JzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkwNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTY3JvbGxC
eUxpbmVDb21tYW5kcyBBUEkgdGVzdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9tYWMvRWRpdG9yQ29tbWFuZHMubW06IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9zaW1wbGUtdGFsbC5odG1sOiBBZGRlZC4KKwog
MjAxMS0xMi0xOSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICB3ZWJraXRweTogcmVtb3ZlIHBvcnQuZXhlY3V0aXZlLCBwb3J0LmZpbGVzeXN0ZW0sIHBvcnQu
dXNlciBwcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ2MTA3MzI5ZmU2ZjA5
YTIyYjNiNjYyOGJhNGU5NzVlMDg3MjIxMjIuLjk3N2I3NGE0ZTU5ZWI3NTM2NzU4M2E4YWEwZTY0
ZGMyMjNiYzcxZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03Myw2ICs3Myw4IEBACiAJ
CUJDOTA5OTVFMTI1NjdCQzEwMDA4Mzc1NiAvKiBXS1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzkwOTk1RDEyNTY3QkMxMDAwODM3NTYg
LyogV0tTdHJpbmcuY3BwICovOyB9OwogCQlCQzkwOTk5NDEyNTZBQ0YxMDAwODM3NTYgLyogV0tT
dHJpbmdKU1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzkwOTk5MzEyNTZBQ0YxMDAwODM3NTYgLyogV0tTdHJpbmdKU1N0cmluZy5jcHAg
Ki87IH07CiAJCUJDQTYxREI1MTE3MDBFRkQwMDQ2MEQxRSAvKiBXZWJLaXQyLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTYxREI0
MTE3MDBFRkQwMDQ2MEQxRSAvKiBXZWJLaXQyLmZyYW1ld29yayAqLzsgfTsKKwkJQkNBQTQ4NTYx
NEEwNDQ0QzAwODhGQUM0IC8qIHNpbXBsZS10YWxsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBQTQ4NTUxNEEwMjE2NDAwODhGQUM0
IC8qIHNpbXBsZS10YWxsLmh0bWwgKi87IH07CisJCUJDQUE0ODU4MTRBMDQ0RDQwMDg4RkFDNCAv
KiBFZGl0b3JDb21tYW5kcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQUE0ODU3MTRBMDQ0RDQwMDg4RkFDNCAvKiBFZGl0b3JDb21tYW5kcy5tbSAq
LzsgfTsKIAkJQkNCNjgwNDAxMjZGQkZFMTAwNjQyQTYxIC8qIERvY3VtZW50U3RhcnRVc2VyU2Ny
aXB0QWxlcnRDcmFzaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0I2ODAzRjEyNkZCRkUxMDA2NDJBNjEgLyogRG9jdW1lbnRTdGFydFVzZXJTY3Jp
cHRBbGVydENyYXNoLmNwcCAqLzsgfTsKIAkJQkNCNjgwNDIxMjZGQkZGMTAwNjQyQTYxIC8qIERv
Y3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNjgwNDExMjZGQkZGMTAwNjQyQTYx
IC8qIERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9CdW5kbGUuY3BwICovOyB9Owog
CQlCQ0I5RTlGMTExMjM1QkRFMDBBMTM3RTAgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCOUU5RjAxMTIzNUJERTAw
QTEzN0UwIC8qIENvY29hLmZyYW1ld29yayAqLzsgfTsKQEAgLTE0Miw2ICsxNDQsNyBAQAogCQkJ
CTFBMDJDODcwMTI1RDRDRkQwMEUzRjRCRCAvKiBmaW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJQkM5MDk3ODQxMjU1NzFDRjAwMDgzNzU2IC8qIHNpbXBsZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCUMwQURCRTk2MTJGQ0E3OUIwMEQyQzEyOSAvKiBzaW1wbGUtZm9y
bS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUJDQUE0ODU2MTRBMDQ0NEMwMDg4RkFD
NCAvKiBzaW1wbGUtdGFsbC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMwMUEyM0Yy
MTI2NjE1NjcwMEM5RUQ1NSAvKiBzcGFjZWJhci1zY3JvbGxpbmcuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQlCQzJEMDA2NDEyQUEwNENFMDBFNzMyQTMgLyogZmlsZS13aXRoLWFuY2hv
ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTM3REM2NzkxMTQwRDdENzYwMEFCQ0NE
QiAvKiBET01SYW5nZU9mU3RyaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yMjUs
NiArMjI4LDggQEAKIAkJQkM5MDk5NUQxMjU2N0JDMTAwMDgzNzU2IC8qIFdLU3RyaW5nLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU3RyaW5nLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5MDk5OTMxMjU2QUNGMTAwMDgzNzU2IC8qIFdLU3Ry
aW5nSlNTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tT
dHJpbmdKU1N0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQTYxREI0
MTE3MDBFRkQwMDQ2MEQxRSAvKiBXZWJLaXQyLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBwYXRoID0g
V2ViS2l0Mi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJ
CUJDQUE0ODU1MTRBMDIxNjQwMDg4RkFDNCAvKiBzaW1wbGUtdGFsbC5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gInNpbXBsZS10YWxsLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQ0FBNDg1NzE0QTA0NEQ0MDA4OEZBQzQgLyogRWRpdG9yQ29tbWFuZHMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFZGl0b3JDb21tYW5kcy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCNjgwM0YxMjZGQkZFMTAwNjQyQTYx
IC8qIERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2gu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0I2ODA0MTEyNkZCRkYxMDA2NDJB
NjEgLyogRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoX0J1bmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFs
ZXJ0Q3Jhc2hfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCOUU3
QzcxMTIzNEUzQTAwQTEzN0UwIC8qIFRlc3RzQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUZXN0c0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQ2NCw2ICs0NjksNyBAQAogCQkJCTFBREJFRkJDMTMwQzZBMDEwMEQ2MUQxOSAv
KiBzaW1wbGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcuaHRtbCAqLywKIAkJCQlDMEFEQkU4NDEy
RkNBNkI2MDBEMkMxMjkgLyogc2ltcGxlLWZvcm0uaHRtbCAqLywKIAkJCQkzM0RDODkwRTE0MTk1
MzkzMDA3NDdFRjcgLyogc2ltcGxlLWlmcmFtZS5odG1sICovLAorCQkJCUJDQUE0ODU1MTRBMDIx
NjQwMDg4RkFDNCAvKiBzaW1wbGUtdGFsbC5odG1sICovLAogCQkJCUJDOTA5Nzc4MTI1NTcxQUIw
MDA4Mzc1NiAvKiBzaW1wbGUuaHRtbCAqLywKIAkJCQlDMDJCNzg4MjEyNjYxNTQxMDAyNkJGMEYg
Lyogc3BhY2ViYXItc2Nyb2xsaW5nLmh0bWwgKi8sCiAJCQkpOwpAQCAtNTU0LDYgKzU2MCw3IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlDMEM1RDNCQzE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFj
a2luZ1NjYWxlRmFjdG9yLm1tICovLAogCQkJCUMwQzVEM0JEMTQ1OThCNkYwMEE4MDJBNiAvKiBH
ZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tICovLAorCQkJCUJDQUE0ODU3MTRBMDQ0RDQw
MDg4RkFDNCAvKiBFZGl0b3JDb21tYW5kcy5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY5OSw2ICs3MDYsNyBAQAogCQkJCUJDMDI5
QjFDMTQ4NkIyNTkwMDgxN0RBOSAvKiBSZXRhaW5QdHIubW0gaW4gU291cmNlcyAqLywKIAkJCQlC
QzkwMUUyNDE0OTJBRENFMDA3NEE2NjcgLyogV0tDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBQTlFNTU5MTQ5ODBBOTkwMDAwMUE4QSAvKiBGdW5jdGlvbmFsLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUJDQUE0ODU4MTRBMDQ0RDQwMDg4RkFDNCAvKiBFZGl0b3JDb21tYW5kcy5t
bSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL21hYy9FZGl0b3JDb21tYW5kcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9tYWMvRWRpdG9yQ29tbWFuZHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTgzZGM3YTUzMjgyNzBi
OTBjNzVjNzQwYWM5Njk0ZjQyODM5MGQ1OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvRWRpdG9yQ29tbWFuZHMubW0KQEAgLTAsMCArMSw2
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKYXZhU2Ny
aXB0VGVzdC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCituYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRpZEZpbmlzaExvYWQ7CisKK3N0
YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdL
VHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CisK
K1RFU1QoV2ViS2l0MiwgU2Nyb2xsQnlMaW5lQ29tbWFuZHMpCit7CisgICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFV0aWw6OmNyZWF0ZUNvbnRleHRXaXRoSW5q
ZWN0ZWRCdW5kbGUoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQo
KSk7CisKKyAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50OworICAgIG1lbXNldCgm
bG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CisgICAgbG9hZGVyQ2xpZW50
LnZlcnNpb24gPSAwOworICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUgPSBk
aWRGaW5pc2hMb2FkRm9yRnJhbWU7CisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudCh3ZWJW
aWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudCk7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4g
dXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtdGFsbCIsICJo
dG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7Cisg
ICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKworICAgIEVYUEVDVF9KU19FUSh3ZWJWaWV3
LnBhZ2UoKSwgIndpbmRvdy5zY3JvbGxZIiwgIjAiKTsKKworICAgIEFTU0VSVF9UUlVFKFt3ZWJW
aWV3LnBsYXRmb3JtVmlldygpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2Nyb2xsTGlu
ZURvd246KV0pOworICAgIFt3ZWJWaWV3LnBsYXRmb3JtVmlldygpIHNjcm9sbExpbmVEb3duOm5p
bF07CisKKyAgICBFWFBFQ1RfSlNfRVEod2ViVmlldy5wYWdlKCksICJ3aW5kb3cuc2Nyb2xsWSIs
ICI0MCIpOworCisgICAgQVNTRVJUX1RSVUUoW3dlYlZpZXcucGxhdGZvcm1WaWV3KCkgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzY3JvbGxMaW5lVXA6KV0pOworICAgIFt3ZWJWaWV3LnBs
YXRmb3JtVmlldygpIHNjcm9sbExpbmVVcDpuaWxdOworCisgICAgRVhQRUNUX0pTX0VRKHdlYlZp
ZXcucGFnZSgpLCAid2luZG93LnNjcm9sbFkiLCAiMCIpOworfQorCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvc2ltcGxlLXRhbGwuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9z
aW1wbGUtdGFsbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyMjBlOWIyZDViYmI3YWE5OTFhYTdiYjkzY2Vj
MjA2YWVkMTgwYTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvc2ltcGxlLXRhbGwuaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKyAgU2ltcGxlIGFuZCB0YWxsIEhUTUwgZmlsZS4KKyAgPGRpdiBz
dHlsZT0iaGVpZ2h0OiAzMDAwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119983</attachid>
            <date>2011-12-19 20:45:04 -0800</date>
            <delta_ts>2011-12-20 15:47:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74907-20111219204507.patch</filename>
            <type>text/plain</type>
            <size>13962</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzMwZGQ4YjJkZjgyMjZi
NTIxMzAxMjgwZGFmMDM0NWU3YzM3Mzk0YS4uZTk3ODcxNTNkNWNjYzM0OWM0Y2UzM2RmNjUwM2Uy
Y2I1MjVhYjQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTE5ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9s
bExpbmVEb3duOiBhbmQgc2Nyb2xsTGluZVVwOiBOU1Jlc3BvbmRlciBzZWxlY3RvcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgQVBJIHRlc3Q6
IFdlYktpdDIuU2Nyb2xsQnlMaW5lQ29tbWFuZHMKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlU2Nyb2xsTGluZVVwKToKKyAg
ICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVTY3JvbGxMaW5lRG93bik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAgQWRkIGltcGxlbWVudGF0aW9ucyBmb3Igc2Ny
b2xsTGluZVVwL0Rvd24uIERvIG5vdCBleHBvc2UKKyAgICAgICAgdGhlc2UgdG8gZXhlY0NvbW1h
bmQuCisKIDIwMTEtMTItMTkgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBJbmRleGVkREIgbXVsdGlwbGUgY2FsbHMgdG8gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUobmFtZSkgc2hvdWxkIHJldHVybiB0aGUgc2FtZSBpbnN0YW5jZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDIx
ZTgxZGRmMDY0NWRhZjFiMTdlZWYwMTBiZGUzZjYyMjAyZmY0ZDEuLmZiMTlmNDBlNWM0NGE1Y2Y1
MjNhMTgzY2Q1ZDUyMzA1ZTE1MTBiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
MS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBzY3JvbGxMaW5lRG93bjogYW5kIHNjcm9sbExpbmVVcDogTlNSZXNwb25kZXIgc2Vs
ZWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NDkwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICBBZGQgaW1wbGVtZW50YXRpb25z
IGZvciBzY3JvbGxMaW5lRG93bjogYW5kIHNjcm9sbExpbmVVcDogdXNpbmcgb3VyCisgICAgICAg
IGZ1biBtYWNyb3MuCisKIDIwMTEtMTItMTYgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgog
CiAgICAgICAgIFtXSzJdIEV4dGVuZCBzaG93IG5vdGlmaWNhdGlvbiBBUEkgdG8gaW5jbHVkZSB0
aGUgc291cmNlIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmlu
ZGV4IDM4ZjE0Y2ZhMDk4NjdkMzY4OTViNzhkNTZlMmU5ZTM2NTU1ZTExMWMuLjc0ZDcwZGJhZjgz
YjIwMzNiZDI1OTNhZDI1YWY0ODQwMjVjMTUwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcApAQCAtOTU1LDYgKzk1NSwxNiBAQCBzdGF0aWMgYm9vbCBleGVjdXRl
U2Nyb2xsUGFnZUZvcndhcmQoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3Vy
Y2UsCiAgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+bG9naWNhbFNjcm9sbFJlY3Vy
c2l2ZWx5KFNjcm9sbEJsb2NrRGlyZWN0aW9uRm9yd2FyZCwgU2Nyb2xsQnlQYWdlKTsKIH0KIAor
c3RhdGljIGJvb2wgZXhlY3V0ZVNjcm9sbExpbmVVcChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRp
dG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gZnJhbWUtPmV2
ZW50SGFuZGxlcigpLT5zY3JvbGxSZWN1cnNpdmVseShTY3JvbGxVcCwgU2Nyb2xsQnlMaW5lKTsK
K30KKworc3RhdGljIGJvb2wgZXhlY3V0ZVNjcm9sbExpbmVEb3duKEZyYW1lKiBmcmFtZSwgRXZl
bnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbERvd24sIFNjcm9s
bEJ5TGluZSk7Cit9CisKIHN0YXRpYyBib29sIGV4ZWN1dGVTY3JvbGxUb0JlZ2lubmluZ09mRG9j
dW1lbnQoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0
cmluZyYpCiB7CiAgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+bG9naWNhbFNjcm9s
bFJlY3Vyc2l2ZWx5KFNjcm9sbEJsb2NrRGlyZWN0aW9uQmFja3dhcmQsIFNjcm9sbEJ5RG9jdW1l
bnQpOwpAQCAtMTUxNCw2ICsxNTI0LDggQEAgc3RhdGljIGNvbnN0IENvbW1hbmRNYXAmIGNyZWF0
ZUNvbW1hbmRNYXAoKQogICAgICAgICB7ICJSZW1vdmVGb3JtYXQiLCB7IGV4ZWN1dGVSZW1vdmVG
b3JtYXQsIHN1cHBvcnRlZCwgZW5hYmxlZFJhbmdlSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwg
dmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2Fi
bGVkIH0gfSwKICAgICAgICAgeyAiU2Nyb2xsUGFnZUJhY2t3YXJkIiwgeyBleGVjdXRlU2Nyb2xs
UGFnZUJhY2t3YXJkLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZCwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJTY3JvbGxQYWdlRm9yd2FyZCIsIHsgZXhlY3V0
ZVNjcm9sbFBhZ2VGb3J3YXJkLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxl
ZCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVj
dXRpb25XaGVuRGlzYWJsZWQgfSB9LAorICAgICAgICB7ICJTY3JvbGxMaW5lVXAiLCB7IGV4ZWN1
dGVTY3JvbGxMaW5lVXAsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkLCBz
dGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlv
bldoZW5EaXNhYmxlZCB9IH0sCisgICAgICAgIHsgIlNjcm9sbExpbmVEb3duIiwgeyBleGVjdXRl
U2Nyb2xsTGluZURvd24sIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkLCBz
dGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlv
bldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVu
dCIsIHsgZXhlY3V0ZVNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudCwgc3VwcG9ydGVkRnJvbU1l
bnVPcktleUJpbmRpbmcsIGVuYWJsZWQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5z
ZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAi
U2Nyb2xsVG9FbmRPZkRvY3VtZW50IiwgeyBleGVjdXRlU2Nyb2xsVG9FbmRPZkRvY3VtZW50LCBz
dXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZCwgc3RhdGVOb25lLCB2YWx1ZU51
bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9
LAogICAgICAgICB7ICJTZWxlY3RBbGwiLCB7IGV4ZWN1dGVTZWxlY3RBbGwsIHN1cHBvcnRlZCwg
ZW5hYmxlZCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxs
b3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tCmluZGV4IDczZDgzNWVjMmJiOTY5NWVkNDQ2NzAzZjRkOTE3OWY3NWNi
NzM2NGYuLmRjYTAxOGE0MmYxOWJhNGU0ZTlkMzBkMzAwMDNhYTMwMTcxYTI5OWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTQ4Niw2ICs0ODYsOCBA
QCBXRUJDT1JFX0NPTU1BTkQocGFzdGUpCiBXRUJDT1JFX0NPTU1BTkQocGFzdGVBc1BsYWluVGV4
dCkKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxQYWdlRG93bikKIFdFQkNPUkVfQ09NTUFORChzY3Jv
bGxQYWdlVXApCitXRUJDT1JFX0NPTU1BTkQoc2Nyb2xsTGluZURvd24pCitXRUJDT1JFX0NPTU1B
TkQoc2Nyb2xsTGluZVVwKQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1
bWVudCkKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxUb0VuZE9mRG9jdW1lbnQpCiBXRUJDT1JFX0NP
TU1BTkQoc2VsZWN0QWxsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDdkNWJkNjk3MTJiMmJkMDAwNDE4MTU4OWZmZmQ2ZDk1ZGExMTVlMTcuLjk2
MTFhOTNiM2EyNzE1Mjk2ZWEzN2VmNTM5NTc1ZjZkNDdkYTMwYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0x
Mi0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBzY3JvbGxMaW5lRG93bjogYW5kIHNjcm9sbExpbmVVcDogTlNSZXNwb25kZXIgc2VsZWN0
b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkw
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBT
Y3JvbGxCeUxpbmVDb21tYW5kcyBBUEkgdGVzdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvRWRpdG9yQ29tbWFuZHMubW06IEFkZGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9zaW1wbGUtdGFsbC5odG1sOiBBZGRl
ZC4KKwogMjAxMS0xMi0xOSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICB3ZWJraXRweTogcmVtb3ZlIHBvcnQuZXhlY3V0aXZlLCBwb3J0LmZpbGVzeXN0ZW0s
IHBvcnQudXNlciBwcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ2MTA3MzI5
ZmU2ZjA5YTIyYjNiNjYyOGJhNGU5NzVlMDg3MjIxMjIuLjk3N2I3NGE0ZTU5ZWI3NTM2NzU4M2E4
YWEwZTY0ZGMyMjNiYzcxZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03Myw2ICs3Myw4
IEBACiAJCUJDOTA5OTVFMTI1NjdCQzEwMDA4Mzc1NiAvKiBXS1N0cmluZy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzkwOTk1RDEyNTY3QkMxMDAw
ODM3NTYgLyogV0tTdHJpbmcuY3BwICovOyB9OwogCQlCQzkwOTk5NDEyNTZBQ0YxMDAwODM3NTYg
LyogV0tTdHJpbmdKU1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzkwOTk5MzEyNTZBQ0YxMDAwODM3NTYgLyogV0tTdHJpbmdKU1N0cmlu
Zy5jcHAgKi87IH07CiAJCUJDQTYxREI1MTE3MDBFRkQwMDQ2MEQxRSAvKiBXZWJLaXQyLmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QTYxREI0MTE3MDBFRkQwMDQ2MEQxRSAvKiBXZWJLaXQyLmZyYW1ld29yayAqLzsgfTsKKwkJQkNB
QTQ4NTYxNEEwNDQ0QzAwODhGQUM0IC8qIHNpbXBsZS10YWxsLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBQTQ4NTUxNEEwMjE2NDAw
ODhGQUM0IC8qIHNpbXBsZS10YWxsLmh0bWwgKi87IH07CisJCUJDQUE0ODU4MTRBMDQ0RDQwMDg4
RkFDNCAvKiBFZGl0b3JDb21tYW5kcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQUE0ODU3MTRBMDQ0RDQwMDg4RkFDNCAvKiBFZGl0b3JDb21tYW5k
cy5tbSAqLzsgfTsKIAkJQkNCNjgwNDAxMjZGQkZFMTAwNjQyQTYxIC8qIERvY3VtZW50U3RhcnRV
c2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0I2ODAzRjEyNkZCRkUxMDA2NDJBNjEgLyogRG9jdW1lbnRTdGFydFVz
ZXJTY3JpcHRBbGVydENyYXNoLmNwcCAqLzsgfTsKIAkJQkNCNjgwNDIxMjZGQkZGMTAwNjQyQTYx
IC8qIERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9CdW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNjgwNDExMjZGQkZGMTAw
NjQyQTYxIC8qIERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9CdW5kbGUuY3BwICov
OyB9OwogCQlCQ0I5RTlGMTExMjM1QkRFMDBBMTM3RTAgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCOUU5RjAxMTIz
NUJERTAwQTEzN0UwIC8qIENvY29hLmZyYW1ld29yayAqLzsgfTsKQEAgLTE0Miw2ICsxNDQsNyBA
QAogCQkJCTFBMDJDODcwMTI1RDRDRkQwMEUzRjRCRCAvKiBmaW5kLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQkM5MDk3ODQxMjU1NzFDRjAwMDgzNzU2IC8qIHNpbXBsZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMwQURCRTk2MTJGQ0E3OUIwMEQyQzEyOSAvKiBzaW1w
bGUtZm9ybS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUJDQUE0ODU2MTRBMDQ0NEMw
MDg4RkFDNCAvKiBzaW1wbGUtdGFsbC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMw
MUEyM0YyMTI2NjE1NjcwMEM5RUQ1NSAvKiBzcGFjZWJhci1zY3JvbGxpbmcuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQlCQzJEMDA2NDEyQUEwNENFMDBFNzMyQTMgLyogZmlsZS13aXRo
LWFuY2hvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTM3REM2NzkxMTQwRDdENzYw
MEFCQ0NEQiAvKiBET01SYW5nZU9mU3RyaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBA
IC0yMjUsNiArMjI4LDggQEAKIAkJQkM5MDk5NUQxMjU2N0JDMTAwMDgzNzU2IC8qIFdLU3RyaW5n
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU3RyaW5nLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5MDk5OTMxMjU2QUNGMTAwMDgzNzU2IC8q
IFdLU3RyaW5nSlNTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0tTdHJpbmdKU1N0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
QTYxREI0MTE3MDBFRkQwMDQ2MEQxRSAvKiBXZWJLaXQyLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBw
YXRoID0gV2ViS2l0Mi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCUJDQUE0ODU1MTRBMDIxNjQwMDg4RkFDNCAvKiBzaW1wbGUtdGFsbC5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gInNpbXBsZS10YWxsLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQ0FBNDg1NzE0QTA0NEQ0MDA4OEZBQzQgLyogRWRpdG9yQ29tbWFu
ZHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFZGl0b3JDb21t
YW5kcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCNjgwM0YxMjZGQkZFMTAw
NjQyQTYxIC8qIERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0
Q3Jhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0I2ODA0MTEyNkZCRkYx
MDA2NDJBNjEgLyogRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoX0J1bmRsZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFN0YXJ0VXNlclNj
cmlwdEFsZXJ0Q3Jhc2hfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNCOUU3QzcxMTIzNEUzQTAwQTEzN0UwIC8qIFRlc3RzQ29udHJvbGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0c0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTQ2NCw2ICs0NjksNyBAQAogCQkJCTFBREJFRkJDMTMwQzZBMDEwMEQ2
MUQxOSAvKiBzaW1wbGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcuaHRtbCAqLywKIAkJCQlDMEFE
QkU4NDEyRkNBNkI2MDBEMkMxMjkgLyogc2ltcGxlLWZvcm0uaHRtbCAqLywKIAkJCQkzM0RDODkw
RTE0MTk1MzkzMDA3NDdFRjcgLyogc2ltcGxlLWlmcmFtZS5odG1sICovLAorCQkJCUJDQUE0ODU1
MTRBMDIxNjQwMDg4RkFDNCAvKiBzaW1wbGUtdGFsbC5odG1sICovLAogCQkJCUJDOTA5Nzc4MTI1
NTcxQUIwMDA4Mzc1NiAvKiBzaW1wbGUuaHRtbCAqLywKIAkJCQlDMDJCNzg4MjEyNjYxNTQxMDAy
NkJGMEYgLyogc3BhY2ViYXItc2Nyb2xsaW5nLmh0bWwgKi8sCiAJCQkpOwpAQCAtNTU0LDYgKzU2
MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlDMEM1RDNCQzE0NTk4QjZGMDBBODAyQTYgLyog
R2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICovLAogCQkJCUMwQzVEM0JEMTQ1OThCNkYwMEE4MDJB
NiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tICovLAorCQkJCUJDQUE0ODU3MTRB
MDQ0RDQwMDg4RkFDNCAvKiBFZGl0b3JDb21tYW5kcy5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0g
bWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY5OSw2ICs3MDYsNyBAQAogCQkJ
CUJDMDI5QjFDMTQ4NkIyNTkwMDgxN0RBOSAvKiBSZXRhaW5QdHIubW0gaW4gU291cmNlcyAqLywK
IAkJCQlCQzkwMUUyNDE0OTJBRENFMDA3NEE2NjcgLyogV0tDb25uZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQTlFNTU5MTQ5ODBBOTkwMDAwMUE4QSAvKiBGdW5jdGlvbmFsLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUJDQUE0ODU4MTRBMDQ0RDQwMDg4RkFDNCAvKiBFZGl0b3JDb21t
YW5kcy5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL21hYy9FZGl0b3JDb21tYW5kcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9tYWMvRWRpdG9yQ29tbWFuZHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTgzZGM3YTUz
MjgyNzBiOTBjNzVjNzQwYWM5Njk0ZjQyODM5MGQ1OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvRWRpdG9yQ29tbWFuZHMubW0KQEAgLTAs
MCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJK
YXZhU2NyaXB0VGVzdC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgor
CituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRpZEZpbmlzaExvYWQ7
CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7
Cit9CisKK1RFU1QoV2ViS2l0MiwgU2Nyb2xsQnlMaW5lQ29tbWFuZHMpCit7CisgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFV0aWw6OmNyZWF0ZUNvbnRleHRX
aXRoSW5qZWN0ZWRCdW5kbGUoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSk7CisKKyAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50OworICAgIG1l
bXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CisgICAgbG9hZGVy
Q2xpZW50LnZlcnNpb24gPSAwOworICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJh
bWUgPSBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7CisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVu
dCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudCk7CisKKyAgICBXS1JldGFpblB0cjxXS1VS
TFJlZj4gdXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtdGFs
bCIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQo
KSk7CisgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKworICAgIEVYUEVDVF9KU19FUSh3
ZWJWaWV3LnBhZ2UoKSwgIndpbmRvdy5zY3JvbGxZIiwgIjAiKTsKKworICAgIEFTU0VSVF9UUlVF
KFt3ZWJWaWV3LnBsYXRmb3JtVmlldygpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2Ny
b2xsTGluZURvd246KV0pOworICAgIFt3ZWJWaWV3LnBsYXRmb3JtVmlldygpIHNjcm9sbExpbmVE
b3duOm5pbF07CisKKyAgICBFWFBFQ1RfSlNfRVEod2ViVmlldy5wYWdlKCksICJ3aW5kb3cuc2Ny
b2xsWSIsICI0MCIpOworCisgICAgQVNTRVJUX1RSVUUoW3dlYlZpZXcucGxhdGZvcm1WaWV3KCkg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzY3JvbGxMaW5lVXA6KV0pOworICAgIFt3ZWJW
aWV3LnBsYXRmb3JtVmlldygpIHNjcm9sbExpbmVVcDpuaWxdOworCisgICAgRVhQRUNUX0pTX0VR
KHdlYlZpZXcucGFnZSgpLCAid2luZG93LnNjcm9sbFkiLCAiMCIpOworfQorCit9IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvc2ltcGxlLXRhbGwuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9zaW1wbGUtdGFsbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyMjBlOWIyZDViYmI3YWE5OTFhYTdi
YjkzY2VjMjA2YWVkMTgwYTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvc2ltcGxlLXRhbGwuaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKyAgU2ltcGxlIGFuZCB0YWxsIEhUTUwgZmlsZS4KKyAg
PGRpdiBzdHlsZT0iaGVpZ2h0OiAzMDAwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="120129"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>