<?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>189165</bug_id>
          
          <creation_ts>2018-08-30 11:28:32 -0700</creation_ts>
          <short_desc>[iOS] Multiple WKWebViewAutofillTests are flaky failures</short_desc>
          <delta_ts>2019-01-22 15:24:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Other</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="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jbedard</cc>
    
    <cc>jlewis3</cc>
    
    <cc>lforschler</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>realdawei</cc>
    
    <cc>thorton</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1455316</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-08-30 11:28:32 -0700</bug_when>
    <thetext>WKWebViewAutofillTests.StandalonePasswordField is a flaky failure on iOS Simulator bots

    TestWebKitAPI.WKWebViewAutofillTests.StandalonePasswordField
        LEAK: 1 WebProcessPool
        LEAK: 1 WebPageProxy
        
        /Volumes/Data/slave/ios-simulator-11-debug/build/Tools/TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:142
        Value of: [webView textInputHasAutofillContext]
          Actual: true
        Expected: false

https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/builds/6188/steps/run-api-tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455327</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-30 11:41:25 -0700</bug_when>
    <thetext>I suspect we need to wait for the input session to actually begin in these tests, since that can be deferred until the next post-layout EditorState arrives in the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455328</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-30 11:46:05 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #1)
&gt; I suspect we need to wait for the input session to actually begin in these
&gt; tests, since that can be deferred until the next post-layout EditorState
&gt; arrives in the UI process.

Never mind, textInputHasAutofillContext already waits for the next presentation update (which should include an up-to-date EditorState). Need to keep looking...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457788</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-09-07 17:30:54 -0700</bug_when>
    <thetext>It looks like there are more flaky autofill tests:

    TestWebKitAPI.WKWebViewAutofillTests.StandalonePasswordField
        LEAK: 1 WebProcessPool
        LEAK: 1 WebPageProxy
        
        /Volumes/Data/slave/ios-simulator-11-debug/build/Tools/TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:142
        Value of: [webView textInputHasAutofillContext]
          Actual: true
        Expected: false

https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/builds/6339/steps/run-api-tests/logs/stdio


    TestWebKitAPI.WKWebViewAutofillTests.UsernameAndPasswordFieldSeparatedByRadioButton
        
        /Volumes/Data/slave/ios-simulator-11-release/build/Tools/TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:115
        Value of: [webView textInputHasAutofillContext]
          Actual: true
        Expected: false

https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Release%20WK2%20(Tests)/builds/7303/steps/run-api-tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492995</commentid>
    <comment_count>4</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-01-09 10:27:54 -0800</bug_when>
    <thetext>*** Bug 193288 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495948</commentid>
    <comment_count>5</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-01-18 11:30:07 -0800</bug_when>
    <thetext>Can we prioritize this?
I am working on EWS for API tests, and this flaky failure is creating problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495949</commentid>
    <comment_count>6</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-01-18 11:34:14 -0800</bug_when>
    <thetext>One more related flaky test: TestWebKitAPI.WKWebViewAutofillTests.UsernameAndPasswordField

Noticed in: https://ews-build.webkit-uat.org/#/builders/20/builds/215

It seems like all these flaky tests are failing at similar place:
EXPECT_FALSE([webView textInputHasAutofillContext]);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495950</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-18 11:35:19 -0800</bug_when>
    <thetext>Sounds good! I will prioritize this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496663</commentid>
    <comment_count>8</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-21 15:37:50 -0800</bug_when>
    <thetext>I can reproduce this somewhat regularly by running the function body of WKWebViewAutofillTests.StandalonePasswordField 50 times in a for loop.

In the implementation of the testing helper method -textInputHasAutofillContext, we first attempt to wait until the next presentation update before consulting -_autofillContext; the idea is that by bouncing to the web process and back, we allow any focused element changes (due to elements blurring or receiving focus) to finish before checking for state that depends on the UI-side input session.

However, in the case where an element is being blurred, this doesn&apos;t (always) work because the IPC message when blurring an element is dispatched asynchronously on the main thread (see: WebPage::elementDidBlur). This means that we&apos;re racing the element blur IPC message dispatch against the remote layer tree commit. In most cases (at least, from what I observe on my machine), we win the race because there isn&apos;t already a layer tree flush scheduled in the web process when we try to wait for the next presentation update, and so we get a sequence of events like this:

(UI process): evaluate JS (&quot;document.activeElement.blur()&quot;)
(UI process): do after next presentation update
(Web process): WebPage::elementDidBlur()
(Web process): RemoteLayerTreeDrawingArea::flushLayers()
(Web process): WebPage::elementDidBlur() - actually send the message
(Web process): BackingStoreFlusher::flush()
(UI process): WebPageProxy::elementDidBlur()
(UI process): call do after next presentation update completion handler

...but if we lose the race, it looks something like:

(Web process): RemoteLayerTreeDrawingArea::flushLayers()
  .
  .
  .
(UI process): evaluate JS (&quot;document.activeElement.blur()&quot;)
(UI process): do after next presentation update
(Web process): WebPage::elementDidBlur()
(Web process): BackingStoreFlusher::flush()
(Web process): WebPage::elementDidBlur() - actually send the message
(UI process): call do after next presentation update completion handler
(UI process): WebPageProxy::elementDidBlur()

...and so in this case, we subsequently continue the test before the input session is actually dismissed in the UI process. The fix is probably to avoid this race by using these testing hooks to figure out when we&apos;ve focused or blurred, rather than waiting for presentation updates:

- (void)didStartFormControlInteraction;
- (void)didEndFormControlInteraction;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496670</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-21 16:15:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/47433765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496674</commentid>
    <comment_count>10</comment_count>
      <attachid>359711</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-21 16:29:34 -0800</bug_when>
    <thetext>Created attachment 359711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496681</commentid>
    <comment_count>11</comment_count>
      <attachid>359713</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-21 17:19:53 -0800</bug_when>
    <thetext>Created attachment 359713
Fix macOS builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496932</commentid>
    <comment_count>12</comment_count>
      <attachid>359713</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-22 13:23:20 -0800</bug_when>
    <thetext>Comment on attachment 359713
Fix macOS builds

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

&gt; Tools/TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:83
&gt; -    [webView stringByEvaluatingJavaScript:@&quot;user.focus()&quot;];
&gt; +    [webView evaluateJavaScriptAndWaitForInputSessionToChange:@&quot;user.focus()&quot;];

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496958</commentid>
    <comment_count>13</comment_count>
      <attachid>359713</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 14:04:40 -0800</bug_when>
    <thetext>Comment on attachment 359713
Fix macOS builds

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

Thanks for the review!

&gt; Tools/ChangeLog:38
&gt; +        Monotonically increasing identifier that&apos;s incremeneted whenever an input session is started in the UI process.

Oops, &quot;incremeneted&quot; :|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496990</commentid>
    <comment_count>14</comment_count>
      <attachid>359777</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 14:43:32 -0800</bug_when>
    <thetext>Created attachment 359777
Patch for landing (w/ typo fix)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497024</commentid>
    <comment_count>15</comment_count>
      <attachid>359777</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-22 15:21:54 -0800</bug_when>
    <thetext>Comment on attachment 359777
Patch for landing (w/ typo fix)

Clearing flags on attachment: 359777

Committed r240301: &lt;https://trac.webkit.org/changeset/240301&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359711</attachid>
            <date>2019-01-21 16:29:34 -0800</date>
            <delta_ts>2019-01-21 17:19:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189165-20190121162933.patch</filename>
            <type>text/plain</type>
            <size>14371</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTk4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjI5NmZlZmRlMmI5YWNmYmEzYTdlMWJlNDg4YWMzYzA4
MDlmNTM5MC4uYmRjZWJkNzIzM2NkZWI4NzY2NjYwMTQzYTY0YmE3NzRhMWFkYjcyYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUz
IEBACisyMDE5LTAxLTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdIE11bHRpcGxlIFdLV2ViVmlld0F1dG9maWxsVGVzdHMgYXJlIGZsYWt5
IGZhaWx1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODkxNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NDMzNzY1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBjdXJy
ZW50bHkgZmxha3kgYmVjYXVzZSB0aGV5IGV4cGVjdCBhbiBpbnZvY2F0aW9uIG9mICJFbGVtZW50
LmJsdXIoKSIgaW4gdGhlIHdlYiBwcm9jZXNzIHRvCisgICAgICAgIGltbWVkaWF0ZWx5IGRpc3Bh
dGNoIGFuIElQQyBtZXNzYWdlIHRvIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB0aGF0IHRoZSBlbGVt
ZW50IGhhcyBiZWVuIGJsdXJyZWQuIEluIHBhcnRpY3VsYXIsCisgICAgICAgIHRoZSAtdGV4dElu
cHV0SGFzQXV0b2ZpbGxDb250ZXh0IGhlbHBlciBhc3N1bWVzIHRoYXQgd2FpdGluZyBmb3IgdGhl
IG5leHQgcmVtb3RlIGxheWVyIHRyZWUgY29tbWl0IGluIHRoZSBVSQorICAgICAgICBwcm9jZXNz
IGluIHN1ZmZpY2llbnQgdG8gZW5zdXJlIHRoYXQgYW55IHByZXZpb3VzIGFjdGlvbiB0aGF0IGJs
dXJyZWQgdGhlIGZvY3VzZWQgZWxlbWVudCBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgd291
bGQgbWFrZSBpdHMgd2F5IHRvIHRoZSBVSSBwcm9jZXNzIGJ5IHRoZSB0aW1lIHRoZSBsYXllciB0
cmVlIGNvbW1pdCBpcyBmaW5pc2hlZC4KKworICAgICAgICBIb3dldmVyLCBXZWJQYWdlOjplbGVt
ZW50RGlkQmx1ciBzZW5kcyBpdHMgSVBDIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3MgYXN5bmNo
cm9ub3VzbHksIHVzaW5nIGNhbGxPbk1haW5UaHJlYWQuCisgICAgICAgIFRoaXMgbWVhbnMgdGhh
dCBpZiBhIGxheWVyIHRyZWUgZmx1c2ggd2FzIGFscmVhZHkgc2NoZWR1bGVkIGluIHRoZSB3ZWIg
cHJvY2VzcyBiZWZvcmUgdGhlIGVsZW1lbnQgd2FzIGJsdXJyZWQsCisgICAgICAgIHRoZSBlbGVt
ZW50IGJsdXIgSVBDIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mgd2lsbCBsb3NlIHRoZSByYWNl
IGFnYWluc3QgdGhlIGxheWVyIHRyZWUgY29tbWl0LCBhbmQgdGhlIHRlc3QKKyAgICAgICAgd2ls
bCBmYWlsIGJlY2F1c2UgaXQgYXNrcyBmb3IgLV9hdXRvZmlsbENvbnRleHQgdG9vIGVhcmx5Lgor
CisgICAgICAgIFRvIGZpeCB0aGlzLCB3ZSB0d2VhayB0aGVzZSB0ZXN0cyB0byBhY3R1YWxseSB3
YWl0IHVudGlsIHRoZSBpbnRlbmRlZCBpbnB1dCBzZXNzaW9uIGNoYW5nZSB0cmlnZ2VyZWQgYnkg
c2NyaXB0CisgICAgICAgIGlzIGhhbmRsZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9XS1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tOgorCisg
ICAgICAgIFR3ZWFrIHNvbWUgb2YgdGhlc2UgdGVzdHMgdG8gd2FpdCBmb3IgaW5wdXQgc2Vzc2lv
biBjaGFuZ2VzIGJlZm9yZSBjaGVja2luZyBmb3IgdGhlIHByZXNlbmNlIG9mIGFuIGF1dG9maWxs
CisgICAgICAgIGNvbnRleHQuIFRoZSBvbmx5IGV4Y2VwdGlvbiBpcyBhbiBleGlzdGluZyB0ZXN0
IHRoYXQgZG9lc24ndCBhbGxvdyBwcm9ncmFtbWF0aWMgZm9jdXMgdG8gYmVnaW4gaW5wdXQgc2Vz
c2lvbnMKKyAgICAgICAgYnkgZGVmYXVsdDsgdG8gZml4IHRoaXMgdGVzdCwgd2Ugc2ltcGx5IHdh
aXQgZm9yIF9XS0lucHV0RGVsZWdhdGUgdG8gYmUgaW52b2tlZCwgaW5zdGVhZCBvZiB3YWl0aW5n
IGZvciBhIG5ldworICAgICAgICBpbnB1dCBzZXNzaW9uLgorCisgICAgICAgICgtW0F1dG9maWxs
VGVzdFZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk6CisKKyAgICAgICAgUmVtb3Zl
IHRoZSBpbmNvcnJlY3QgcHJlc2VudGF0aW9uIHVwZGF0ZSBoZXJlLiBUaGlzIGhlbHBlciBub3cg
YXNzdW1lcyB0aGF0IHRoZSBVSSBwcm9jZXNzIGlzIHVwIHRvIGRhdGUuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgIChuZXh0SW5wdXRTZXNzaW9uQ2hh
bmdlQ291bnQpOgorCisgICAgICAgIE1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBpZGVudGlmaWVy
IHRoYXQncyBpbmNyZW1lbmV0ZWQgd2hlbmV2ZXIgYW4gaW5wdXQgc2Vzc2lvbiBpcyBzdGFydGVk
IGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIGluY2x1ZGVzIGNoYW5naW5nIHRoZSBm
b2N1c2VkIGVsZW1lbnQgZnJvbSBvbmUgdG8gYW5vdGhlci4KKworICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlvbjphZGRUb1dpbmRvdzpdKToKKyAgICAg
ICAgKC1bVGVzdFdLV2ViVmlldyBkaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25dKToKKyAg
ICAgICAgKC1bVGVzdFdLV2ViVmlldyBkaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uXSk6Cisg
ICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0
U2Vzc2lvblRvQ2hhbmdlOl0pOgorCisgICAgICAgIEFkZCBhIGhlbHBlciB0byBldmFsdWF0ZSBK
YXZhU2NyaXB0IGFuZCB3YWl0IGZvciB0aGlzIHNjcmlwdCB0byBjYXVzZSBzb21lIGNoYW5nZSBp
biB0aGUgaW5wdXQgc2Vzc2lvbi4gVGhpcworICAgICAgICBoYW5kbGVzIHRocmVlIGNhc2VzOiAo
MSkgY2hhbmdpbmcgZm9jdXMgZnJvbSBhbiBlbGVtZW50IHRoYXQgZG9lc24ndCByZXF1aXJlIGFu
IGlucHV0IHNlc3Npb24gdG8gb25lIHRoYXQgZG9lcywKKyAgICAgICAgKDIpIGNoYW5naW5nIGZv
Y3VzIGJldHdlZW4gZWxlbWVudHMgdGhhdCByZXF1aXJlIGlucHV0IHNlc3Npb25zLCBhbmQgKDMp
IGNoYW5naW5nIGZvY3VzIGZyb20gYW4gaW5wdXQgc2Vzc2lvbgorICAgICAgICB0aGF0IGRvZXNu
J3QgcmVxdWlyZSBhbiBpbnB1dCBzZXNzaW9uIHRvIG9uZSB0aGF0IGRvZXNuJ3QuCisKIDIwMTkt
MDEtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0NvY29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQgdG8gdGhlIHBsYXRmb3JtIHVuZG8gc3RhY2sg
dmlhIFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL1dLV2ViVmlld0F1dG9maWxsVGVzdHMubW0KaW5kZXggOWY4ZDMwNGMyMWNj
ZTQ5YWVhODFiODZiOGNjNjBiNGMxYzc0ZTA0Yy4uZmRkZTgwOTA4NjZkMDdkZDAzOTQzZGFmYTQw
MzhmNzIzOWZlNWE4NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
V0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9XS1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tCkBAIC02NCw3ICs2NCw2IEBAIC0gKEF1dG9m
aWxsSW5wdXRWaWV3ICopX2F1dG9maWxsSW5wdXRWaWV3CiAKIC0gKEJPT0wpdGV4dElucHV0SGFz
QXV0b2ZpbGxDb250ZXh0CiB7Ci0gICAgW3NlbGYgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRh
dGVdOwogICAgIE5TVVJMICp1cmwgPSBbc2VsZi5fYXV0b2ZpbGxJbnB1dFZpZXcuX2F1dG9maWxs
Q29udGV4dCBvYmplY3RGb3JLZXk6QCJfV2ViVmlld1VSTCJdOwogICAgIGlmICghW3VybCBpc0tp
bmRPZkNsYXNzOltOU1VSTCBjbGFzc11dKQogICAgICAgICByZXR1cm4gTk87CkBAIC04MSwxMCAr
ODAsMTAgQEAgVEVTVChXS1dlYlZpZXdBdXRvZmlsbFRlc3RzLCBVc2VybmFtZUFuZFBhc3N3b3Jk
RmllbGQpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0F1dG9maWxsVGVzdFZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgaWQ9J3VzZXInIHR5
cGU9J2VtYWlsJz48aW5wdXQgaWQ9J3Bhc3N3b3JkJyB0eXBlPSdwYXNzd29yZCc+Il07Ci0gICAg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInVzZXIuZm9jdXMoKSJdOwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0No
YW5nZTpAInVzZXIuZm9jdXMoKSJdOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHRleHRJbnB1
dEhhc0F1dG9maWxsQ29udGV4dF0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAInBhc3N3b3JkLmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJwYXNzd29yZC5mb2N1cygp
Il07CiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0
XSk7CiAKICAgICBhdXRvIGNyZWRlbnRpYWxTdWdnZXN0aW9uID0gW1VJVGV4dEF1dG9maWxsU3Vn
Z2VzdGlvbiBhdXRvZmlsbFN1Z2dlc3Rpb25XaXRoVXNlcm5hbWU6QCJmcmVkZXJpayIgcGFzc3dv
cmQ6QCJmYW1vcyJdOwpAQCAtOTIsNyArOTEsNyBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxsVGVz
dHMsIFVzZXJuYW1lQW5kUGFzc3dvcmRGaWVsZCkKIAogICAgIEVYUEVDVF9XS19TVFJFUSgiZmFt
b3MiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGFzc3dvcmQudmFs
dWUiXSk7CiAKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmJsdXIoKSJdOwogICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyB0ZXh0SW5wdXRIYXNBdXRv
ZmlsbENvbnRleHRdKTsKIH0KIApAQCAtMTAwLDEwICs5OSwxMCBAQCBURVNUKFdLV2ViVmlld0F1
dG9maWxsVGVzdHMsIFVzZXJuYW1lQW5kUGFzc3dvcmRGaWVsZFNlcGFyYXRlZEJ5UmFkaW9CdXR0
b24pCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0F1dG9maWxsVGVzdFZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgaWQ9J3VzZXInIHR5cGU9
J2VtYWlsJz48aW5wdXQgdHlwZT0ncmFkaW8nIG5hbWU9J3JhZGlvX2J1dHRvbicgdmFsdWU9J3Jh
ZGlvJz48aW5wdXQgaWQ9J3Bhc3N3b3JkJyB0eXBlPSdwYXNzd29yZCc+Il07Ci0gICAgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInVzZXIuZm9jdXMoKSJdOworICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpA
InVzZXIuZm9jdXMoKSJdOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1
dG9maWxsQ29udGV4dF0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAInBhc3N3b3JkLmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJwYXNzd29yZC5mb2N1cygpIl07CiAg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiAK
ICAgICBhdXRvIGNyZWRlbnRpYWxTdWdnZXN0aW9uID0gW1VJVGV4dEF1dG9maWxsU3VnZ2VzdGlv
biBhdXRvZmlsbFN1Z2dlc3Rpb25XaXRoVXNlcm5hbWU6QCJmcmVkZXJpayIgcGFzc3dvcmQ6QCJm
YW1vcyJdOwpAQCAtMTEyLDcgKzExMSw3IEBAIFRFU1QoV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cywg
VXNlcm5hbWVBbmRQYXNzd29yZEZpZWxkU2VwYXJhdGVkQnlSYWRpb0J1dHRvbikKICAgICBFWFBF
Q1RfV0tfU1RSRVEoImZyZWRlcmlrIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAInVzZXIudmFsdWUiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJmYW1vcyIsIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJwYXNzd29yZC52YWx1ZSJdKTsKIAot
ICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmJsdXIoKSJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdh
aXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigp
Il07CiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxsQ29udGV4
dF0pOwogfQogCkBAIC0xMjAsMTAgKzExOSwxMCBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxsVGVz
dHMsIFR3b1RleHRGaWVsZHMpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0F1dG9m
aWxsVGVzdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUw
MCldKTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQg
aWQ9J3RleHQxJyB0eXBlPSdlbWFpbCc+PGlucHV0IGlkPSd0ZXh0MicgdHlwZT0ndGV4dCc+Il07
Ci0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInRleHQxLmZvY3Vz
KCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNz
aW9uVG9DaGFuZ2U6QCJ0ZXh0MS5mb2N1cygpIl07CiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3
IHRleHRJbnB1dEhhc0F1dG9maWxsQ29udGV4dF0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAInRleHQyLmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJ0ZXh0Mi5mb2N1
cygpIl07CiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxsQ29u
dGV4dF0pOwogfQogCkBAIC0xMzEsNyArMTMwLDcgQEAgVEVTVChXS1dlYlZpZXdBdXRvZmlsbFRl
c3RzLCBTdGFuZGFsb25lUGFzc3dvcmRGaWVsZCkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbQXV0b2ZpbGxUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDMyMCwgNTAwKV0pOwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmlu
ZzpAIjxpbnB1dCBpZD0ncGFzc3dvcmQnIHR5cGU9J3Bhc3N3b3JkJz4iXTsKLSAgICBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGFzc3dvcmQuZm9jdXMoKSJdOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5n
ZTpAInBhc3N3b3JkLmZvY3VzKCkiXTsKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyB0ZXh0SW5w
dXRIYXNBdXRvZmlsbENvbnRleHRdKTsKIAogICAgIGF1dG8gY3JlZGVudGlhbFN1Z2dlc3Rpb24g
PSBbVUlUZXh0QXV0b2ZpbGxTdWdnZXN0aW9uIGF1dG9maWxsU3VnZ2VzdGlvbldpdGhVc2VybmFt
ZTpAImZyZWRlcmlrIiBwYXNzd29yZDpAImZhbW9zIl07CkBAIC0xMzksNyArMTM4LDcgQEAgVEVT
VChXS1dlYlZpZXdBdXRvZmlsbFRlc3RzLCBTdGFuZGFsb25lUGFzc3dvcmRGaWVsZCkKIAogICAg
IEVYUEVDVF9XS19TVFJFUSgiZmFtb3MiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAicGFzc3dvcmQudmFsdWUiXSk7CiAKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCkiXTsKKyAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6
QCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKSJdOwogICAgIEVYUEVDVF9GQUxTRShbd2Vi
VmlldyB0ZXh0SW5wdXRIYXNBdXRvZmlsbENvbnRleHRdKTsKIH0KIApAQCAtMTQ3LDcgKzE0Niw3
IEBAIFRFU1QoV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cywgU3RhbmRhbG9uZVRleHRGaWVsZCkKIHsK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbQXV0b2ZpbGxUZXN0VmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwogICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxpbnB1dCBpZD0ndGV4dGZpZWxkJyB0eXBlPSd0
ZXh0Jz4iXTsKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAidGV4
dGZpZWxkLmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0
Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJ0ZXh0ZmllbGQuZm9jdXMoKSJdOwogICAgIEVYUEVD
VF9GQUxTRShbd2ViVmlldyB0ZXh0SW5wdXRIYXNBdXRvZmlsbENvbnRleHRdKTsKIH0KIApAQCAt
MTU1LDEzICsxNTQsMTMgQEAgVEVTVChXS1dlYlZpZXdBdXRvZmlsbFRlc3RzLCBBY2NvdW50Q3Jl
YXRpb25QYWdlKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tBdXRvZmlsbFRlc3RW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CiAg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGlucHV0IGlkPSd1c2Vy
JyB0eXBlPSdlbWFpbCc+PGlucHV0IGlkPSdwYXNzd29yZCcgdHlwZT0ncGFzc3dvcmQnPjxpbnB1
dCBpZD0nY29uZmlybV9wYXNzd29yZCcgdHlwZT0ncGFzc3dvcmQnPiJdOwotICAgIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ1c2VyLmZvY3VzKCkiXTsKKyAgICBbd2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJ1
c2VyLmZvY3VzKCkiXTsKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0
b2ZpbGxDb250ZXh0XSk7CiAKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAicGFzc3dvcmQuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAInBhc3N3b3JkLmZvY3VzKCkiXTsKICAg
ICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiAK
LSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY29uZmlybV9wYXNz
d29yZC5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZv
cklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiY29uZmlybV9wYXNzd29yZC5mb2N1cygpIl07CiAgICAg
RVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxsQ29udGV4dF0pOwogfQog
CkBAIC0xNzQsMTIgKzE3MywxNSBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxsVGVzdHMsIEF1dG9m
aWxsUmVxdWlyZXNJbnB1dFNlc3Npb24pCiB7CiAgICAgQ2xhc3NNZXRob2RTd2l6emxlciBzd2l6
emxlcihbVUlLZXlib2FyZCBjbGFzc10sIEBzZWxlY3Rvcihpc0luSGFyZHdhcmVLZXlib2FyZE1v
ZGUpLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVJc0luSGFyZHdhcmVLZXlib2FyZE1v
ZGUpKTsKIAorICAgIGJvb2wgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tBdXRvZmlsbFRlc3RWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgMzIwLCA1MDApXSk7Ci0gICAgWyhUZXN0SW5wdXREZWxlZ2F0ZSAqKVt3ZWJWaWV3IF9pbnB1
dERlbGVnYXRlXSBzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6W10gKFdL
V2ViVmlldyAqLCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgLT4gX1dLRm9jdXNTdGFydHNJ
bnB1dFNlc3Npb25Qb2xpY3kgeworICAgIFsoVGVzdElucHV0RGVsZWdhdGUgKilbd2ViVmlldyBf
aW5wdXREZWxlZ2F0ZV0gc2V0Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lIYW5kbGVyOlsm
ZG9uZV0gKFdLV2ViVmlldyAqLCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgLT4gX1dLRm9j
dXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3kgeworICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuIF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QXV0bzsKICAgICB9XTsK
ICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgaWQ9J3Vz
ZXInIHR5cGU9J2VtYWlsJz48aW5wdXQgaWQ9J3Bhc3N3b3JkJyB0eXBlPSdwYXNzd29yZCc+Il07
CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInVzZXIuZm9jdXMo
KSJdOworICAgIFV0aWw6OnJ1bigmZG9uZSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcg
dGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvVGVzdFdLV2ViVmlldy5oCmluZGV4IDg4M2FiZDFjYWNhOWQ3NWU5NWU0NTAxOWNhZTBiZDQy
ZWY1MDVkZTAuLmI2ZjA5OTI5MGMwYjYwZDIyNzZkYmU2NjVmN2JiM2ZlMWFkOTcwM2IgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC04Nyw2ICs4Nyw3IEBA
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBjYXJldFZpZXdSZWN0SW5D
b250ZW50Q29vcmRpbmF0ZXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJy
YXk8TlNWYWx1ZSAqPiAqc2VsZWN0aW9uVmlld1JlY3RzSW5Db250ZW50Q29vcmRpbmF0ZXM7CiAt
IChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihD
R1BvaW50KXBvc2l0aW9uOworLSAodm9pZClldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5w
dXRTZXNzaW9uVG9DaGFuZ2U6KE5TU3RyaW5nICopc2NyaXB0OwogQGVuZAogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCA1NDQxNmJmYTgx
OTc1OTNiNjIyNGM1YmU2NmE4OWU1MjE5NGQwMTUzLi5kMjExMTZmMTBiYjQ3YmZmYzk3YTRiZTM4
MjA3NTliYWIzZTZkZjM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJW
aWV3Lm1tCkBAIC0yNDksMTEgKzI0OSwxOSBAQCAtICh2b2lkKXJlc2lnbktleVdpbmRvdwogCiBA
ZW5kCiAKK3VzaW5nIElucHV0U2Vzc2lvbkNoYW5nZUNvdW50ID0gTlNVSW50ZWdlcjsKK3N0YXRp
YyBJbnB1dFNlc3Npb25DaGFuZ2VDb3VudCBuZXh0SW5wdXRTZXNzaW9uQ2hhbmdlQ291bnQoKQor
eworICAgIHN0YXRpYyBJbnB1dFNlc3Npb25DaGFuZ2VDb3VudCBnSW5wdXRTZXNzaW9uQ2hhbmdl
Q291bnQgPSAwOworICAgIHJldHVybiArK2dJbnB1dFNlc3Npb25DaGFuZ2VDb3VudDsKK30KKwog
QGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcgewogICAgIFJldGFpblB0cjxUZXN0V0tXZWJW
aWV3SG9zdFdpbmRvdz4gX2hvc3RXaW5kb3c7CiAgICAgUmV0YWluUHRyPFRlc3RNZXNzYWdlSGFu
ZGxlcj4gX3Rlc3RIYW5kbGVyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc3RkOjp1
bmlxdWVfcHRyPENsYXNzTWV0aG9kU3dpenpsZXI+IF9zaGFyZWRDYWxsb3V0QmFyU3dpenpsZXI7
CisgICAgSW5wdXRTZXNzaW9uQ2hhbmdlQ291bnQgX2lucHV0U2Vzc2lvbkNoYW5nZUNvdW50Owog
I2VuZGlmCiB9CiAKQEAgLTI4OSw2ICsyOTcsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhG
cmFtZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpbwog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdvcmth
cm91bmQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc1MjA0PiBpcyBmaXhlZC4KICAgICBf
c2hhcmVkQ2FsbG91dEJhclN3aXp6bGVyID0gc3RkOjptYWtlX3VuaXF1ZTxDbGFzc01ldGhvZFN3
aXp6bGVyPihbVUlDYWxsb3V0QmFyIGNsYXNzXSwgQHNlbGVjdG9yKHNoYXJlZENhbGxvdXRCYXIp
LCByZWludGVycHJldF9jYXN0PElNUD4oc3VwcHJlc3NVSUNhbGxvdXRCYXIpKTsKKyAgICBfaW5w
dXRTZXNzaW9uQ2hhbmdlQ291bnQgPSAwOwogI2VuZGlmCiAKICAgICByZXR1cm4gc2VsZjsKQEAg
LTQwOSwxMiArNDE4LDQ2IEBAIC0gKHZvaWQpY29sbGFwc2VUb0VuZAogICAgIFtzZWxmIGV2YWx1
YXRlSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmNvbGxhcHNlVG9FbmQoKSIgY29tcGxldGlv
bkhhbmRsZXI6bmlsXTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy0gKHZvaWQp
ZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uCit7CisgICAgX2lucHV0U2Vzc2lvbkNoYW5n
ZUNvdW50ID0gbmV4dElucHV0U2Vzc2lvbkNoYW5nZUNvdW50KCk7Cit9CisKKy0gKHZvaWQpZGlk
RW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbgoreworICAgIF9pbnB1dFNlc3Npb25DaGFuZ2VDb3Vu
dCA9IDA7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorCiBAZW5kCiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyAo
SU9TT25seSkKIAorLSAodm9pZClldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNz
aW9uVG9DaGFuZ2U6KE5TU3RyaW5nICopc2NyaXB0Cit7CisgICAgYXV0byBpbml0aWFsQ2hhbmdl
Q291bnQgPSBfaW5wdXRTZXNzaW9uQ2hhbmdlQ291bnQ7CisgICAgQk9PTCBoYXNFbWl0dGVkV2Fy
bmluZyA9IE5POworICAgIE5TVGltZUludGVydmFsIHNlY29uZHNUb1dhaXRVbnRpbFdhcm5pbmcg
PSAyOworICAgIE5TVGltZUludGVydmFsIHN0YXJ0VGltZSA9IFtOU0RhdGUgdGltZUludGVydmFs
U2luY2VSZWZlcmVuY2VEYXRlXTsKKworICAgIFtzZWxmIG9iamVjdEJ5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6c2NyaXB0XTsKKyAgICB3aGlsZSAoW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1
bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0
XV0pIHsKKyAgICAgICAgaWYgKF9pbnB1dFNlc3Npb25DaGFuZ2VDb3VudCAhPSBpbml0aWFsQ2hh
bmdlQ291bnQpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoaGFzRW1pdHRlZFdh
cm5pbmcgfHwgc3RhcnRUaW1lICsgc2Vjb25kc1RvV2FpdFVudGlsV2FybmluZyA+PSBbTlNEYXRl
IHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0pCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICBOU0xvZyhAIldhcm5pbmc6IGV4cGVjdGluZyBpbnB1dCBzZXNzaW9uIGNoYW5n
ZSBjb3VudCB0byBkaWZmZXIgZnJvbSAldHUiLCBpbml0aWFsQ2hhbmdlQ291bnQpOworICAgICAg
ICBoYXNFbWl0dGVkV2FybmluZyA9IFlFUzsKKyAgICB9Cit9CisKIC0gKFVJVmlldyA8VUlUZXh0
SW5wdXRQcml2YXRlLCBVSVRleHRJbnB1dE11bHRpRG9jdW1lbnQ+ICopdGV4dElucHV0Q29udGVu
dFZpZXcKIHsKICAgICByZXR1cm4gKFVJVmlldyA8VUlUZXh0SW5wdXRQcml2YXRlLCBVSVRleHRJ
bnB1dE11bHRpRG9jdW1lbnQ+ICopW3NlbGYgdmFsdWVGb3JLZXk6QCJfY3VycmVudENvbnRlbnRW
aWV3Il07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359713</attachid>
            <date>2019-01-21 17:19:53 -0800</date>
            <delta_ts>2019-01-22 13:23:20 -0800</delta_ts>
            <desc>Fix macOS builds</desc>
            <filename>bug-189165-20190121171953.patch</filename>
            <type>text/plain</type>
            <size>14409</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTk4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjI5NmZlZmRlMmI5YWNmYmEzYTdlMWJlNDg4YWMzYzA4
MDlmNTM5MC4uYmRjZWJkNzIzM2NkZWI4NzY2NjYwMTQzYTY0YmE3NzRhMWFkYjcyYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUz
IEBACisyMDE5LTAxLTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdIE11bHRpcGxlIFdLV2ViVmlld0F1dG9maWxsVGVzdHMgYXJlIGZsYWt5
IGZhaWx1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODkxNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NDMzNzY1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBjdXJy
ZW50bHkgZmxha3kgYmVjYXVzZSB0aGV5IGV4cGVjdCBhbiBpbnZvY2F0aW9uIG9mICJFbGVtZW50
LmJsdXIoKSIgaW4gdGhlIHdlYiBwcm9jZXNzIHRvCisgICAgICAgIGltbWVkaWF0ZWx5IGRpc3Bh
dGNoIGFuIElQQyBtZXNzYWdlIHRvIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB0aGF0IHRoZSBlbGVt
ZW50IGhhcyBiZWVuIGJsdXJyZWQuIEluIHBhcnRpY3VsYXIsCisgICAgICAgIHRoZSAtdGV4dElu
cHV0SGFzQXV0b2ZpbGxDb250ZXh0IGhlbHBlciBhc3N1bWVzIHRoYXQgd2FpdGluZyBmb3IgdGhl
IG5leHQgcmVtb3RlIGxheWVyIHRyZWUgY29tbWl0IGluIHRoZSBVSQorICAgICAgICBwcm9jZXNz
IGluIHN1ZmZpY2llbnQgdG8gZW5zdXJlIHRoYXQgYW55IHByZXZpb3VzIGFjdGlvbiB0aGF0IGJs
dXJyZWQgdGhlIGZvY3VzZWQgZWxlbWVudCBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgd291
bGQgbWFrZSBpdHMgd2F5IHRvIHRoZSBVSSBwcm9jZXNzIGJ5IHRoZSB0aW1lIHRoZSBsYXllciB0
cmVlIGNvbW1pdCBpcyBmaW5pc2hlZC4KKworICAgICAgICBIb3dldmVyLCBXZWJQYWdlOjplbGVt
ZW50RGlkQmx1ciBzZW5kcyBpdHMgSVBDIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3MgYXN5bmNo
cm9ub3VzbHksIHVzaW5nIGNhbGxPbk1haW5UaHJlYWQuCisgICAgICAgIFRoaXMgbWVhbnMgdGhh
dCBpZiBhIGxheWVyIHRyZWUgZmx1c2ggd2FzIGFscmVhZHkgc2NoZWR1bGVkIGluIHRoZSB3ZWIg
cHJvY2VzcyBiZWZvcmUgdGhlIGVsZW1lbnQgd2FzIGJsdXJyZWQsCisgICAgICAgIHRoZSBlbGVt
ZW50IGJsdXIgSVBDIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mgd2lsbCBsb3NlIHRoZSByYWNl
IGFnYWluc3QgdGhlIGxheWVyIHRyZWUgY29tbWl0LCBhbmQgdGhlIHRlc3QKKyAgICAgICAgd2ls
bCBmYWlsIGJlY2F1c2UgaXQgYXNrcyBmb3IgLV9hdXRvZmlsbENvbnRleHQgdG9vIGVhcmx5Lgor
CisgICAgICAgIFRvIGZpeCB0aGlzLCB3ZSB0d2VhayB0aGVzZSB0ZXN0cyB0byBhY3R1YWxseSB3
YWl0IHVudGlsIHRoZSBpbnRlbmRlZCBpbnB1dCBzZXNzaW9uIGNoYW5nZSB0cmlnZ2VyZWQgYnkg
c2NyaXB0CisgICAgICAgIGlzIGhhbmRsZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9XS1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tOgorCisg
ICAgICAgIFR3ZWFrIHNvbWUgb2YgdGhlc2UgdGVzdHMgdG8gd2FpdCBmb3IgaW5wdXQgc2Vzc2lv
biBjaGFuZ2VzIGJlZm9yZSBjaGVja2luZyBmb3IgdGhlIHByZXNlbmNlIG9mIGFuIGF1dG9maWxs
CisgICAgICAgIGNvbnRleHQuIFRoZSBvbmx5IGV4Y2VwdGlvbiBpcyBhbiBleGlzdGluZyB0ZXN0
IHRoYXQgZG9lc24ndCBhbGxvdyBwcm9ncmFtbWF0aWMgZm9jdXMgdG8gYmVnaW4gaW5wdXQgc2Vz
c2lvbnMKKyAgICAgICAgYnkgZGVmYXVsdDsgdG8gZml4IHRoaXMgdGVzdCwgd2Ugc2ltcGx5IHdh
aXQgZm9yIF9XS0lucHV0RGVsZWdhdGUgdG8gYmUgaW52b2tlZCwgaW5zdGVhZCBvZiB3YWl0aW5n
IGZvciBhIG5ldworICAgICAgICBpbnB1dCBzZXNzaW9uLgorCisgICAgICAgICgtW0F1dG9maWxs
VGVzdFZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk6CisKKyAgICAgICAgUmVtb3Zl
IHRoZSBpbmNvcnJlY3QgcHJlc2VudGF0aW9uIHVwZGF0ZSBoZXJlLiBUaGlzIGhlbHBlciBub3cg
YXNzdW1lcyB0aGF0IHRoZSBVSSBwcm9jZXNzIGlzIHVwIHRvIGRhdGUuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgIChuZXh0SW5wdXRTZXNzaW9uQ2hh
bmdlQ291bnQpOgorCisgICAgICAgIE1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBpZGVudGlmaWVy
IHRoYXQncyBpbmNyZW1lbmV0ZWQgd2hlbmV2ZXIgYW4gaW5wdXQgc2Vzc2lvbiBpcyBzdGFydGVk
IGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIGluY2x1ZGVzIGNoYW5naW5nIHRoZSBm
b2N1c2VkIGVsZW1lbnQgZnJvbSBvbmUgdG8gYW5vdGhlci4KKworICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlvbjphZGRUb1dpbmRvdzpdKToKKyAgICAg
ICAgKC1bVGVzdFdLV2ViVmlldyBkaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25dKToKKyAg
ICAgICAgKC1bVGVzdFdLV2ViVmlldyBkaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uXSk6Cisg
ICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0
U2Vzc2lvblRvQ2hhbmdlOl0pOgorCisgICAgICAgIEFkZCBhIGhlbHBlciB0byBldmFsdWF0ZSBK
YXZhU2NyaXB0IGFuZCB3YWl0IGZvciB0aGlzIHNjcmlwdCB0byBjYXVzZSBzb21lIGNoYW5nZSBp
biB0aGUgaW5wdXQgc2Vzc2lvbi4gVGhpcworICAgICAgICBoYW5kbGVzIHRocmVlIGNhc2VzOiAo
MSkgY2hhbmdpbmcgZm9jdXMgZnJvbSBhbiBlbGVtZW50IHRoYXQgZG9lc24ndCByZXF1aXJlIGFu
IGlucHV0IHNlc3Npb24gdG8gb25lIHRoYXQgZG9lcywKKyAgICAgICAgKDIpIGNoYW5naW5nIGZv
Y3VzIGJldHdlZW4gZWxlbWVudHMgdGhhdCByZXF1aXJlIGlucHV0IHNlc3Npb25zLCBhbmQgKDMp
IGNoYW5naW5nIGZvY3VzIGZyb20gYW4gaW5wdXQgc2Vzc2lvbgorICAgICAgICB0aGF0IGRvZXNu
J3QgcmVxdWlyZSBhbiBpbnB1dCBzZXNzaW9uIHRvIG9uZSB0aGF0IGRvZXNuJ3QuCisKIDIwMTkt
MDEtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0NvY29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQgdG8gdGhlIHBsYXRmb3JtIHVuZG8gc3RhY2sg
dmlhIFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL1dLV2ViVmlld0F1dG9maWxsVGVzdHMubW0KaW5kZXggOWY4ZDMwNGMyMWNj
ZTQ5YWVhODFiODZiOGNjNjBiNGMxYzc0ZTA0Yy4uZmRkZTgwOTA4NjZkMDdkZDAzOTQzZGFmYTQw
MzhmNzIzOWZlNWE4NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
V0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9XS1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tCkBAIC02NCw3ICs2NCw2IEBAIC0gKEF1dG9m
aWxsSW5wdXRWaWV3ICopX2F1dG9maWxsSW5wdXRWaWV3CiAKIC0gKEJPT0wpdGV4dElucHV0SGFz
QXV0b2ZpbGxDb250ZXh0CiB7Ci0gICAgW3NlbGYgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRh
dGVdOwogICAgIE5TVVJMICp1cmwgPSBbc2VsZi5fYXV0b2ZpbGxJbnB1dFZpZXcuX2F1dG9maWxs
Q29udGV4dCBvYmplY3RGb3JLZXk6QCJfV2ViVmlld1VSTCJdOwogICAgIGlmICghW3VybCBpc0tp
bmRPZkNsYXNzOltOU1VSTCBjbGFzc11dKQogICAgICAgICByZXR1cm4gTk87CkBAIC04MSwxMCAr
ODAsMTAgQEAgVEVTVChXS1dlYlZpZXdBdXRvZmlsbFRlc3RzLCBVc2VybmFtZUFuZFBhc3N3b3Jk
RmllbGQpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0F1dG9maWxsVGVzdFZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgaWQ9J3VzZXInIHR5
cGU9J2VtYWlsJz48aW5wdXQgaWQ9J3Bhc3N3b3JkJyB0eXBlPSdwYXNzd29yZCc+Il07Ci0gICAg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInVzZXIuZm9jdXMoKSJdOwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0No
YW5nZTpAInVzZXIuZm9jdXMoKSJdOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHRleHRJbnB1
dEhhc0F1dG9maWxsQ29udGV4dF0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAInBhc3N3b3JkLmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJwYXNzd29yZC5mb2N1cygp
Il07CiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0
XSk7CiAKICAgICBhdXRvIGNyZWRlbnRpYWxTdWdnZXN0aW9uID0gW1VJVGV4dEF1dG9maWxsU3Vn
Z2VzdGlvbiBhdXRvZmlsbFN1Z2dlc3Rpb25XaXRoVXNlcm5hbWU6QCJmcmVkZXJpayIgcGFzc3dv
cmQ6QCJmYW1vcyJdOwpAQCAtOTIsNyArOTEsNyBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxsVGVz
dHMsIFVzZXJuYW1lQW5kUGFzc3dvcmRGaWVsZCkKIAogICAgIEVYUEVDVF9XS19TVFJFUSgiZmFt
b3MiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGFzc3dvcmQudmFs
dWUiXSk7CiAKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmJsdXIoKSJdOwogICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyB0ZXh0SW5wdXRIYXNBdXRv
ZmlsbENvbnRleHRdKTsKIH0KIApAQCAtMTAwLDEwICs5OSwxMCBAQCBURVNUKFdLV2ViVmlld0F1
dG9maWxsVGVzdHMsIFVzZXJuYW1lQW5kUGFzc3dvcmRGaWVsZFNlcGFyYXRlZEJ5UmFkaW9CdXR0
b24pCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0F1dG9maWxsVGVzdFZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgaWQ9J3VzZXInIHR5cGU9
J2VtYWlsJz48aW5wdXQgdHlwZT0ncmFkaW8nIG5hbWU9J3JhZGlvX2J1dHRvbicgdmFsdWU9J3Jh
ZGlvJz48aW5wdXQgaWQ9J3Bhc3N3b3JkJyB0eXBlPSdwYXNzd29yZCc+Il07Ci0gICAgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInVzZXIuZm9jdXMoKSJdOworICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpA
InVzZXIuZm9jdXMoKSJdOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1
dG9maWxsQ29udGV4dF0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAInBhc3N3b3JkLmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJwYXNzd29yZC5mb2N1cygpIl07CiAg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiAK
ICAgICBhdXRvIGNyZWRlbnRpYWxTdWdnZXN0aW9uID0gW1VJVGV4dEF1dG9maWxsU3VnZ2VzdGlv
biBhdXRvZmlsbFN1Z2dlc3Rpb25XaXRoVXNlcm5hbWU6QCJmcmVkZXJpayIgcGFzc3dvcmQ6QCJm
YW1vcyJdOwpAQCAtMTEyLDcgKzExMSw3IEBAIFRFU1QoV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cywg
VXNlcm5hbWVBbmRQYXNzd29yZEZpZWxkU2VwYXJhdGVkQnlSYWRpb0J1dHRvbikKICAgICBFWFBF
Q1RfV0tfU1RSRVEoImZyZWRlcmlrIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAInVzZXIudmFsdWUiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJmYW1vcyIsIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJwYXNzd29yZC52YWx1ZSJdKTsKIAot
ICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmJsdXIoKSJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdh
aXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigp
Il07CiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxsQ29udGV4
dF0pOwogfQogCkBAIC0xMjAsMTAgKzExOSwxMCBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxsVGVz
dHMsIFR3b1RleHRGaWVsZHMpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0F1dG9m
aWxsVGVzdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUw
MCldKTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQg
aWQ9J3RleHQxJyB0eXBlPSdlbWFpbCc+PGlucHV0IGlkPSd0ZXh0MicgdHlwZT0ndGV4dCc+Il07
Ci0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInRleHQxLmZvY3Vz
KCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNz
aW9uVG9DaGFuZ2U6QCJ0ZXh0MS5mb2N1cygpIl07CiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3
IHRleHRJbnB1dEhhc0F1dG9maWxsQ29udGV4dF0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAInRleHQyLmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJ0ZXh0Mi5mb2N1
cygpIl07CiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxsQ29u
dGV4dF0pOwogfQogCkBAIC0xMzEsNyArMTMwLDcgQEAgVEVTVChXS1dlYlZpZXdBdXRvZmlsbFRl
c3RzLCBTdGFuZGFsb25lUGFzc3dvcmRGaWVsZCkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbQXV0b2ZpbGxUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDMyMCwgNTAwKV0pOwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmlu
ZzpAIjxpbnB1dCBpZD0ncGFzc3dvcmQnIHR5cGU9J3Bhc3N3b3JkJz4iXTsKLSAgICBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGFzc3dvcmQuZm9jdXMoKSJdOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5n
ZTpAInBhc3N3b3JkLmZvY3VzKCkiXTsKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyB0ZXh0SW5w
dXRIYXNBdXRvZmlsbENvbnRleHRdKTsKIAogICAgIGF1dG8gY3JlZGVudGlhbFN1Z2dlc3Rpb24g
PSBbVUlUZXh0QXV0b2ZpbGxTdWdnZXN0aW9uIGF1dG9maWxsU3VnZ2VzdGlvbldpdGhVc2VybmFt
ZTpAImZyZWRlcmlrIiBwYXNzd29yZDpAImZhbW9zIl07CkBAIC0xMzksNyArMTM4LDcgQEAgVEVT
VChXS1dlYlZpZXdBdXRvZmlsbFRlc3RzLCBTdGFuZGFsb25lUGFzc3dvcmRGaWVsZCkKIAogICAg
IEVYUEVDVF9XS19TVFJFUSgiZmFtb3MiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAicGFzc3dvcmQudmFsdWUiXSk7CiAKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCkiXTsKKyAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6
QCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKSJdOwogICAgIEVYUEVDVF9GQUxTRShbd2Vi
VmlldyB0ZXh0SW5wdXRIYXNBdXRvZmlsbENvbnRleHRdKTsKIH0KIApAQCAtMTQ3LDcgKzE0Niw3
IEBAIFRFU1QoV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cywgU3RhbmRhbG9uZVRleHRGaWVsZCkKIHsK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbQXV0b2ZpbGxUZXN0VmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwogICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxpbnB1dCBpZD0ndGV4dGZpZWxkJyB0eXBlPSd0
ZXh0Jz4iXTsKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAidGV4
dGZpZWxkLmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0
Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJ0ZXh0ZmllbGQuZm9jdXMoKSJdOwogICAgIEVYUEVD
VF9GQUxTRShbd2ViVmlldyB0ZXh0SW5wdXRIYXNBdXRvZmlsbENvbnRleHRdKTsKIH0KIApAQCAt
MTU1LDEzICsxNTQsMTMgQEAgVEVTVChXS1dlYlZpZXdBdXRvZmlsbFRlc3RzLCBBY2NvdW50Q3Jl
YXRpb25QYWdlKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tBdXRvZmlsbFRlc3RW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CiAg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGlucHV0IGlkPSd1c2Vy
JyB0eXBlPSdlbWFpbCc+PGlucHV0IGlkPSdwYXNzd29yZCcgdHlwZT0ncGFzc3dvcmQnPjxpbnB1
dCBpZD0nY29uZmlybV9wYXNzd29yZCcgdHlwZT0ncGFzc3dvcmQnPiJdOwotICAgIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ1c2VyLmZvY3VzKCkiXTsKKyAgICBbd2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJ1
c2VyLmZvY3VzKCkiXTsKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0
b2ZpbGxDb250ZXh0XSk7CiAKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAicGFzc3dvcmQuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAInBhc3N3b3JkLmZvY3VzKCkiXTsKICAg
ICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiAK
LSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY29uZmlybV9wYXNz
d29yZC5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZv
cklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiY29uZmlybV9wYXNzd29yZC5mb2N1cygpIl07CiAgICAg
RVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxsQ29udGV4dF0pOwogfQog
CkBAIC0xNzQsMTIgKzE3MywxNSBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxsVGVzdHMsIEF1dG9m
aWxsUmVxdWlyZXNJbnB1dFNlc3Npb24pCiB7CiAgICAgQ2xhc3NNZXRob2RTd2l6emxlciBzd2l6
emxlcihbVUlLZXlib2FyZCBjbGFzc10sIEBzZWxlY3Rvcihpc0luSGFyZHdhcmVLZXlib2FyZE1v
ZGUpLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVJc0luSGFyZHdhcmVLZXlib2FyZE1v
ZGUpKTsKIAorICAgIGJvb2wgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tBdXRvZmlsbFRlc3RWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgMzIwLCA1MDApXSk7Ci0gICAgWyhUZXN0SW5wdXREZWxlZ2F0ZSAqKVt3ZWJWaWV3IF9pbnB1
dERlbGVnYXRlXSBzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6W10gKFdL
V2ViVmlldyAqLCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgLT4gX1dLRm9jdXNTdGFydHNJ
bnB1dFNlc3Npb25Qb2xpY3kgeworICAgIFsoVGVzdElucHV0RGVsZWdhdGUgKilbd2ViVmlldyBf
aW5wdXREZWxlZ2F0ZV0gc2V0Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lIYW5kbGVyOlsm
ZG9uZV0gKFdLV2ViVmlldyAqLCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgLT4gX1dLRm9j
dXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3kgeworICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuIF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QXV0bzsKICAgICB9XTsK
ICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgaWQ9J3Vz
ZXInIHR5cGU9J2VtYWlsJz48aW5wdXQgaWQ9J3Bhc3N3b3JkJyB0eXBlPSdwYXNzd29yZCc+Il07
CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInVzZXIuZm9jdXMo
KSJdOworICAgIFV0aWw6OnJ1bigmZG9uZSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcg
dGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvVGVzdFdLV2ViVmlldy5oCmluZGV4IDg4M2FiZDFjYWNhOWQ3NWU5NWU0NTAxOWNhZTBiZDQy
ZWY1MDVkZTAuLmI2ZjA5OTI5MGMwYjYwZDIyNzZkYmU2NjVmN2JiM2ZlMWFkOTcwM2IgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC04Nyw2ICs4Nyw3IEBA
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBjYXJldFZpZXdSZWN0SW5D
b250ZW50Q29vcmRpbmF0ZXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJy
YXk8TlNWYWx1ZSAqPiAqc2VsZWN0aW9uVmlld1JlY3RzSW5Db250ZW50Q29vcmRpbmF0ZXM7CiAt
IChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihD
R1BvaW50KXBvc2l0aW9uOworLSAodm9pZClldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5w
dXRTZXNzaW9uVG9DaGFuZ2U6KE5TU3RyaW5nICopc2NyaXB0OwogQGVuZAogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCA1NDQxNmJmYTgx
OTc1OTNiNjIyNGM1YmU2NmE4OWU1MjE5NGQwMTUzLi4xOTc3YzdiYTEyYjQ1NDMxZWEwODk0ZmQ3
Yzk1ZjczMjM0ZjVhZDQxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJW
aWV3Lm1tCkBAIC0yNDksMTEgKzI0OSwyMyBAQCAtICh2b2lkKXJlc2lnbktleVdpbmRvdwogCiBA
ZW5kCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCit1c2luZyBJbnB1dFNlc3Npb25DaGFu
Z2VDb3VudCA9IE5TVUludGVnZXI7CitzdGF0aWMgSW5wdXRTZXNzaW9uQ2hhbmdlQ291bnQgbmV4
dElucHV0U2Vzc2lvbkNoYW5nZUNvdW50KCkKK3sKKyAgICBzdGF0aWMgSW5wdXRTZXNzaW9uQ2hh
bmdlQ291bnQgZ0lucHV0U2Vzc2lvbkNoYW5nZUNvdW50ID0gMDsKKyAgICByZXR1cm4gKytnSW5w
dXRTZXNzaW9uQ2hhbmdlQ291bnQ7Cit9CisKKyNlbmRpZgorCiBAaW1wbGVtZW50YXRpb24gVGVz
dFdLV2ViVmlldyB7CiAgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXdIb3N0V2luZG93PiBfaG9z
dFdpbmRvdzsKICAgICBSZXRhaW5QdHI8VGVzdE1lc3NhZ2VIYW5kbGVyPiBfdGVzdEhhbmRsZXI7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2xhc3NNZXRo
b2RTd2l6emxlcj4gX3NoYXJlZENhbGxvdXRCYXJTd2l6emxlcjsKKyAgICBJbnB1dFNlc3Npb25D
aGFuZ2VDb3VudCBfaW5wdXRTZXNzaW9uQ2hhbmdlQ291bnQ7CiAjZW5kaWYKIH0KIApAQCAtMjg5
LDYgKzMwMSw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUg
Y29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd29ya2Fyb3VuZCBvbmNlIDxodHRwczov
L3dlYmtpdC5vcmcvYi8xNzUyMDQ+IGlzIGZpeGVkLgogICAgIF9zaGFyZWRDYWxsb3V0QmFyU3dp
enpsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENsYXNzTWV0aG9kU3dpenpsZXI+KFtVSUNhbGxvdXRC
YXIgY2xhc3NdLCBAc2VsZWN0b3Ioc2hhcmVkQ2FsbG91dEJhciksIHJlaW50ZXJwcmV0X2Nhc3Q8
SU1QPihzdXBwcmVzc1VJQ2FsbG91dEJhcikpOworICAgIF9pbnB1dFNlc3Npb25DaGFuZ2VDb3Vu
dCA9IDA7CiAjZW5kaWYKIAogICAgIHJldHVybiBzZWxmOwpAQCAtNDA5LDEyICs0MjIsNDYgQEAg
LSAodm9pZCljb2xsYXBzZVRvRW5kCiAgICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0
U2VsZWN0aW9uKCkuY29sbGFwc2VUb0VuZCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogfQog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworLSAodm9pZClkaWRTdGFydEZvcm1Db250cm9s
SW50ZXJhY3Rpb24KK3sKKyAgICBfaW5wdXRTZXNzaW9uQ2hhbmdlQ291bnQgPSBuZXh0SW5wdXRT
ZXNzaW9uQ2hhbmdlQ291bnQoKTsKK30KKworLSAodm9pZClkaWRFbmRGb3JtQ29udHJvbEludGVy
YWN0aW9uCit7CisgICAgX2lucHV0U2Vzc2lvbkNoYW5nZUNvdW50ID0gMDsKK30KKworI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKIEBlbmQKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJWaWV3IChJT1NPbmx5KQogCistICh2b2lk
KWV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTooTlNTdHJp
bmcgKilzY3JpcHQKK3sKKyAgICBhdXRvIGluaXRpYWxDaGFuZ2VDb3VudCA9IF9pbnB1dFNlc3Np
b25DaGFuZ2VDb3VudDsKKyAgICBCT09MIGhhc0VtaXR0ZWRXYXJuaW5nID0gTk87CisgICAgTlNU
aW1lSW50ZXJ2YWwgc2Vjb25kc1RvV2FpdFVudGlsV2FybmluZyA9IDI7CisgICAgTlNUaW1lSW50
ZXJ2YWwgc3RhcnRUaW1lID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVd
OworCisgICAgW3NlbGYgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpzY3JpcHRdOworICAg
IHdoaWxlIChbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5M
b29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlzdGFudFBhc3RdXSkgeworICAgICAgICBpZiAo
X2lucHV0U2Vzc2lvbkNoYW5nZUNvdW50ICE9IGluaXRpYWxDaGFuZ2VDb3VudCkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIGlmIChoYXNFbWl0dGVkV2FybmluZyB8fCBzdGFydFRpbWUg
KyBzZWNvbmRzVG9XYWl0VW50aWxXYXJuaW5nID49IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VS
ZWZlcmVuY2VEYXRlXSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIE5TTG9nKEAi
V2FybmluZzogZXhwZWN0aW5nIGlucHV0IHNlc3Npb24gY2hhbmdlIGNvdW50IHRvIGRpZmZlciBm
cm9tICV0dSIsIGluaXRpYWxDaGFuZ2VDb3VudCk7CisgICAgICAgIGhhc0VtaXR0ZWRXYXJuaW5n
ID0gWUVTOworICAgIH0KK30KKwogLSAoVUlWaWV3IDxVSVRleHRJbnB1dFByaXZhdGUsIFVJVGV4
dElucHV0TXVsdGlEb2N1bWVudD4gKil0ZXh0SW5wdXRDb250ZW50VmlldwogewogICAgIHJldHVy
biAoVUlWaWV3IDxVSVRleHRJbnB1dFByaXZhdGUsIFVJVGV4dElucHV0TXVsdGlEb2N1bWVudD4g
Kilbc2VsZiB2YWx1ZUZvcktleTpAIl9jdXJyZW50Q29udGVudFZpZXciXTsK
</data>
<flag name="review"
          id="376458"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359777</attachid>
            <date>2019-01-22 14:43:32 -0800</date>
            <delta_ts>2019-01-22 15:21:54 -0800</delta_ts>
            <desc>Patch for landing (w/ typo fix)</desc>
            <filename>bug-189165-20190122144331.patch</filename>
            <type>text/plain</type>
            <size>14359</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTAyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDc3ZDM5MzI5NGI1M2JlZTc4YTNjNDk0ZTg2NTVkNzZk
OTgyOTBkOC4uYzNkZWYwNjVmYjM4M2FhZDBmMzRhMDFjMGQwMWVkNjU5YjUxZTdlMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUz
IEBACisyMDE5LTAxLTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdIE11bHRpcGxlIFdLV2ViVmlld0F1dG9maWxsVGVzdHMgYXJlIGZsYWt5
IGZhaWx1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODkxNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NDMzNzY1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgVGhlc2UgdGVzdHMgYXJlIGN1cnJlbnRs
eSBmbGFreSBiZWNhdXNlIHRoZXkgZXhwZWN0IGFuIGludm9jYXRpb24gb2YgIkVsZW1lbnQuYmx1
cigpIiBpbiB0aGUgd2ViIHByb2Nlc3MgdG8KKyAgICAgICAgaW1tZWRpYXRlbHkgZGlzcGF0Y2gg
YW4gSVBDIG1lc3NhZ2UgdG8gbm90aWZ5IHRoZSBVSSBwcm9jZXNzIHRoYXQgdGhlIGVsZW1lbnQg
aGFzIGJlZW4gYmx1cnJlZC4gSW4gcGFydGljdWxhciwKKyAgICAgICAgdGhlIC10ZXh0SW5wdXRI
YXNBdXRvZmlsbENvbnRleHQgaGVscGVyIGFzc3VtZXMgdGhhdCB3YWl0aW5nIGZvciB0aGUgbmV4
dCByZW1vdGUgbGF5ZXIgdHJlZSBjb21taXQgaW4gdGhlIFVJCisgICAgICAgIHByb2Nlc3MgaW4g
c3VmZmljaWVudCB0byBlbnN1cmUgdGhhdCBhbnkgcHJldmlvdXMgYWN0aW9uIHRoYXQgYmx1cnJl
ZCB0aGUgZm9jdXNlZCBlbGVtZW50IGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICB3b3VsZCBt
YWtlIGl0cyB3YXkgdG8gdGhlIFVJIHByb2Nlc3MgYnkgdGhlIHRpbWUgdGhlIGxheWVyIHRyZWUg
Y29tbWl0IGlzIGZpbmlzaGVkLgorCisgICAgICAgIEhvd2V2ZXIsIFdlYlBhZ2U6OmVsZW1lbnRE
aWRCbHVyIHNlbmRzIGl0cyBJUEMgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcyBhc3luY2hyb25v
dXNseSwgdXNpbmcgY2FsbE9uTWFpblRocmVhZC4KKyAgICAgICAgVGhpcyBtZWFucyB0aGF0IGlm
IGEgbGF5ZXIgdHJlZSBmbHVzaCB3YXMgYWxyZWFkeSBzY2hlZHVsZWQgaW4gdGhlIHdlYiBwcm9j
ZXNzIGJlZm9yZSB0aGUgZWxlbWVudCB3YXMgYmx1cnJlZCwKKyAgICAgICAgdGhlIGVsZW1lbnQg
Ymx1ciBJUEMgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcyB3aWxsIGxvc2UgdGhlIHJhY2UgYWdh
aW5zdCB0aGUgbGF5ZXIgdHJlZSBjb21taXQsIGFuZCB0aGUgdGVzdAorICAgICAgICB3aWxsIGZh
aWwgYmVjYXVzZSBpdCBhc2tzIGZvciAtX2F1dG9maWxsQ29udGV4dCB0b28gZWFybHkuCisKKyAg
ICAgICAgVG8gZml4IHRoaXMsIHdlIHR3ZWFrIHRoZXNlIHRlc3RzIHRvIGFjdHVhbGx5IHdhaXQg
dW50aWwgdGhlIGludGVuZGVkIGlucHV0IHNlc3Npb24gY2hhbmdlIHRyaWdnZXJlZCBieSBzY3Jp
cHQKKyAgICAgICAgaXMgaGFuZGxlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLV2ViVmlld0F1dG9maWxsVGVzdHMubW06CisKKyAgICAg
ICAgVHdlYWsgc29tZSBvZiB0aGVzZSB0ZXN0cyB0byB3YWl0IGZvciBpbnB1dCBzZXNzaW9uIGNo
YW5nZXMgYmVmb3JlIGNoZWNraW5nIGZvciB0aGUgcHJlc2VuY2Ugb2YgYW4gYXV0b2ZpbGwKKyAg
ICAgICAgY29udGV4dC4gVGhlIG9ubHkgZXhjZXB0aW9uIGlzIGFuIGV4aXN0aW5nIHRlc3QgdGhh
dCBkb2Vzbid0IGFsbG93IHByb2dyYW1tYXRpYyBmb2N1cyB0byBiZWdpbiBpbnB1dCBzZXNzaW9u
cworICAgICAgICBieSBkZWZhdWx0OyB0byBmaXggdGhpcyB0ZXN0LCB3ZSBzaW1wbHkgd2FpdCBm
b3IgX1dLSW5wdXREZWxlZ2F0ZSB0byBiZSBpbnZva2VkLCBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9y
IGEgbmV3CisgICAgICAgIGlucHV0IHNlc3Npb24uCisKKyAgICAgICAgKC1bQXV0b2ZpbGxUZXN0
VmlldyB0ZXh0SW5wdXRIYXNBdXRvZmlsbENvbnRleHRdKToKKworICAgICAgICBSZW1vdmUgdGhl
IGluY29ycmVjdCBwcmVzZW50YXRpb24gdXBkYXRlIGhlcmUuIFRoaXMgaGVscGVyIG5vdyBhc3N1
bWVzIHRoYXQgdGhlIFVJIHByb2Nlc3MgaXMgdXAgdG8gZGF0ZS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKG5leHRJbnB1dFNlc3Npb25DaGFuZ2VD
b3VudCk6CisKKyAgICAgICAgTW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlkZW50aWZpZXIgdGhh
dCdzIGluY3JlbWVudGVkIHdoZW5ldmVyIGFuIGlucHV0IHNlc3Npb24gaXMgc3RhcnRlZCBpbiB0
aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhpcyBpbmNsdWRlcyBjaGFuZ2luZyB0aGUgZm9jdXNl
ZCBlbGVtZW50IGZyb20gb25lIHRvIGFub3RoZXIuCisKKyAgICAgICAgKC1bVGVzdFdLV2ViVmll
dyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246YWRkVG9XaW5kb3c6XSk6CisgICAgICAgICgt
W1Rlc3RXS1dlYlZpZXcgZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uXSk6CisgICAgICAg
ICgtW1Rlc3RXS1dlYlZpZXcgZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbl0pOgorICAgICAg
ICAoLVtUZXN0V0tXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Np
b25Ub0NoYW5nZTpdKToKKworICAgICAgICBBZGQgYSBoZWxwZXIgdG8gZXZhbHVhdGUgSmF2YVNj
cmlwdCBhbmQgd2FpdCBmb3IgdGhpcyBzY3JpcHQgdG8gY2F1c2Ugc29tZSBjaGFuZ2UgaW4gdGhl
IGlucHV0IHNlc3Npb24uIFRoaXMKKyAgICAgICAgaGFuZGxlcyB0aHJlZSBjYXNlczogKDEpIGNo
YW5naW5nIGZvY3VzIGZyb20gYW4gZWxlbWVudCB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBhbiBpbnB1
dCBzZXNzaW9uIHRvIG9uZSB0aGF0IGRvZXMsCisgICAgICAgICgyKSBjaGFuZ2luZyBmb2N1cyBi
ZXR3ZWVuIGVsZW1lbnRzIHRoYXQgcmVxdWlyZSBpbnB1dCBzZXNzaW9ucywgYW5kICgzKSBjaGFu
Z2luZyBmb2N1cyBmcm9tIGFuIGlucHV0IHNlc3Npb24KKyAgICAgICAgdGhhdCBkb2Vzbid0IHJl
cXVpcmUgYW4gaW5wdXQgc2Vzc2lvbiB0byBvbmUgdGhhdCBkb2Vzbid0LgorCiAyMDE5LTAxLTE2
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBuZXcg
U1BJIGZvciBjb250cm9sbGluZyBnZXRVc2VyTWVkaWEKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvaW9zL1dLV2ViVmlld0F1dG9maWxsVGVzdHMubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9XS1dlYlZpZXdBdXRvZmlsbFRlc3RzLm1tCmluZGV4IDlmOGQz
MDRjMjFjY2U0OWFlYTgxYjg2YjhjYzYwYjRjMWM3NGUwNGMuLmZkZGU4MDkwODY2ZDA3ZGQwMzk0
M2RhZmE0MDM4ZjcyMzlmZTVhODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL1dLV2ViVmlld0F1dG9maWxsVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbQpAQCAtNjQsNyArNjQsNiBAQCAt
IChBdXRvZmlsbElucHV0VmlldyAqKV9hdXRvZmlsbElucHV0VmlldwogCiAtIChCT09MKXRleHRJ
bnB1dEhhc0F1dG9maWxsQ29udGV4dAogewotICAgIFtzZWxmIHdhaXRGb3JOZXh0UHJlc2VudGF0
aW9uVXBkYXRlXTsKICAgICBOU1VSTCAqdXJsID0gW3NlbGYuX2F1dG9maWxsSW5wdXRWaWV3Ll9h
dXRvZmlsbENvbnRleHQgb2JqZWN0Rm9yS2V5OkAiX1dlYlZpZXdVUkwiXTsKICAgICBpZiAoIVt1
cmwgaXNLaW5kT2ZDbGFzczpbTlNVUkwgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIE5POwpAQCAt
ODEsMTAgKzgwLDEwIEBAIFRFU1QoV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cywgVXNlcm5hbWVBbmRQ
YXNzd29yZEZpZWxkKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tBdXRvZmlsbFRl
c3RWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7
CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGlucHV0IGlkPSd1
c2VyJyB0eXBlPSdlbWFpbCc+PGlucHV0IGlkPSdwYXNzd29yZCcgdHlwZT0ncGFzc3dvcmQnPiJd
OwotICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ1c2VyLmZvY3Vz
KCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNz
aW9uVG9DaGFuZ2U6QCJ1c2VyLmZvY3VzKCkiXTsKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyB0
ZXh0SW5wdXRIYXNBdXRvZmlsbENvbnRleHRdKTsKIAotICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJwYXNzd29yZC5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAicGFzc3dvcmQu
Zm9jdXMoKSJdOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxs
Q29udGV4dF0pOwogCiAgICAgYXV0byBjcmVkZW50aWFsU3VnZ2VzdGlvbiA9IFtVSVRleHRBdXRv
ZmlsbFN1Z2dlc3Rpb24gYXV0b2ZpbGxTdWdnZXN0aW9uV2l0aFVzZXJuYW1lOkAiZnJlZGVyaWsi
IHBhc3N3b3JkOkAiZmFtb3MiXTsKQEAgLTkyLDcgKzkxLDcgQEAgVEVTVChXS1dlYlZpZXdBdXRv
ZmlsbFRlc3RzLCBVc2VybmFtZUFuZFBhc3N3b3JkRmllbGQpCiAKICAgICBFWFBFQ1RfV0tfU1RS
RVEoImZhbW9zIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInBhc3N3
b3JkLnZhbHVlIl0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpIl07CisgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5ibHVyKCkiXTsKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgdGV4dElucHV0
SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiB9CiAKQEAgLTEwMCwxMCArOTksMTAgQEAgVEVTVChXS1dl
YlZpZXdBdXRvZmlsbFRlc3RzLCBVc2VybmFtZUFuZFBhc3N3b3JkRmllbGRTZXBhcmF0ZWRCeVJh
ZGlvQnV0dG9uKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tBdXRvZmlsbFRlc3RW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CiAg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGlucHV0IGlkPSd1c2Vy
JyB0eXBlPSdlbWFpbCc+PGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSdyYWRpb19idXR0b24nIHZh
bHVlPSdyYWRpbyc+PGlucHV0IGlkPSdwYXNzd29yZCcgdHlwZT0ncGFzc3dvcmQnPiJdOwotICAg
IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ1c2VyLmZvY3VzKCkiXTsK
KyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9D
aGFuZ2U6QCJ1c2VyLmZvY3VzKCkiXTsKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyB0ZXh0SW5w
dXRIYXNBdXRvZmlsbENvbnRleHRdKTsKIAotICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJwYXNzd29yZC5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAicGFzc3dvcmQuZm9jdXMo
KSJdOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxsQ29udGV4
dF0pOwogCiAgICAgYXV0byBjcmVkZW50aWFsU3VnZ2VzdGlvbiA9IFtVSVRleHRBdXRvZmlsbFN1
Z2dlc3Rpb24gYXV0b2ZpbGxTdWdnZXN0aW9uV2l0aFVzZXJuYW1lOkAiZnJlZGVyaWsiIHBhc3N3
b3JkOkAiZmFtb3MiXTsKQEAgLTExMiw3ICsxMTEsNyBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxs
VGVzdHMsIFVzZXJuYW1lQW5kUGFzc3dvcmRGaWVsZFNlcGFyYXRlZEJ5UmFkaW9CdXR0b24pCiAg
ICAgRVhQRUNUX1dLX1NUUkVRKCJmcmVkZXJpayIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJ1c2VyLnZhbHVlIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgiZmFtb3Mi
LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGFzc3dvcmQudmFsdWUi
XSk7CiAKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5ibHVyKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmJsdXIoKSJdOwogICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyB0ZXh0SW5wdXRIYXNBdXRvZmls
bENvbnRleHRdKTsKIH0KIApAQCAtMTIwLDEwICsxMTksMTAgQEAgVEVTVChXS1dlYlZpZXdBdXRv
ZmlsbFRlc3RzLCBUd29UZXh0RmllbGRzKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tBdXRvZmlsbFRlc3RWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
MzIwLCA1MDApXSk7CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
PGlucHV0IGlkPSd0ZXh0MScgdHlwZT0nZW1haWwnPjxpbnB1dCBpZD0ndGV4dDInIHR5cGU9J3Rl
eHQnPiJdOwotICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ0ZXh0
MS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklu
cHV0U2Vzc2lvblRvQ2hhbmdlOkAidGV4dDEuZm9jdXMoKSJdOwogICAgIEVYUEVDVF9GQUxTRShb
d2ViVmlldyB0ZXh0SW5wdXRIYXNBdXRvZmlsbENvbnRleHRdKTsKIAotICAgIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ0ZXh0Mi5mb2N1cygpIl07CisgICAgW3dlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAidGV4
dDIuZm9jdXMoKSJdOwogICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyB0ZXh0SW5wdXRIYXNBdXRv
ZmlsbENvbnRleHRdKTsKIH0KIApAQCAtMTMxLDcgKzEzMCw3IEBAIFRFU1QoV0tXZWJWaWV3QXV0
b2ZpbGxUZXN0cywgU3RhbmRhbG9uZVBhc3N3b3JkRmllbGQpCiB7CiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW0F1dG9maWxsVGVzdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6QCI8aW5wdXQgaWQ9J3Bhc3N3b3JkJyB0eXBlPSdwYXNzd29yZCc+Il07Ci0gICAg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInBhc3N3b3JkLmZvY3VzKCki
XTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9u
VG9DaGFuZ2U6QCJwYXNzd29yZC5mb2N1cygpIl07CiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcg
dGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiAKICAgICBhdXRvIGNyZWRlbnRpYWxTdWdn
ZXN0aW9uID0gW1VJVGV4dEF1dG9maWxsU3VnZ2VzdGlvbiBhdXRvZmlsbFN1Z2dlc3Rpb25XaXRo
VXNlcm5hbWU6QCJmcmVkZXJpayIgcGFzc3dvcmQ6QCJmYW1vcyJdOwpAQCAtMTM5LDcgKzEzOCw3
IEBAIFRFU1QoV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cywgU3RhbmRhbG9uZVBhc3N3b3JkRmllbGQp
CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoImZhbW9zIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAInBhc3N3b3JkLnZhbHVlIl0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpIl07
CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRv
Q2hhbmdlOkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCkiXTsKICAgICBFWFBFQ1RfRkFM
U0UoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiB9CiAKQEAgLTE0Nyw3
ICsxNDYsNyBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxsVGVzdHMsIFN0YW5kYWxvbmVUZXh0Rmll
bGQpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW0F1dG9maWxsVGVzdFZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgaWQ9J3RleHRmaWVsZCcg
dHlwZT0ndGV4dCc+Il07Ci0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAInRleHRmaWVsZC5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0
QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAidGV4dGZpZWxkLmZvY3VzKCkiXTsKICAg
ICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0b2ZpbGxDb250ZXh0XSk7CiB9
CiAKQEAgLTE1NSwxMyArMTU0LDEzIEBAIFRFU1QoV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cywgQWNj
b3VudENyZWF0aW9uUGFnZSkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbQXV0b2Zp
bGxUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAw
KV0pOwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxpbnB1dCBp
ZD0ndXNlcicgdHlwZT0nZW1haWwnPjxpbnB1dCBpZD0ncGFzc3dvcmQnIHR5cGU9J3Bhc3N3b3Jk
Jz48aW5wdXQgaWQ9J2NvbmZpcm1fcGFzc3dvcmQnIHR5cGU9J3Bhc3N3b3JkJz4iXTsKLSAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAidXNlci5mb2N1cygpIl07Cisg
ICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hh
bmdlOkAidXNlci5mb2N1cygpIl07CiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHRleHRJbnB1
dEhhc0F1dG9maWxsQ29udGV4dF0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAInBhc3N3b3JkLmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJwYXNzd29yZC5mb2N1cygp
Il07CiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxsQ29udGV4
dF0pOwogCi0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNvbmZp
cm1fcGFzc3dvcmQuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFu
ZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImNvbmZpcm1fcGFzc3dvcmQuZm9jdXMoKSJd
OwogICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyB0ZXh0SW5wdXRIYXNBdXRvZmlsbENvbnRleHRd
KTsKIH0KIApAQCAtMTc0LDEyICsxNzMsMTUgQEAgVEVTVChXS1dlYlZpZXdBdXRvZmlsbFRlc3Rz
LCBBdXRvZmlsbFJlcXVpcmVzSW5wdXRTZXNzaW9uKQogewogICAgIENsYXNzTWV0aG9kU3dpenps
ZXIgc3dpenpsZXIoW1VJS2V5Ym9hcmQgY2xhc3NdLCBAc2VsZWN0b3IoaXNJbkhhcmR3YXJlS2V5
Ym9hcmRNb2RlKSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlSXNJbkhhcmR3YXJlS2V5
Ym9hcmRNb2RlKSk7CiAKKyAgICBib29sIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbQXV0b2ZpbGxUZXN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIFsoVGVzdElucHV0RGVsZWdhdGUgKilbd2ViVmll
dyBfaW5wdXREZWxlZ2F0ZV0gc2V0Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lIYW5kbGVy
OltdIChXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIC0+IF9XS0ZvY3Vz
U3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5IHsKKyAgICBbKFRlc3RJbnB1dERlbGVnYXRlICopW3dl
YlZpZXcgX2lucHV0RGVsZWdhdGVdIHNldEZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFu
ZGxlcjpbJmRvbmVdIChXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIC0+
IF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5IHsKKyAgICAgICAgZG9uZSA9IHRydWU7
CiAgICAgICAgIHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUF1dG87CiAg
ICAgfV07CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGlucHV0
IGlkPSd1c2VyJyB0eXBlPSdlbWFpbCc+PGlucHV0IGlkPSdwYXNzd29yZCcgdHlwZT0ncGFzc3dv
cmQnPiJdOwogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ1c2Vy
LmZvY3VzKCkiXTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFt3
ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxsQ29udGV4dF0pOwogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCA4ODNhYmQxY2FjYTlkNzVlOTVlNDUwMTlj
YWUwYmQ0MmVmNTA1ZGUwLi5iNmYwOTkyOTBjMGI2MGQyMjc2ZGJlNjY1ZjdiYjNmZTFhZDk3MDNi
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtODcsNiAr
ODcsNyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgY2FyZXRWaWV3
UmVjdEluQ29udGVudENvb3JkaW5hdGVzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU0FycmF5PE5TVmFsdWUgKj4gKnNlbGVjdGlvblZpZXdSZWN0c0luQ29udGVudENvb3JkaW5h
dGVzOwogLSAoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKilhY3RpdmF0ZWRFbGVtZW50QXRQb3Np
dGlvbjooQ0dQb2ludClwb3NpdGlvbjsKKy0gKHZvaWQpZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2Fp
dEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOihOU1N0cmluZyAqKXNjcmlwdDsKIEBlbmQKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggNTQ0
MTZiZmE4MTk3NTkzYjYyMjRjNWJlNjZhODllNTIxOTRkMDE1My4uMTk3N2M3YmExMmI0NTQzMWVh
MDg5NGZkN2M5NWY3MzIzNGY1YWQ0MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFdLV2ViVmlldy5tbQpAQCAtMjQ5LDExICsyNDksMjMgQEAgLSAodm9pZClyZXNpZ25LZXlXaW5k
b3cKIAogQGVuZAogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwordXNpbmcgSW5wdXRTZXNz
aW9uQ2hhbmdlQ291bnQgPSBOU1VJbnRlZ2VyOworc3RhdGljIElucHV0U2Vzc2lvbkNoYW5nZUNv
dW50IG5leHRJbnB1dFNlc3Npb25DaGFuZ2VDb3VudCgpCit7CisgICAgc3RhdGljIElucHV0U2Vz
c2lvbkNoYW5nZUNvdW50IGdJbnB1dFNlc3Npb25DaGFuZ2VDb3VudCA9IDA7CisgICAgcmV0dXJu
ICsrZ0lucHV0U2Vzc2lvbkNoYW5nZUNvdW50OworfQorCisjZW5kaWYKKwogQGltcGxlbWVudGF0
aW9uIFRlc3RXS1dlYlZpZXcgewogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3SG9zdFdpbmRv
dz4gX2hvc3RXaW5kb3c7CiAgICAgUmV0YWluUHRyPFRlc3RNZXNzYWdlSGFuZGxlcj4gX3Rlc3RI
YW5kbGVyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPENs
YXNzTWV0aG9kU3dpenpsZXI+IF9zaGFyZWRDYWxsb3V0QmFyU3dpenpsZXI7CisgICAgSW5wdXRT
ZXNzaW9uQ2hhbmdlQ291bnQgX2lucHV0U2Vzc2lvbkNoYW5nZUNvdW50OwogI2VuZGlmCiB9CiAK
QEAgLTI4OSw2ICszMDEsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0
KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpbwogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdvcmthcm91bmQgb25jZSA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc1MjA0PiBpcyBmaXhlZC4KICAgICBfc2hhcmVkQ2FsbG91
dEJhclN3aXp6bGVyID0gc3RkOjptYWtlX3VuaXF1ZTxDbGFzc01ldGhvZFN3aXp6bGVyPihbVUlD
YWxsb3V0QmFyIGNsYXNzXSwgQHNlbGVjdG9yKHNoYXJlZENhbGxvdXRCYXIpLCByZWludGVycHJl
dF9jYXN0PElNUD4oc3VwcHJlc3NVSUNhbGxvdXRCYXIpKTsKKyAgICBfaW5wdXRTZXNzaW9uQ2hh
bmdlQ291bnQgPSAwOwogI2VuZGlmCiAKICAgICByZXR1cm4gc2VsZjsKQEAgLTQwOSwxMiArNDIy
LDQ2IEBAIC0gKHZvaWQpY29sbGFwc2VUb0VuZAogICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlw
dDpAImdldFNlbGVjdGlvbigpLmNvbGxhcHNlVG9FbmQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmls
XTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy0gKHZvaWQpZGlkU3RhcnRGb3Jt
Q29udHJvbEludGVyYWN0aW9uCit7CisgICAgX2lucHV0U2Vzc2lvbkNoYW5nZUNvdW50ID0gbmV4
dElucHV0U2Vzc2lvbkNoYW5nZUNvdW50KCk7Cit9CisKKy0gKHZvaWQpZGlkRW5kRm9ybUNvbnRy
b2xJbnRlcmFjdGlvbgoreworICAgIF9pbnB1dFNlc3Npb25DaGFuZ2VDb3VudCA9IDA7Cit9CisK
KyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorCiBAZW5kCiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyAoSU9TT25seSkKIAor
LSAodm9pZClldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6
KE5TU3RyaW5nICopc2NyaXB0Cit7CisgICAgYXV0byBpbml0aWFsQ2hhbmdlQ291bnQgPSBfaW5w
dXRTZXNzaW9uQ2hhbmdlQ291bnQ7CisgICAgQk9PTCBoYXNFbWl0dGVkV2FybmluZyA9IE5POwor
ICAgIE5TVGltZUludGVydmFsIHNlY29uZHNUb1dhaXRVbnRpbFdhcm5pbmcgPSAyOworICAgIE5T
VGltZUludGVydmFsIHN0YXJ0VGltZSA9IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVu
Y2VEYXRlXTsKKworICAgIFtzZWxmIG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6c2NyaXB0
XTsKKyAgICB3aGlsZSAoW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNEZWZh
dWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV0pIHsKKyAgICAg
ICAgaWYgKF9pbnB1dFNlc3Npb25DaGFuZ2VDb3VudCAhPSBpbml0aWFsQ2hhbmdlQ291bnQpCisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoaGFzRW1pdHRlZFdhcm5pbmcgfHwgc3Rh
cnRUaW1lICsgc2Vjb25kc1RvV2FpdFVudGlsV2FybmluZyA+PSBbTlNEYXRlIHRpbWVJbnRlcnZh
bFNpbmNlUmVmZXJlbmNlRGF0ZV0pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBO
U0xvZyhAIldhcm5pbmc6IGV4cGVjdGluZyBpbnB1dCBzZXNzaW9uIGNoYW5nZSBjb3VudCB0byBk
aWZmZXIgZnJvbSAldHUiLCBpbml0aWFsQ2hhbmdlQ291bnQpOworICAgICAgICBoYXNFbWl0dGVk
V2FybmluZyA9IFlFUzsKKyAgICB9Cit9CisKIC0gKFVJVmlldyA8VUlUZXh0SW5wdXRQcml2YXRl
LCBVSVRleHRJbnB1dE11bHRpRG9jdW1lbnQ+ICopdGV4dElucHV0Q29udGVudFZpZXcKIHsKICAg
ICByZXR1cm4gKFVJVmlldyA8VUlUZXh0SW5wdXRQcml2YXRlLCBVSVRleHRJbnB1dE11bHRpRG9j
dW1lbnQ+ICopW3NlbGYgdmFsdWVGb3JLZXk6QCJfY3VycmVudENvbnRlbnRWaWV3Il07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>