<?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>91331</bug_id>
          
          <creation_ts>2012-07-14 21:18:41 -0700</creation_ts>
          <short_desc>Windowless WebView not firing JavaScript load event if there is a media element</short_desc>
          <delta_ts>2012-07-15 14:27:43 -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>Media</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>benjamin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>669917</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-07-14 21:18:41 -0700</bug_when>
    <thetext>Loading a page with a media element, such as:

  &lt;body&gt;&lt;audio src=&quot;invalid.mp3&quot;&gt;&lt;/body&gt;

In a WebView without a window results in that page not firing its JavaScript &quot;load&quot; event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669918</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-07-14 21:19:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/11865836&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669922</commentid>
    <comment_count>2</comment_count>
      <attachid>152447</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-07-14 21:43:01 -0700</bug_when>
    <thetext>Created attachment 152447
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669923</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-14 21:44:42 -0700</bug_when>
    <thetext>Attachment 152447 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;]&quot; exit_code: 1
Total errors found: 0 in 0 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669924</commentid>
    <comment_count>4</comment_count>
      <attachid>152448</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-07-14 21:45:15 -0700</bug_when>
    <thetext>Created attachment 152448
[PATCH] Proposed Fix

This time with a real patch and not dragging in the wrong file ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669980</commentid>
    <comment_count>5</comment_count>
      <attachid>152448</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-07-15 09:49:42 -0700</bug_when>
    <thetext>Comment on attachment 152448
[PATCH] Proposed Fix

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        In prepareLoad we start deferring the load event. If we fall into this
&gt; +        clause where the page can not start loading media we bail, potentially
&gt; +        indefinitely waiting until we can start loading media. Since we can not
&gt; +        be certain this will ever happen, we should stop deferring the page&apos;s
&gt; +        load event.

Nit: prepareLoad -&gt; prepareForLoad

&gt; Source/WebCore/ChangeLog:15
&gt; +        Test: WebKit1.WindowlessWebViewWithMedia TestWebKitAPI test since that
&gt; +        is the port and only way that this path was reachable right now.

Nit: &quot;that is the port and only way that ...&quot; is a bit confusing.

&gt; Tools/ChangeLog:10
&gt; +        Test a windowless WebView loading a page with a media element. The load
&gt; +        event should happen on the next spin of the run loop, but we spin check
&gt; +        the page, with a timeout of 250ms.

I don&apos;t know about WebKit API tests, but a 250ms timeout in a layout test is short enough that the test would be flakey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670017</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-07-15 14:04:28 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 152448 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152448&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        In prepareLoad we start deferring the load event. If we fall into this
&gt; &gt; +        clause where the page can not start loading media we bail, potentially
&gt; &gt; +        indefinitely waiting until we can start loading media. Since we can not
&gt; &gt; +        be certain this will ever happen, we should stop deferring the page&apos;s
&gt; &gt; +        load event.
&gt; 
&gt; Nit: prepareLoad -&gt; prepareForLoad

Arg, yep, thanks!

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        Test: WebKit1.WindowlessWebViewWithMedia TestWebKitAPI test since that
&gt; &gt; +        is the port and only way that this path was reachable right now.
&gt; 
&gt; Nit: &quot;that is the port and only way that ...&quot; is a bit confusing.

You&apos;d think I&apos;d get better at English over time! I&apos;ll fix this.

&gt; &gt; Tools/ChangeLog:10
&gt; &gt; +        Test a windowless WebView loading a page with a media element. The load
&gt; &gt; +        event should happen on the next spin of the run loop, but we spin check
&gt; &gt; +        the page, with a timeout of 250ms.
&gt; 
&gt; I don&apos;t know about WebKit API tests, but a 250ms timeout in a layout test is short enough that the test would be flakey.

In my experience, this test always passes in &lt;100ms. Currently, it really just needs 1 turn
of the run loop to determine if it has succeeded or not. The 250ms timeout is a smaller
timeout then the TestWebKitAPI timeout, so we would report a failure instead of timing out
the long way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670018</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-07-15 14:27:43 -0700</bug_when>
    <thetext>Landed in r122683: &lt;http://trac.webkit.org/changeset/122683&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152447</attachid>
            <date>2012-07-14 21:43:01 -0700</date>
            <delta_ts>2012-07-14 21:45:44 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>WindowlessWebViewWithMedia 2.mm</filename>
            <type>text/plain</type>
            <size>2945</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">LyoKICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
ICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwogKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgogKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgogKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgogKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgogKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwoKI2luY2x1ZGUgImNv
bmZpZy5oIgojaW5jbHVkZSAiV2ViS2l0QWdub3N0aWNUZXN0LmgiCgojaW5jbHVkZSAiSmF2YVNj
cmlwdFRlc3QuaCIKI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CgpuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CgpjbGFzcyBXaW5kb3dsZXNz
V2ViVmlld1dpdGhNZWRpYSA6IHB1YmxpYyBXZWJLaXRBZ25vc3RpY1Rlc3QgewpwdWJsaWM6CiAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmlldz4gdm9pZCBydW5UZXN0KFZpZXcpOwoKICAgIC8vIFdl
YktpdEFnbm9zdGljVGVzdAogICAgdmlydHVhbCBOU1VSTCAqdXJsKCkgY29uc3QgeyByZXR1cm4g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIldpbmRvd2xlc3NXZWJWaWV3
V2l0aE1lZGlhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsgfQogICAgdmlydHVhbCB2b2lkIGRpZExvYWRVUkwoV2ViVmlldyAq
d2ViVmlldykgeyBydW5UZXN0KHdlYlZpZXcpOyB9CiAgICB2aXJ0dWFsIHZvaWQgZGlkTG9hZFVS
TChXS1ZpZXcgKndrVmlldykgeyBydW5UZXN0KHdrVmlldyk7IH0KfTsKCnN0YXRpYyB2b2lkIHNw
aW5Mb29wKE5TVGltZUludGVydmFsIHRpbWVvdXQsIEJPT0wgKF5ibG9jaykoKSkKewogICAgaWYg
KHRpbWVvdXQgPD0gMCkKICAgICAgICByZXR1cm47CgogICAgTlNUaW1lSW50ZXJ2YWwgZW5kID0g
W1tOU0RhdGUgZGF0ZV0gdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXSArIHRpbWVvdXQ7
CiAgICBOU0RhdGUgKmVuZERhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VS
ZWZlcmVuY2VEYXRlOmVuZF07CiAgICAKICAgIHdoaWxlICghYmxvY2soKSkgewogICAgICAgIFtb
TlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJl
Zm9yZURhdGU6ZW5kRGF0ZV07CiAgICAgICAgaWYgKFtbTlNEYXRlIGRhdGVdIHRpbWVJbnRlcnZh
bFNpbmNlUmVmZXJlbmNlRGF0ZV0gPiBlbmQpCiAgICAgICAgICAgIGJyZWFrOwogICAgfQp9Cgp0
ZW1wbGF0ZSA8dHlwZW5hbWUgVmlldz4Kdm9pZCBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYTo6
cnVuVGVzdChWaWV3IHZpZXcpCnsKICAgIEVYUEVDVF9FUShuaWwsIFt2aWV3IHdpbmRvd10pOwog
ICAgCiAgICBzcGluTG9vcCgwLjUsIF57CiAgICAgICAgTlNTdHJpbmcgKnJlc3VsdCA9IGpzRXZh
bCh2aWV3LCBAIndpbmRvdy5kaWRUcmlnZ2VyTG9hZCIpOwogICAgICAgIHJldHVybiBbcmVzdWx0
IGlzRXF1YWxUb1N0cmluZzpAInRydWUiXTsKICAgIH0pOwoKICAgIEVYUEVDVF9KU19FUSh2aWV3
LCAid2luZG93LmRpZFRyaWdnZXJMb2FkIiwgInRydWUiKTsKfQoKVEVTVF9GKFdpbmRvd2xlc3NX
ZWJWaWV3V2l0aE1lZGlhLCBXZWJLaXQpCnsKICAgIHJ1bldlYktpdDFUZXN0KCk7Cn0KClRFU1Rf
RihXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYSwgV2ViS2l0MikKewogICAgcnVuV2ViS2l0MlRl
c3QoKTsKfQoKfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152448</attachid>
            <date>2012-07-14 21:45:15 -0700</date>
            <delta_ts>2012-07-15 09:49:41 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>1.patch</filename>
            <type>text/plain</type>
            <size>12249</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiYmM2ZDgxLi41MDJiZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDctMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXaW5kb3dsZXNzIFdlYlZpZXcgbm90IGZpcmluZyBKYXZhU2NyaXB0IGxvYWQgZXZl
bnQgaWYgdGhlcmUgaXMgYSBtZWRpYSBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTMzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEluIHByZXBhcmVMb2FkIHdlIHN0YXJ0IGRlZmVycmluZyB0
aGUgbG9hZCBldmVudC4gSWYgd2UgZmFsbCBpbnRvIHRoaXMKKyAgICAgICAgY2xhdXNlIHdoZXJl
IHRoZSBwYWdlIGNhbiBub3Qgc3RhcnQgbG9hZGluZyBtZWRpYSB3ZSBiYWlsLCBwb3RlbnRpYWxs
eQorICAgICAgICBpbmRlZmluaXRlbHkgd2FpdGluZyB1bnRpbCB3ZSBjYW4gc3RhcnQgbG9hZGlu
ZyBtZWRpYS4gU2luY2Ugd2UgY2FuIG5vdAorICAgICAgICBiZSBjZXJ0YWluIHRoaXMgd2lsbCBl
dmVyIGhhcHBlbiwgd2Ugc2hvdWxkIHN0b3AgZGVmZXJyaW5nIHRoZSBwYWdlJ3MKKyAgICAgICAg
bG9hZCBldmVudC4KKworICAgICAgICBUZXN0OiBXZWJLaXQxLldpbmRvd2xlc3NXZWJWaWV3V2l0
aE1lZGlhIFRlc3RXZWJLaXRBUEkgdGVzdCBzaW5jZSB0aGF0CisgICAgICAgIGlzIHRoZSBwb3J0
IGFuZCBvbmx5IHdheSB0aGF0IHRoaXMgcGF0aCB3YXMgcmVhY2hhYmxlIHJpZ2h0IG5vdy4KKwor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50Ojpsb2FkSW50ZXJuYWwpOgorCiAyMDEyLTA3LTE0ICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTIyNjE0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKaW5kZXggYmMxYTllNi4uN2FjNGUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCkBAIC03NTksNiArNzU5LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojps
b2FkSW50ZXJuYWwoKQogICAgIC8vIElmIHdlIGNhbid0IHN0YXJ0IGEgbG9hZCByaWdodCBhd2F5
LCBzdGFydCBpdCBsYXRlci4KICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpOwog
ICAgIGlmIChwYWdlQ29uc2VudFJlcXVpcmVkRm9yTG9hZCgpICYmIHBhZ2UgJiYgIXBhZ2UtPmNh
blN0YXJ0TWVkaWEoKSkgeworICAgICAgICBzZXRTaG91bGREZWxheUxvYWRFdmVudChmYWxzZSk7
CiAgICAgICAgIGlmIChtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgZG9jdW1lbnQoKS0+YWRkTWVkaWFDYW5TdGFydExpc3RlbmVyKHRo
aXMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGYwNTYyYTUuLjExYmExMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wNy0xNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdpbmRvd2xlc3MgV2ViVmlldyBub3Qg
ZmlyaW5nIEphdmFTY3JpcHQgbG9hZCBldmVudCBpZiB0aGVyZSBpcyBhIG1lZGlhIGVsZW1lbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMzMxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBhIHdp
bmRvd2xlc3MgV2ViVmlldyBsb2FkaW5nIGEgcGFnZSB3aXRoIGEgbWVkaWEgZWxlbWVudC4gVGhl
IGxvYWQKKyAgICAgICAgZXZlbnQgc2hvdWxkIGhhcHBlbiBvbiB0aGUgbmV4dCBzcGluIG9mIHRo
ZSBydW4gbG9vcCwgYnV0IHdlIHNwaW4gY2hlY2sKKyAgICAgICAgdGhlIHBhZ2UsIHdpdGggYSB0
aW1lb3V0IG9mIDI1MG1zLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEuaHRtbDogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEubW06IEFk
ZGVkLgorICAgICAgICAoLVtXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYUZyYW1lTG9hZERlbGVn
YXRlIHdlYlZpZXc6ZGlkRmluaXNoTG9hZEZvckZyYW1lOl0pOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6c3Bpbkxvb3ApOiBTcGluIGNoZWNrIHdpdGggdGltZW91dC4gUnVucyBhIGJsb2NrIGVh
Y2ggc3BpbiB0byBlYXJseSBiYWlsLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisK
IDIwMTItMDctMTQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjI2NjUuCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDg4NTJmZjkuLjU2MjY1ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03OCw2ICs3OCw4IEBACiAJCTlCMjZGQ0NBMTU5RDE2REUwMENDMzc2NSAvKiBIVE1MRm9ybUNv
bGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI2RkNCNDE1OUQxNUU3MDBDQzM3NjUgLyogSFRNTEZvcm1D
b2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi87IH07CiAJCTlCNEY4RkE0MTU5RDUyQjEwMDJEOUY5
NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNEY4RkEzMTU5RDUyQjEwMDJEOUY5NCAvKiBIVE1MQ29s
bGVjdGlvbk5hbWVkSXRlbS5tbSAqLzsgfTsKIAkJOUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8q
IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI0RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhU
TUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi87IH07CisJCUE1RTIwMjczMTVCMjE4MTkwMEMx
M0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1RTIwMjcyMTVCMjE4MTkwMEMxM0UxNCAvKiBX
aW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5tbSAqLzsgfTsKKwkJQTVFMjAyNzUxNUIyMUY2RTAw
QzEzRTE0IC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVFMjAyNzAxNUIyMTgwNjAw
QzEzRTE0IC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLmh0bWwgKi87IH07CiAJCUE3QTk2
NkRCMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBOTY2REExNDBF
Q0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgKi87IH07CiAJ
CUI1NUYxMUEwMTUxNjgzNEYwMDkxNTkxNiAvKiBBdHRyaWJ1dGVkU3RyaW5nLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU1RjExOUYxNTE2ODM0RjAw
OTE1OTE2IC8qIEF0dHJpYnV0ZWRTdHJpbmcubW0gKi87IH07CiAJCUI1NUYxMUI3MTUxN0QwMzMw
MDkxNTkxNiAvKiBhdHRyaWJ1dGVkU3RyaW5nQ3VzdG9tRm9udC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1NUYxMUIwMTUxN0EyQzQw
MDkxNTkxNiAvKiBhdHRyaWJ1dGVkU3RyaW5nQ3VzdG9tRm9udC5odG1sICovOyB9OwpAQCAtMjAy
LDYgKzIwNCw3IEBACiAJCQkJOUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29s
bGVjdGlvbk5hbWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUUxMjIwRENB
MTU1QjI4QUEwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWRE
ZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxN0U3RTA0MTUxMTE5QzEw
MEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlBNUUyMDI3NTE1QjIxRjZFMDBDMTNFMTQgLyog
V2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQkzNzkwMjhCOTE0RkFDMjRDMDA3RTZCNDMgLyogYWNjZXB0c0ZpcnN0TW91c2UuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQkzM0RDODkxMjE0MTk1NUZFMDA3NDdFRjcgLyogc2ltcGxl
LWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFBOUU1MkM5MTNFNjVFRjQw
MDY5MTdGNSAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0z
MDAsNiArMzAzLDggQEAKIAkJOUIyNkZDQjQxNTlEMTVFNzAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29s
bGVjdGlvbk5hbWVkSXRlbS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSFRNTEZv
cm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCNEY4RkEzMTU5RDUyQjEwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhUTUxDb2xsZWN0aW9uTmFt
ZWRJdGVtLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjRGOEZBNjE1OUQ1MkNB
MDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE1RTIwMjcwMTVCMjE4MDYwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2Vi
Vmlld1dpdGhNZWRpYS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gV2luZG93bGVz
c1dlYlZpZXdXaXRoTWVkaWEuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTVF
MjAyNzIxNUIyMTgxOTAwQzEzRTE0IC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2luZG93bGVzc1dlYlZpZXdX
aXRoTWVkaWEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QTk2NkRBMTQwRUND
QzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNw
cDsgcGF0aCA9IFdURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCNTVGMTE5RjE1MTY4MzRGMDA5MTU5MTYgLyogQXR0cmlidXRl
ZFN0cmluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF0dHJp
YnV0ZWRTdHJpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1NUYxMUIwMTUx
N0EyQzQwMDkxNTkxNiAvKiBhdHRyaWJ1dGVkU3RyaW5nQ3VzdG9tRm9udC5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gYXR0cmlidXRlZFN0cmluZ0N1c3RvbUZvbnQuaHRtbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwMSw2ICs3MDYsNyBAQAogCQkJCTM3QTY4OTVE
MTQ4QTlCNTAwMDUxMDBGQSAvKiBTdWJyZXNvdXJjZUVycm9yQ3Jhc2gubW0gKi8sCiAJCQkJRTQ5
MDI5NjcxNEUyRTNBNDAwMkJFREQxIC8qIFR5cGluZ1N0eWxlQ3Jhc2gubW0gKi8sCiAJCQkJNTFG
QkJCNEMxNTEzRDRFOTAwODIyNzM4IC8qIFdlYlZpZXdDYW5QYXN0ZVVSTC5tbSAqLywKKwkJCQlB
NUUyMDI3MjE1QjIxODE5MDBDMTNFMTQgLyogV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEubW0g
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC03MjEsNiArNzI3LDcgQEAKIAkJCQk1MTdFN0UwMzE1MTExODc1MDBEMEIwMDggLyogTWVtb3J5
Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgKi8sCiAJCQkJQzA3RTZD
QjExM0ZENzM4QTAwMzhCMjJCIC8qIGRldmljZVBpeGVsUmF0aW8uaHRtbCAqLywKIAkJCQlDNTQw
Rjc4MzE1MkU1QTc4MDBBNDBDOEMgLyogdmVyYm9zZU1hcmt1cC5odG1sICovLAorCQkJCUE1RTIw
MjcwMTVCMjE4MDYwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5odG1sICov
LAogCQkJKTsKIAkJCW5hbWUgPSBSZXNvdXJjZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtOTMzLDYgKzk0MCw3IEBACiAJCQkJRjY2MEFBMEQxNUE1RjA2MTAwM0ExMjQzIC8qIEdl
dEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY2NjBBQTEzMTVBNjE5QzkwMDNBMTI0MyAvKiBJbmplY3RlZEJ1bmRsZUlu
aXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja1dpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYxN0JCRDYxNUFGNkM0RDAwN0FCNzUzIC8qIFdlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJv
Y2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNUUyMDI3MzE1QjIxODE5MDBDMTNFMTQgLyog
V2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlh
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaW5kb3dsZXNzV2ViVmlld1dp
dGhNZWRpYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNzMwZmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaW5kb3ds
ZXNzV2ViVmlld1dpdGhNZWRpYS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKyAgICBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgcGFnZSBzZW5k
cyBpdCdzIG9ubG9hZCBldmVudCBldmVuIGlmIGl0IGhhcyBtZWRpYSBpbiBhIHdpbmRvd2xlc3Mg
V2ViVmlldy4KKyAgICA8YXVkaW8gc3JjPSJpbnZhbGlkLm1wMyI+PC9hdWRpbz4KKyAgICA8c2Ny
aXB0PgorICAgIHZhciBkaWRUcmlnZ2VyTG9hZCA9IGZhbHNlOworICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGlkVHJpZ2dlckxv
YWQgPSB0cnVlOworICAgIH0sIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbmRvd2xlc3NX
ZWJWaWV3V2l0aE1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2luZG93
bGVzc1dlYlZpZXdXaXRoTWVkaWEubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYmY1OTNlNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tCkBAIC0wLDAgKzEsODYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSmF2YVNjcmlwdFRlc3QuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KKworCitzdGF0aWMgYm9vbCBkaWRGaW5pc2hMb2FkOworCitAaW50ZXJmYWNlIFdpbmRvd2xl
c3NXZWJWaWV3V2l0aE1lZGlhRnJhbWVMb2FkRGVsZWdhdGUgOiBOU09iamVjdAorQGVuZAorCitA
aW1wbGVtZW50YXRpb24gV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWFGcmFtZUxvYWREZWxlZ2F0
ZQorCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmluaXNoTG9hZEZvckZy
YW1lOihXZWJGcmFtZSAqKWZyYW1lCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CisK
K0BlbmQKKworCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyB2b2lkIHNwaW5M
b29wKE5TVGltZUludGVydmFsIHRpbWVvdXQsIEJPT0wgKF5ibG9jaykoKSkKK3sKKyAgICBpZiAo
dGltZW91dCA8PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICBOU1RpbWVJbnRlcnZhbCBlbmQg
PSBbW05TRGF0ZSBkYXRlXSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdICsgdGltZW91
dDsKKyAgICBOU0RhdGUgKmVuZERhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2lu
Y2VSZWZlcmVuY2VEYXRlOmVuZF07CisKKyAgICB3aGlsZSAoIWJsb2NrKCkpIHsKKyAgICAgICAg
W1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUg
YmVmb3JlRGF0ZTplbmREYXRlXTsKKyAgICAgICAgaWYgKFtbTlNEYXRlIGRhdGVdIHRpbWVJbnRl
cnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0gPiBlbmQpCisgICAgICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKK1RFU1QoV2ViS2l0MSwgV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEpCit7CisgICAg
TlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0
XTsKKworICAgIFJldGFpblB0cjxXZWJWaWV3PiB3ZWJWaWV3KEFkb3B0TlMsIFtbV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEyMCwgMjAwKSBmcmFtZU5hbWU6
bmlsIGdyb3VwTmFtZTpuaWxdKTsKKyAgICBSZXRhaW5QdHI8V2luZG93bGVzc1dlYlZpZXdXaXRo
TWVkaWFGcmFtZUxvYWREZWxlZ2F0ZT4gdGVzdENvbnRyb2xsZXIoQWRvcHROUywgW1dpbmRvd2xl
c3NXZWJWaWV3V2l0aE1lZGlhRnJhbWVMb2FkRGVsZWdhdGUgbmV3XSk7CisgICAgd2ViVmlldy5n
ZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IHRlc3RDb250cm9sbGVyLmdldCgpOworICAgIFtbd2Vi
Vmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIldpbmRvd2xlc3NX
ZWJWaWV3V2l0aE1lZGlhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOworCisgICAgRVhQRUNUX0VRKG5pbCwgW3dlYlZpZXcu
Z2V0KCkgd2luZG93XSk7CisKKyAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOyAgICAKKwor
ICAgIHNwaW5Mb29wKDAuMjUsIF57CisgICAgICAgIHJldHVybiBbW3dlYlZpZXcuZ2V0KCkgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmc6QCJ3aW5kb3cuZGlkVHJpZ2dlckxv
YWQiXSBpc0VxdWFsVG9TdHJpbmc6QCJ0cnVlIl07CisgICAgfSk7CisKKyAgICBFWFBFQ1RfSlNf
RVEod2ViVmlldy5nZXQoKSwgIndpbmRvdy5kaWRUcmlnZ2VyTG9hZCIsICJ0cnVlIik7CisKKyAg
ICBbcG9vbCBkcmFpbl07Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>
<flag name="review"
          id="161141"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>