<?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>147996</bug_id>
          
          <creation_ts>2015-08-13 15:49:23 -0700</creation_ts>
          <short_desc>Use WKPageConfigurationRef in WebKitTestRunner</short_desc>
          <delta_ts>2015-08-27 18:38:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1117428</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-13 15:49:23 -0700</bug_when>
    <thetext>Use WKPageConfigurationRef in WebKitTestRunner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117430</commentid>
    <comment_count>1</comment_count>
      <attachid>258944</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-13 15:50:21 -0700</bug_when>
    <thetext>Created attachment 258944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117439</commentid>
    <comment_count>2</comment_count>
      <attachid>258947</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-13 16:09:03 -0700</bug_when>
    <thetext>Created attachment 258947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117480</commentid>
    <comment_count>3</comment_count>
      <attachid>258959</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-13 17:08:06 -0700</bug_when>
    <thetext>Created attachment 258959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117643</commentid>
    <comment_count>4</comment_count>
      <attachid>258959</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-08-14 09:29:27 -0700</bug_when>
    <thetext>Comment on attachment 258959
Patch

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

&gt; Tools/WebKitTestRunner/TestController.h:235
&gt;      WKRetainPtr&lt;WKContextRef&gt; m_context;
&gt;      WKRetainPtr&lt;WKPageGroupRef&gt; m_pageGroup;

Since you can get the context and page group from the configuration, is it worth storing them here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119154</commentid>
    <comment_count>5</comment_count>
      <attachid>258959</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-08-19 18:46:11 -0700</bug_when>
    <thetext>Comment on attachment 258959
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKView.h:-57
&gt; -#if TARGET_OS_IPHONE
&gt; -- (id)initWithFrame:(CGRect)frame processGroup:(WKProcessGroup *)processGroup browsingContextGroup:(WKBrowsingContextGroup *)browsingContextGroup;
&gt; -- (id)initWithFrame:(CGRect)frame processGroup:(WKProcessGroup *)processGroup browsingContextGroup:(WKBrowsingContextGroup *)browsingContextGroup relatedToView:(WKView *)relatedView;
&gt; -#else

Can we do this in another patch?

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h:39
&gt; -- (id)initWithFrame:(CGRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef;
&gt; -- (id)initWithFrame:(CGRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef relatedToPage:(WKPageRef)relatedPage;
&gt; +- (id)initWithFrame:(CGRect)frame configurationRef:(WKPageConfigurationRef)configuration;

Can we do this in another patch?

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:4007
&gt; -    Ref&lt;API::PageConfiguration&gt; configuration = *toImpl(configurationRef);
&gt; +    Ref&lt;API::PageConfiguration&gt; configuration = toImpl(configurationRef)-&gt;copy();

This is a good change, but unrelated. Can you break it out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119444</commentid>
    <comment_count>6</comment_count>
      <attachid>259520</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-20 16:37:12 -0700</bug_when>
    <thetext>Created attachment 259520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119447</commentid>
    <comment_count>7</comment_count>
      <attachid>259522</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-20 16:40:11 -0700</bug_when>
    <thetext>Created attachment 259522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119457</commentid>
    <comment_count>8</comment_count>
      <attachid>259526</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-20 16:56:40 -0700</bug_when>
    <thetext>Created attachment 259526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119463</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-20 17:01:48 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/188718</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258944</attachid>
            <date>2015-08-13 15:50:21 -0700</date>
            <delta_ts>2015-08-13 16:09:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147996-20150813155003.patch</filename>
            <type>text/plain</type>
            <size>1661</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI3ODY3YTZhMDVmYjBi
NzQ4NTYxYTcxYTBlNmVkMjcyM2VjZGU4MC4uOGY0OGYxNmEwNjZiMWJhZjU0NDlkOWJlMGY4N2U2
OWEyMGU2NmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACisyMDE1LTA4LTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIHRvIGNvcHkgdGhlIGNvbmZpZ3Vy
YXRpb24sIG1hdGNoaW5nIHdoYXQgd2UgZG8gaW4gdGhlIG1vZGVybiBBUEkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBpbml0V2l0
aEZyYW1lOmNvbmZpZ3VyYXRpb25SZWY6XSk6CisKIDIwMTUtMDgtMTMgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV0tXaW5kb3dGZWF0dXJlc1Jl
ZiBhbmQgYSBuZXcgbW9kZXJuIGNyZWF0ZU5ld1BhZ2UgVUkgY2xpZW50IGNhbGxiYWNrCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5ODkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDM0YjNmZjRjMjQ5
YjMxYWExY2I4MjE0NmRjNGQ4MDhlZDRmZjRkNWMuLjExNjJiNGZlMDJmMGVkYTIxZDU4YjBkNDFi
ZmUxMWJmNzUzNjJjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KQEAgLTQwMDQsNyArNDAwNCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlx
dWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKGlkKWluaXRXaXRoRnJhbWU6
KE5TUmVjdClmcmFtZSBjb25maWd1cmF0aW9uUmVmOihXS1BhZ2VDb25maWd1cmF0aW9uUmVmKWNv
bmZpZ3VyYXRpb25SZWYKIHsKLSAgICBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4gY29uZmln
dXJhdGlvbiA9ICp0b0ltcGwoY29uZmlndXJhdGlvblJlZik7CisgICAgUmVmPEFQSTo6UGFnZUNv
bmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSB0b0ltcGwoY29uZmlndXJhdGlvblJlZiktPmNv
cHkoKTsKICAgICBhdXRvJiBwcm9jZXNzUG9vbCA9ICpjb25maWd1cmF0aW9uLT5wcm9jZXNzUG9v
bCgpOwogCiAgICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgcHJvY2Vzc1Bvb2w6
cHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjpXVEY6Om1vdmUoY29uZmlndXJhdGlvbikgd2ViVmll
dzpuaWxdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258947</attachid>
            <date>2015-08-13 16:09:03 -0700</date>
            <delta_ts>2015-08-13 17:08:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147996-20150813160844.patch</filename>
            <type>text/plain</type>
            <size>11640</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGRlNmZiYmQ0ODNkYTc4
MDg0ODBhMGQwY2Y3NmQ5NmRmYzgyMmJkNi4uNTk4YTEwNTliNDE2ZWE4NTE1NGY1NWRiZTg1ODJm
YTRjNzRiMzAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA4LTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIHRvIGNvcHkgdGhlIGNvbmZpZ3Vy
YXRpb24sIG1hdGNoaW5nIHdoYXQgd2UgZG8gaW4gdGhlIG1vZGVybiBBUEkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBpbml0V2l0
aEZyYW1lOmNvbmZpZ3VyYXRpb25SZWY6XSk6CisKIDIwMTUtMDgtMTMgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQSBmb2N1c2VkIG5vZGUgc2hvdWxk
IG5vdCBiZSBhc3Npc3RlZCB3aGVuIGhhbmRsaW5nIHRvdWNoIGV2ZW50cyBzeW5jaHJvbm91c2x5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMzRiM2Zm
NGMyNDliMzFhYTFjYjgyMTQ2ZGM0ZDgwOGVkNGZmNGQ1Yy4uMTE2MmI0ZmUwMmYwZWRhMjFkNThi
MGQ0MWJmZTExYmY3NTM2MmMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQpAQCAtNDAwNCw3ICs0MDA0LDcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0
aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogLSAoaWQpaW5pdFdpdGhG
cmFtZTooTlNSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb25SZWY6KFdLUGFnZUNvbmZpZ3VyYXRpb25S
ZWYpY29uZmlndXJhdGlvblJlZgogewotICAgIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiBj
b25maWd1cmF0aW9uID0gKnRvSW1wbChjb25maWd1cmF0aW9uUmVmKTsKKyAgICBSZWY8QVBJOjpQ
YWdlQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IHRvSW1wbChjb25maWd1cmF0aW9uUmVm
KS0+Y29weSgpOwogICAgIGF1dG8mIHByb2Nlc3NQb29sID0gKmNvbmZpZ3VyYXRpb24tPnByb2Nl
c3NQb29sKCk7CiAKICAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBwcm9jZXNz
UG9vbDpwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOldURjo6bW92ZShjb25maWd1cmF0aW9uKSB3
ZWJWaWV3Om5pbF07CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggMTNmMTBjNDI2ODg0NDljMzMwYjRkNzlmMTVlMWM4MjNlMWJlYjM0MS4uZDdiYzRl
Y2ZiMzViOTI2NjhlMjUxMTY4YzhmMWQwZjk1MWVjNDhkOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA4LTEz
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTk2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVy
UGFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tOgorICAgICAg
ICAoLVtUZXN0UnVubmVyV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlvblJlZjp1c2VU
aHJlYWRlZFNjcm9sbGluZzpdKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpQbGF0
Zm9ybVdlYlZpZXcpOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tWaWV3IGluaXRXaXRoRnJhbWU6
Y29udGV4dFJlZjpwYWdlR3JvdXBSZWY6cmVsYXRlZFRvUGFnZTp1c2VUaHJlYWRlZFNjcm9sbGlu
ZzpdKTogRGVsZXRlZC4KKwogMjAxNS0wOC0xMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxl
LmNvbT4KIAogICAgICAgICBSdW4gYmVuY2htYXJrIGN1c3RvbWl6ZWQgRHJvbWFlbyBzaG91bGQg
bm90IGFzc3VtZSB0aGVyZSBpcyBhbiBpbnRlcm5ldCBjb25uZWN0aW9uLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggMTRiNjYwY2YwYTg0NzQ2MzRmZGNkZTE1
MGIzY2RiYTYyZWNhYWQ0ZS4uYTEzMDg5YmM4ZWNiZGFmOGFiNjQ3MDdiOThjYzc3YmYxNGMxNDlh
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC01Miw3ICs1
Miw3IEBAIG5hbWVzcGFjZSBXVFIgewogCiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXcgewogcHVibGlj
OgotICAgIFBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmLCBXS1Bh
Z2VSZWYgcmVsYXRlZFBhZ2UsIGNvbnN0IFZpZXdPcHRpb25zJik7CisgICAgUGxhdGZvcm1XZWJW
aWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFZpZXdPcHRpb25zJik7CiAgICAgflBs
YXRmb3JtV2ViVmlldygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2UoKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYzcyOTU4NmJkMzE0MGM0NTJkNzRjODhi
Yjg5NTBjNmZmMGMxZmQ3Mi4uNzQ1YzNjNzhjZGVlNjE2ZTM2YzUwNWJmY2UyMDhiNDJmYjczMDY5
MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE5Nywx
NyArMTk3LDE3IEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTCiAgICAgVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHBlcm1pc3Npb25S
ZXF1ZXN0KTsKIH0KIAotV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2Uo
V0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2
ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CitXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xk
UHBhZ2UsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9u
QWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVh
dHVyZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBw
YXJlbnRWaWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRm
b3JtV2ViVmlldyhXS1BhZ2VHZXRDb250ZXh0KG9sZFBhZ2UpLCBXS1BhZ2VHZXRQYWdlR3JvdXAo
b2xkUGFnZSksIG9sZFBhZ2UsIHBhcmVudFZpZXctPm9wdGlvbnMoKSk7CisgICAgUGxhdGZvcm1X
ZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhjb25maWd1cmF0aW9uLCBwYXJlbnRW
aWV3LT5vcHRpb25zKCkpOwogICAgIFdLUGFnZVJlZiBuZXdQYWdlID0gdmlldy0+cGFnZSgpOwog
CiAgICAgdmlldy0+cmVzaXplVG8oODAwLCA2MDApOwogCi0gICAgV0tQYWdlVUlDbGllbnRWNSBv
dGhlclBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyA1LCB2aWV3IH0sCisgICAgV0tQYWdlVUlD
bGllbnRWNiBvdGhlclBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyA2LCB2aWV3IH0sCiAgICAg
ICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAgICAgICAw
LCAvLyBzaG93UGFnZQogICAgICAgICBjbG9zZU90aGVyUGFnZSwKQEAgLTI0Nyw3ICsyNDcsNyBA
QCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xk
UGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBkaWRDb21wbGV0ZVJ1YmJl
ckJhbmRGb3JNYWluRnJhbWUKICAgICAgICAgMCwgLy8gc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fk
c0ZvbGRlcgogICAgICAgICAwLCAvLyBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Ci0gICAgICAg
IGNyZWF0ZU90aGVyUGFnZSwKKyAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVk
Rm9yVXNlV2l0aFYxCiAgICAgICAgIDAsIC8vIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50CiAgICAg
ICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0CiAg
ICAgICAgIDAsIC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9y
VXNlV2l0aFYxCkBAIC0yNjUsNiArMjY1LDcgQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpj
cmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0sKICAg
ICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdENvbmZpcm0KICAgICAgICAgMCwgLy8gcnVuSmF2YVNj
cmlwdFByb21wdAogICAgICAgICAwLCAvLyBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZQor
ICAgICAgICBjcmVhdGVPdGhlclBhZ2UsCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50LmJhc2UpOwogICAgIApAQCAtNDMwLDYgKzQz
MSwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBj
aGFyKiBhcmd2W10pCiAgICAgaWYgKG1fZm9yY2VDb21wbGV4VGV4dCkKICAgICAgICAgV0tDb250
ZXh0U2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgobV9jb250ZXh0LmdldCgpLCB0cnVl
KTsKIAorICAgIG1fY29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNy
ZWF0ZSgpKTsKKyAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChtX2NvbmZpZ3VyYXRp
b24uZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7CisgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBh
Z2VHcm91cChtX2NvbmZpZ3VyYXRpb24uZ2V0KCksIG1fcGFnZUdyb3VwLmdldCgpKTsKKwogICAg
IC8vIFNvbWUgcHJlZmVyZW5jZXMgKG5vdGFibHkgbW9jayBzY3JvbGwgYmFycyBzZXR0aW5nKSBj
dXJyZW50bHkgY2Fubm90IGJlIHJlLWFwcGxpZWQgdG8gYW4gZXhpc3Rpbmcgdmlldywgc28gd2Ug
bmVlZCB0byBzZXQgdGhlbSBub3cuCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZh
bHVlcygpOwogCkBAIC00NDIsOSArNDQ3LDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlh
bGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCiB7
Ci0gICAgbV9tYWluV2ViVmlldyA9IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1XZWJWaWV3Piht
X2NvbnRleHQuZ2V0KCksIG1fcGFnZUdyb3VwLmdldCgpLCBudWxscHRyLCBvcHRpb25zKTsKLSAg
ICBXS1BhZ2VVSUNsaWVudFY1IHBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyA1LCBtX21haW5X
ZWJWaWV3LmdldCgpIH0sCisgICAgbV9tYWluV2ViVmlldyA9IHN0ZDo6bWFrZV91bmlxdWU8UGxh
dGZvcm1XZWJWaWV3PihtX2NvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOworICAgIFdLUGFn
ZVVJQ2xpZW50VjYgcGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDYsIG1fbWFpbldlYlZpZXcu
Z2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0
aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBAIC00ODQs
NyArNDg5LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25z
KGNvbnN0IFZpZXdPcHRpb25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyBkaWRDb21wbGV0ZVJ1
YmJlckJhbmRGb3JNYWluRnJhbWUKICAgICAgICAgMCwgLy8gc2F2ZURhdGFUb0ZpbGVJbkRvd25s
b2Fkc0ZvbGRlcgogICAgICAgICAwLCAvLyBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Ci0gICAg
ICAgIGNyZWF0ZU90aGVyUGFnZSwKKyAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNh
dGVkRm9yVXNlV2l0aFYxCiAgICAgICAgIDAsIC8vIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50CiAg
ICAgICAgIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LCAvLyBk
ZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAogICAgICAgICAwLCAv
LyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMQpA
QCAtNTAyLDYgKzUwNyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3B0aW9ucyhjb25zdCBWaWV3T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcnVuSmF2
YVNjcmlwdENvbmZpcm0KICAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdFByb21wdAogICAgICAg
ICAwLCAvLyBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZQorICAgICAgICBjcmVhdGVPdGhl
clBhZ2UsCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+
cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKaW5kZXggOTg2ODliZjMwMDc1ZWU4MGQwMzEwNjRlYTdjOWExNDE5Y2M2YmU4
NC4uNTEwNWZjODM1ZDhiZjMwOWIxNDNlZTc1ZDQ0NmViYTE2MGU1ZmE3NyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjA4LDcgKzIwOCw3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRpdGxlKFdLQ29udGV4dFJlZiwgV0tQ
YWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tVUkxSZWYsIFdLRnJhbWVSZWYsIGNvbnN0IHZv
aWQqKTsKICAgICB2b2lkIGRpZFVwZGF0ZUhpc3RvcnlUaXRsZShXS1N0cmluZ1JlZiB0aXRsZSwg
V0tVUkxSZWYsIFdLRnJhbWVSZWYpOwogCi0gICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVPdGhl
clBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVm
LCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKTsKKyAg
ICBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZp
Z3VyYXRpb25SZWYsIFdLTmF2aWdhdGlvbkFjdGlvblJlZiwgV0tXaW5kb3dGZWF0dXJlc1JlZiwg
Y29uc3Qgdm9pZCopOwogCiAgICAgc3RhdGljIHZvaWQgcnVuTW9kYWwoV0tQYWdlUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBydW5Nb2RhbChQbGF0Zm9ybVdl
YlZpZXcqKTsKQEAgLTIzMyw2ICsyMzMsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxQbGF0Zm9ybVdlYlZpZXc+IG1fbWFpbldlYlZpZXc7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBtX2NvbnRleHQ7CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IG1fcGFn
ZUdyb3VwOworICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IG1fY29uZmln
dXJhdGlvbjsKIAogICAgIGVudW0gU3RhdGUgewogICAgICAgICBJbml0aWFsLApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IDE2Zjg2
N2RhNTI5YmZkOWE5N2I3NTQ4YmY0MmU0NDY1YWZiNzFlNTcuLjhlY2IwNDc1NTkwYmU3MDk2YWNh
OWRiNTc4YTY1Zjg5ODJjNzZhMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTUwLDggKzUwLDYgQEAgZW51bSB7CiAgICAgQk9P
TCBfdXNlVGhyZWFkZWRTY3JvbGxpbmc7CiB9CiAKLS0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVj
dClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dCBwYWdlR3JvdXBSZWY6KFdL
UGFnZUdyb3VwUmVmKXBhZ2VHcm91cCByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYpcmVsYXRlZFBh
Z2UgdXNlVGhyZWFkZWRTY3JvbGxpbmc6KEJPT0wpdXNlVGhyZWFkZWRTY3JvbGxpbmc7Ci0KIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgdXNlVGhyZWFkZWRTY3JvbGxpbmc7CiBA
ZW5kCiAKQEAgLTU5LDEwICs1NywxMyBAQCBlbnVtIHsKIAogQHN5bnRoZXNpemUgdXNlVGhyZWFk
ZWRTY3JvbGxpbmcgPSBfdXNlVGhyZWFkZWRTY3JvbGxpbmc7CiAKLS0gKGlkKWluaXRXaXRoRnJh
bWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dCBwYWdlR3Jv
dXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cCByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYp
cmVsYXRlZFBhZ2UgdXNlVGhyZWFkZWRTY3JvbGxpbmc6KEJPT0wpdXNlVGhyZWFkZWRTY3JvbGxp
bmcKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb25maWd1cmF0aW9uUmVmOihX
S1BhZ2VDb25maWd1cmF0aW9uUmVmKWNvbmZpZ3VyYXRpb24gdXNlVGhyZWFkZWRTY3JvbGxpbmc6
KEJPT0wpdXNlVGhyZWFkZWRTY3JvbGxpbmcKIHsKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGlu
aXRXaXRoRnJhbWU6ZnJhbWUgY29uZmlndXJhdGlvblJlZjpjb25maWd1cmF0aW9uXSkpCisgICAg
ICAgIHJldHVybiBuaWw7CisKICAgICBfdXNlVGhyZWFkZWRTY3JvbGxpbmcgPSB1c2VUaHJlYWRl
ZFNjcm9sbGluZzsKLSAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29udGV4
dFJlZjpjb250ZXh0IHBhZ2VHcm91cFJlZjpwYWdlR3JvdXAgcmVsYXRlZFRvUGFnZTpyZWxhdGVk
UGFnZV07CisgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQpZHJhZ0ltYWdlOihOU0ltYWdl
ICopYW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRpb24gb2Zmc2V0OihOU1NpemUpaW5pdGlh
bE9mZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAq
KXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlkZUJhY2s6KEJPT0wpc2xpZGVGbGFnCkBA
IC0xMTksMTAgKzEyMCwxMiBAQCBlbnVtIHsKIAogbmFtZXNwYWNlIFdUUiB7CiAKLVBsYXRmb3Jt
V2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VH
cm91cFJlZiBwYWdlR3JvdXBSZWYsIFdLUGFnZVJlZiByZWxhdGVkUGFnZSwgY29uc3QgVmlld09w
dGlvbnMmIG9wdGlvbnMpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VD
b25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFZpZXdPcHRpb25zJiBvcHRpb25z
KQogICAgIDogbV93aW5kb3dJc0tleSh0cnVlKQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiB7
CisgICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gV0tQYWdlQ29uZmlndXJhdGlvbkdl
dFBhZ2VHcm91cChjb25maWd1cmF0aW9uKTsKKwogICAgIC8vIFRoZSB0aWxlZCBkcmF3aW5nIHNw
ZWNpZmljIHRlc3RzIGFsc28gZGVwZW5kIG9uIHRocmVhZGVkIHNjcm9sbGluZy4KICAgICBXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdl
R3JvdXBSZWYpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQo
cHJlZmVyZW5jZXMsIG1fb3B0aW9ucy51c2VUaHJlYWRlZFNjcm9sbGluZyk7CkBAIC0xMzIsNyAr
MTM1LDcgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm8KICAgICAgICAgW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0VmFsdWU6QFlFUyBmb3JLZXk6QCJXZWJLaXQyVXNl
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEiXTsKIAogICAgIE5TUmVjdCByZWN0ID0gTlNNYWtl
UmVjdCgwLCAwLCBUZXN0Q29udHJvbGxlcjo6dmlld1dpZHRoLCBUZXN0Q29udHJvbGxlcjo6dmll
d0hlaWdodCk7Ci0gICAgbV92aWV3ID0gW1tUZXN0UnVubmVyV0tWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOnJlY3QgY29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBS
ZWYgcmVsYXRlZFRvUGFnZTpyZWxhdGVkUGFnZSB1c2VUaHJlYWRlZFNjcm9sbGluZzptX29wdGlv
bnMudXNlVGhyZWFkZWRTY3JvbGxpbmddOworICAgIG1fdmlldyA9IFtbVGVzdFJ1bm5lcldLVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbmZpZ3VyYXRpb25SZWY6Y29uZmlndXJhdGlv
bl07CiAgICAgW21fdmlldyBzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOk5PXTsK
IAogICAgIE5TU2NyZWVuICpmaXJzdFNjcmVlbiA9IFtbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0
QXRJbmRleDowXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258959</attachid>
            <date>2015-08-13 17:08:06 -0700</date>
            <delta_ts>2015-08-20 16:37:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147996-20150813170748.patch</filename>
            <type>text/plain</type>
            <size>20493</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGRlNmZiYmQ0ODNkYTc4
MDg0ODBhMGQwY2Y3NmQ5NmRmYzgyMmJkNi4uNDdmOGE2YjkwZWM5YmNjZTA0YWUzNTJlM2RhN2U1
ZDk5NmQ0NzM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA4LTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlldy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF9j
b21tb25Jbml0aWFsaXphdGlvbldpdGhDb25maWd1cmF0aW9uUmVmOl0pOgorICAgICAgICAoLVtX
S1ZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uUmVmOl0pOgorICAgICAgICAoLVtXS1Zp
ZXcgaW5pdFdpdGhDb2RlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRo
RnJhbWU6cHJvY2Vzc0dyb3VwOmJyb3dzaW5nQ29udGV4dEdyb3VwOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzR3JvdXA6YnJvd3NpbmdDb250ZXh0
R3JvdXA6cmVsYXRlZFRvVmlldzpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9jb21t
b25Jbml0aWFsaXphdGlvbldpdGhDb250ZXh0UmVmOnBhZ2VHcm91cFJlZjpyZWxhdGVkVG9QYWdl
Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0UmVm
OnBhZ2VHcm91cFJlZjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJh
bWU6Y29udGV4dFJlZjpwYWdlR3JvdXBSZWY6cmVsYXRlZFRvUGFnZTpdKTogRGVsZXRlZC4KKyAg
ICAgICAgUmVtb3ZlIHVudXNlZCBpT1MgV0tWaWV3IGluaXRpYWxpemVycy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRo
RnJhbWU6Y29uZmlndXJhdGlvblJlZjpdKToKKyAgICAgICAgTWFrZSBzdXJlIHRvIGNvcHkgdGhl
IGNvbmZpZ3VyYXRpb24sIG1hdGNoaW5nIHdoYXQgd2UgZG8gaW4gdGhlIG1vZGVybiBBUEkuCisg
ICAgICAgIAogMjAxNS0wOC0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBBIGZvY3VzZWQgbm9kZSBzaG91bGQgbm90IGJlIGFzc2lzdGVkIHdoZW4g
aGFuZGxpbmcgdG91Y2ggZXZlbnRzIHN5bmNocm9ub3VzbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVmlldy5oCmluZGV4IDJhZTQ2YmFmOWFmZjdjYTVkNjkxZjMyYmQ5
NjI1ZjVlYjk3ODA5NzguLmFjMzMwYWIyM2JmZmQ3MDcwYTBkMmNlNzM0M2ViODNhNGNmOWYwZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaApAQCAtNTEs
MTAgKzUxLDcgQEAgV0tfRVhQT1JUCiAKICNpZiBXS19BUElfRU5BQkxFRAogCi0jaWYgVEFSR0VU
X09TX0lQSE9ORQotLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NHcm91
cDooV0tQcm9jZXNzR3JvdXAgKilwcm9jZXNzR3JvdXAgYnJvd3NpbmdDb250ZXh0R3JvdXA6KFdL
QnJvd3NpbmdDb250ZXh0R3JvdXAgKilicm93c2luZ0NvbnRleHRHcm91cDsKLS0gKGlkKWluaXRX
aXRoRnJhbWU6KENHUmVjdClmcmFtZSBwcm9jZXNzR3JvdXA6KFdLUHJvY2Vzc0dyb3VwICopcHJv
Y2Vzc0dyb3VwIGJyb3dzaW5nQ29udGV4dEdyb3VwOihXS0Jyb3dzaW5nQ29udGV4dEdyb3VwICop
YnJvd3NpbmdDb250ZXh0R3JvdXAgcmVsYXRlZFRvVmlldzooV0tWaWV3ICopcmVsYXRlZFZpZXc7
Ci0jZWxzZQorI2lmICFUQVJHRVRfT1NfSVBIT05FCiAtIChpZClpbml0V2l0aEZyYW1lOihOU1Jl
Y3QpZnJhbWUgcHJvY2Vzc0dyb3VwOihXS1Byb2Nlc3NHcm91cCAqKXByb2Nlc3NHcm91cCBicm93
c2luZ0NvbnRleHRHcm91cDooV0tCcm93c2luZ0NvbnRleHRHcm91cCAqKWJyb3dzaW5nQ29udGV4
dEdyb3VwOwogLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHByb2Nlc3NHcm91cDoo
V0tQcm9jZXNzR3JvdXAgKilwcm9jZXNzR3JvdXAgYnJvd3NpbmdDb250ZXh0R3JvdXA6KFdLQnJv
d3NpbmdDb250ZXh0R3JvdXAgKilicm93c2luZ0NvbnRleHRHcm91cCByZWxhdGVkVG9WaWV3OihX
S1ZpZXcgKilyZWxhdGVkVmlldzsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAppbmRleCA0NTRmNTA0ZmY2YzA2ZWVjMzRj
OWViYzdjYjk5YzAxM2ExYTMwZDIwLi41ZDRlYmE0NTdhMWMyZGE5MTg2ZDAwOTMxNDg0MjQ4ZjI2
ZjlmMWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
Vmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
Vmlld1ByaXZhdGUuaApAQCAtMzYsOCArMzYsNyBAQAogQHByb3BlcnR5IChyZWFkb25seSkgV0tQ
YWdlUmVmIHBhZ2VSZWY7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCi0tIChpZClpbml0V2l0aEZy
YW1lOihDR1JlY3QpZnJhbWUgY29udGV4dFJlZjooV0tDb250ZXh0UmVmKWNvbnRleHRSZWYgcGFn
ZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXBSZWY7Ci0tIChpZClpbml0V2l0aEZy
YW1lOihDR1JlY3QpZnJhbWUgY29udGV4dFJlZjooV0tDb250ZXh0UmVmKWNvbnRleHRSZWYgcGFn
ZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTooV0tQ
YWdlUmVmKXJlbGF0ZWRQYWdlOworLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNv
bmZpZ3VyYXRpb25SZWY6KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpY29uZmlndXJhdGlvbjsKICNl
bHNlCiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29udGV4dFJlZjooV0tDb250
ZXh0UmVmKWNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXBS
ZWY7CiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29udGV4dFJlZjooV0tDb250
ZXh0UmVmKWNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXBS
ZWYgcmVsYXRlZFRvUGFnZTooV0tQYWdlUmVmKXJlbGF0ZWRQYWdlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1tCmluZGV4IGZmYTEwYzg3MDkyM2EzZTA2
NjU5NjIwMDUzYzQ1M2IxZGU1NDg2NGEuLmZiNWE1MjE5MGRjZjcxOGYyMTQ0YWFkZTEyMDdiZjRj
YmZmZDc0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dL
Vmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJ
T1MubW0KQEAgLTMzLDggKzMzLDggQEAKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJW
aWV3R2VzdHVyZUNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgotI2ltcG9ydCAi
V0tCcm93c2luZ0NvbnRleHRHcm91cFByaXZhdGUuaCIKICNpbXBvcnQgIldLQ29udGVudFZpZXcu
aCIKKyNpbXBvcnQgIldLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaCIKICNpbXBvcnQgIldLUHJvY2Vz
c0dyb3VwUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tTY3JvbGxWaWV3LmgiCiAjaW1wb3J0ICJXZWJQ
YWdlR3JvdXAuaCIKQEAgLTY5LDI3ICs2OSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAg
ICAgQ0dGbG9hdCBfbGFzdEFkanVzdG1lbnRGb3JTY3JvbGxlcjsKIH0KIAotLSAoaWQpaW5pdFdp
dGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCi17Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudC4KLSAg
ICBbc2VsZiByZWxlYXNlXTsKLSAgICByZXR1cm4gbmlsOwotfQotCi0tIChpZClpbml0V2l0aEZy
YW1lOihDR1JlY3QpZnJhbWUgcHJvY2Vzc0dyb3VwOihXS1Byb2Nlc3NHcm91cCAqKXByb2Nlc3NH
cm91cCBicm93c2luZ0NvbnRleHRHcm91cDooV0tCcm93c2luZ0NvbnRleHRHcm91cCAqKWJyb3dz
aW5nQ29udGV4dEdyb3VwCi17Ci0gICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUg
cHJvY2Vzc0dyb3VwOnByb2Nlc3NHcm91cCBicm93c2luZ0NvbnRleHRHcm91cDpicm93c2luZ0Nv
bnRleHRHcm91cCByZWxhdGVkVG9WaWV3Om5pbF07Ci19Ci0KLS0gKGlkKWluaXRXaXRoRnJhbWU6
KENHUmVjdClmcmFtZSBwcm9jZXNzR3JvdXA6KFdLUHJvY2Vzc0dyb3VwICopcHJvY2Vzc0dyb3Vw
IGJyb3dzaW5nQ29udGV4dEdyb3VwOihXS0Jyb3dzaW5nQ29udGV4dEdyb3VwICopYnJvd3NpbmdD
b250ZXh0R3JvdXAgcmVsYXRlZFRvVmlldzooV0tWaWV3ICopcmVsYXRlZFZpZXcKLXsKLSAgICBp
ZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkKLSAgICAgICAgcmV0dXJu
IG5pbDsKLQotICAgIFtzZWxmIF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhDb250ZXh0UmVmOnBy
b2Nlc3NHcm91cC5fY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6YnJvd3NpbmdDb250ZXh0R3JvdXAu
X3BhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOnJlbGF0ZWRWaWV3ID8gW3JlbGF0ZWRWaWV3IHBh
Z2VSZWZdIDogbnVsbHB0cl07Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KIC0gKHZvaWQpZGVhbGxv
YwogewogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2Jz
ZXJ2ZXI6c2VsZl07CkBAIC0yMTQsNyArMTkzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IAogI3ByYWdtYSBtYXJrIEludGVybmFsCiAKLS0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9u
V2l0aENvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjooV0tQ
YWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6KFdLUGFnZVJlZilyZWxhdGVk
UGFnZQorLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoQ29uZmlndXJhdGlvblJlZjoo
V0tQYWdlQ29uZmlndXJhdGlvblJlZiljb25maWd1cmF0aW9uUmVmCiB7CiAgICAgQVNTRVJUKCFf
c2Nyb2xsVmlldyk7CiAgICAgQVNTRVJUKCFfY29udGVudFZpZXcpOwpAQCAtMjI2LDEyICsyMDUs
OSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAgICAgW3NlbGYgYWRkU3Vidmlldzpfc2Ny
b2xsVmlldy5nZXQoKV07CiAKLSAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBBUEk6OlBhZ2VDb25m
aWd1cmF0aW9uOjpjcmVhdGUoKTsKLSAgICBjb25maWd1cmF0aW9uLT5zZXRQcm9jZXNzUG9vbCh0
b0ltcGwoY29udGV4dFJlZikpOwotICAgIGNvbmZpZ3VyYXRpb24tPnNldFBhZ2VHcm91cCh0b0lt
cGwocGFnZUdyb3VwUmVmKSk7Ci0gICAgY29uZmlndXJhdGlvbi0+c2V0UmVsYXRlZFBhZ2UodG9J
bXBsKHJlbGF0ZWRQYWdlKSk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gdG9JbXBsKGNvbmZp
Z3VyYXRpb25SZWYpLT5jb3B5KCk7CiAKLSAgICBfY29udGVudFZpZXcgPSBhZG9wdE5TKFtbV0tD
b250ZW50VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpib3VuZHMgcHJvY2Vzc1Bvb2w6KnRvSW1w
bChjb250ZXh0UmVmKSBjb25maWd1cmF0aW9uOldURjo6bW92ZShjb25maWd1cmF0aW9uKSB3a1Zp
ZXc6c2VsZl0pOworICAgIF9jb250ZW50VmlldyA9IGFkb3B0TlMoW1tXS0NvbnRlbnRWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOmJvdW5kcyBwcm9jZXNzUG9vbDoqY29uZmlndXJhdGlvbi0+cHJv
Y2Vzc1Bvb2woKSBjb25maWd1cmF0aW9uOldURjo6bW92ZShjb25maWd1cmF0aW9uKSB3a1ZpZXc6
c2VsZl0pOwogCiAgICAgW1tfY29udGVudFZpZXcgbGF5ZXJdIHNldEFuY2hvclBvaW50OkNHUG9p
bnRaZXJvXTsKICAgICBbX2NvbnRlbnRWaWV3IHNldEZyYW1lOmJvdW5kc107CkBAIC0zMTksMTcg
KzI5NSwxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIHJldHVybiB0b0FQSShbX2Nv
bnRlbnRWaWV3IHBhZ2VdKTsKIH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1l
IGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjooV0tQYWdl
R3JvdXBSZWYpcGFnZUdyb3VwUmVmCi17Ci0gICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6
ZnJhbWUgY29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBSZWYgcmVs
YXRlZFRvUGFnZTpuaWxdOwotfQotCi0tIChpZClpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUg
Y29udGV4dFJlZjooV0tDb250ZXh0UmVmKWNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOihXS1BhZ2VH
cm91cFJlZilwYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTooV0tQYWdlUmVmKXJlbGF0ZWRQYWdl
CistIChpZClpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlvblJlZjooV0tQ
YWdlQ29uZmlndXJhdGlvblJlZiljb25maWd1cmF0aW9uCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtz
dXBlciBpbml0V2l0aEZyYW1lOmZyYW1lXSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBb
c2VsZiBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoQ29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VH
cm91cFJlZjpwYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTpyZWxhdGVkUGFnZV07CisgICAgW3Nl
bGYgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aENvbmZpZ3VyYXRpb25SZWY6Y29uZmlndXJhdGlv
bl07CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQppbmRleCAzNGIzZmY0YzI0OWIzMWFhMWNiODIxNDZkYzRkODA4ZWQ0ZmY0
ZDVjLi4xMTYyYjRmZTAyZjBlZGEyMWQ1OGIwZDQxYmZlMTFiZjc1MzYyYzAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00MDA0LDcgKzQwMDQsNyBA
QCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5n
ICpwYXRoKQogCiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29uZmlndXJhdGlv
blJlZjooV0tQYWdlQ29uZmlndXJhdGlvblJlZiljb25maWd1cmF0aW9uUmVmCiB7Ci0gICAgUmVm
PEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSAqdG9JbXBsKGNvbmZpZ3Vy
YXRpb25SZWYpOworICAgIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9u
ID0gdG9JbXBsKGNvbmZpZ3VyYXRpb25SZWYpLT5jb3B5KCk7CiAgICAgYXV0byYgcHJvY2Vzc1Bv
b2wgPSAqY29uZmlndXJhdGlvbi0+cHJvY2Vzc1Bvb2woKTsKIAogICAgIHJldHVybiBbc2VsZiBp
bml0V2l0aEZyYW1lOmZyYW1lIHByb2Nlc3NQb29sOnByb2Nlc3NQb29sIGNvbmZpZ3VyYXRpb246
V1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24pIHdlYlZpZXc6bmlsXTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxM2YxMGM0MjY4ODQ0OWMzMzBiNGQ3
OWYxNWUxYzgyM2UxYmViMzQxLi5kN2JjNGVjZmIzNWI5MjY2OGUyNTExNjhjOGYxZDBmOTUxZWM0
OGQ4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTUtMDgtMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KKworICAgICAgICBVc2UgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBpbiBXZWJLaXRU
ZXN0UnVubmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDc5OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRl
V2ViVmlld1dpdGhPcHRpb25zKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0
Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1ZpZXcgaW5pdFdpdGhG
cmFtZTpjb25maWd1cmF0aW9uUmVmOnVzZVRocmVhZGVkU2Nyb2xsaW5nOl0pOgorICAgICAgICAo
V1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgICgtW1Rlc3RS
dW5uZXJXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0UmVmOnBhZ2VHcm91cFJlZjpyZWxhdGVk
VG9QYWdlOnVzZVRocmVhZGVkU2Nyb2xsaW5nOl0pOiBEZWxldGVkLgorCiAyMDE1LTA4LTEzICBE
ZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1biBiZW5jaG1hcmsg
Y3VzdG9taXplZCBEcm9tYWVvIHNob3VsZCBub3QgYXNzdW1lIHRoZXJlIGlzIGFuIGludGVybmV0
IGNvbm5lY3Rpb24uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3Jt
V2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAppbmRl
eCAxNGI2NjBjZjBhODQ3NDYzNGZkY2RlMTUwYjNjZGJhNjJlY2FhZDRlLi5hMTMwODliYzhlY2Jk
YWY4YWI2NDcwN2I5OGNjNzdiZjE0YzE0OWFkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxh
dGZvcm1XZWJWaWV3LmgKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdUUiB7CiAKIGNsYXNz
IFBsYXRmb3JtV2ViVmlldyB7CiBwdWJsaWM6Ci0gICAgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4
dFJlZiwgV0tQYWdlR3JvdXBSZWYsIFdLUGFnZVJlZiByZWxhdGVkUGFnZSwgY29uc3QgVmlld09w
dGlvbnMmKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29u
c3QgVmlld09wdGlvbnMmKTsKICAgICB+UGxhdGZvcm1XZWJWaWV3KCk7CiAKICAgICBXS1BhZ2VS
ZWYgcGFnZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRl
eCBjNzI5NTg2YmQzMTQwYzQ1MmQ3NGM4OGJiODk1MGM2ZmYwYzFmZDcyLi43NDVjM2M3OGNkZWU2
MTZlMzZjNTA1YmZjZTIwOGI0MmZiNzMwNjkzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtMTk3LDE3ICsxOTcsMTcgQEAgc3RhdGljIHZvaWQgZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVm
LCBXS1MKICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaGFuZGxlVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpOwogfQogCi1XS1BhZ2VSZWYgVGVzdENv
bnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0
UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRv
biwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK1dLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQcGFnZSwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBj
b25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tX
aW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
IHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9y
bVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAKLSAgICBQbGF0Zm9y
bVdlYlZpZXcqIHZpZXcgPSBuZXcgUGxhdGZvcm1XZWJWaWV3KFdLUGFnZUdldENvbnRleHQob2xk
UGFnZSksIFdLUGFnZUdldFBhZ2VHcm91cChvbGRQYWdlKSwgb2xkUGFnZSwgcGFyZW50Vmlldy0+
b3B0aW9ucygpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBuZXcgUGxhdGZvcm1XZWJW
aWV3KGNvbmZpZ3VyYXRpb24sIHBhcmVudFZpZXctPm9wdGlvbnMoKSk7CiAgICAgV0tQYWdlUmVm
IG5ld1BhZ2UgPSB2aWV3LT5wYWdlKCk7CiAKICAgICB2aWV3LT5yZXNpemVUbyg4MDAsIDYwMCk7
CiAKLSAgICBXS1BhZ2VVSUNsaWVudFY1IG90aGVyUGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7
IDUsIHZpZXcgfSwKKyAgICBXS1BhZ2VVSUNsaWVudFY2IG90aGVyUGFnZVVJQ2xpZW50ID0gewor
ICAgICAgICB7IDYsIHZpZXcgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNh
dGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIGNsb3NlT3Ro
ZXJQYWdlLApAQCAtMjQ3LDcgKzI0Nyw3IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAg
ICAgIDAsIC8vIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQogICAgICAgICAwLCAv
LyBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyCiAgICAgICAgIDAsIC8vIHNob3VsZElu
dGVycnVwdEphdmFTY3JpcHQKLSAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAorICAgICAgICAwLCAv
LyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEKICAgICAgICAgMCwgLy8gbW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnQKICAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QKICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEKQEAgLTI2NSw2ICsyNjUsNyBAQCBX
S1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFn
ZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0Q29uZmly
bQogICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0UHJvbXB0CiAgICAgICAgIDAsIC8vIG1lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlCisgICAgICAgIGNyZWF0ZU90aGVyUGFnZSwKICAgICB9
OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGllbnQu
YmFzZSk7CiAgICAgCkBAIC00MzAsNiArNDMxLDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Omlu
aXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICBpZiAobV9mb3JjZUNv
bXBsZXhUZXh0KQogICAgICAgICBXS0NvbnRleHRTZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2Rl
UGF0aChtX2NvbnRleHQuZ2V0KCksIHRydWUpOwogCisgICAgbV9jb25maWd1cmF0aW9uID0gYWRv
cHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOworICAgIFdLUGFnZUNvbmZpZ3VyYXRp
b25TZXRDb250ZXh0KG1fY29uZmlndXJhdGlvbi5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsKKyAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKG1fY29uZmlndXJhdGlvbi5nZXQoKSwg
bV9wYWdlR3JvdXAuZ2V0KCkpOworCiAgICAgLy8gU29tZSBwcmVmZXJlbmNlcyAobm90YWJseSBt
b2NrIHNjcm9sbCBiYXJzIHNldHRpbmcpIGN1cnJlbnRseSBjYW5ub3QgYmUgcmUtYXBwbGllZCB0
byBhbiBleGlzdGluZyB2aWV3LCBzbyB3ZSBuZWVkIHRvIHNldCB0aGVtIG5vdy4KICAgICByZXNl
dFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCk7CiAKQEAgLTQ0Miw5ICs0NDcsOSBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2
W10pCiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25z
dCBWaWV3T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBtX21haW5XZWJWaWV3ID0gc3RkOjptYWtl
X3VuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KG1fY29udGV4dC5nZXQoKSwgbV9wYWdlR3JvdXAuZ2V0
KCksIG51bGxwdHIsIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjUgcGFnZVVJQ2xpZW50
ID0gewotICAgICAgICB7IDUsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBtX21haW5XZWJW
aWV3ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KG1fY29uZmlndXJhdGlvbi5n
ZXQoKSwgb3B0aW9ucyk7CisgICAgV0tQYWdlVUlDbGllbnRWNiBwYWdlVUlDbGllbnQgPSB7Cisg
ICAgICAgIHsgNiwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVO
ZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAg
ICAgICAgMCwgLy8gY2xvc2UKQEAgLTQ4NCw3ICs0ODksNyBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCiAg
ICAgICAgIDAsIC8vIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQogICAgICAgICAw
LCAvLyBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyCiAgICAgICAgIDAsIC8vIHNob3Vs
ZEludGVycnVwdEphdmFTY3JpcHQKLSAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAorICAgICAgICAw
LCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEKICAgICAgICAgMCwgLy8g
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQKICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QsIC8vIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0CiAgICAgICAgIDAsIC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxCkBAIC01MDIsNiArNTA3LDcgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFZpZXdPcHRpb25zJiBvcHRp
b25zKQogICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0Q29uZmlybQogICAgICAgICAwLCAvLyBy
dW5KYXZhU2NyaXB0UHJvbXB0CiAgICAgICAgIDAsIC8vIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlk
Q2hhbmdlCisgICAgICAgIGNyZWF0ZU90aGVyUGFnZSwKICAgICB9OwogICAgIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA5ODY4OWJmMzAwNzVl
ZTgwZDAzMTA2NGVhN2M5YTE0MTljYzZiZTg0Li41MTA1ZmM4MzVkOGJmMzA5YjE0M2VlNzVkNDQ2
ZWJhMTYwZTVmYTc3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBA
IC0yMDgsNyArMjA4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRVcGRhdGVIaXN0
b3J5VGl0bGUoV0tDb250ZXh0UmVmLCBXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS1VS
TFJlZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCopOwogICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9y
eVRpdGxlKFdLU3RyaW5nUmVmIHRpdGxlLCBXS1VSTFJlZiwgV0tGcmFtZVJlZik7CiAKLSAgICBz
dGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxS
ZXF1ZXN0UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3Vz
ZUJ1dHRvbiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQ
YWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9u
UmVmLCBXS1dpbmRvd0ZlYXR1cmVzUmVmLCBjb25zdCB2b2lkKik7CiAKICAgICBzdGF0aWMgdm9p
ZCBydW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRp
YyB2b2lkIHJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopOwpAQCAtMjMzLDYgKzIzMyw3IEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmll
dzsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKICAgICBXS1JldGFp
blB0cjxXS1BhZ2VHcm91cFJlZj4gbV9wYWdlR3JvdXA7CisgICAgV0tSZXRhaW5QdHI8V0tQYWdl
Q29uZmlndXJhdGlvblJlZj4gbV9jb25maWd1cmF0aW9uOwogCiAgICAgZW51bSBTdGF0ZSB7CiAg
ICAgICAgIEluaXRpYWwsCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9Q
bGF0Zm9ybVdlYlZpZXdJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9y
bVdlYlZpZXdJT1MubW0KaW5kZXggZWJiMDYyMjAyOTNlMWEyMzhjNjg2MGZjYmEwMGUwNmJmZGNl
MTM2NS4uNjA4ZjlmNGYxZjViOTEzMWEyOGRjNzJhZTljYmNmMjQ1MmVhYjhkNCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtNDQs
OCArNDQsNiBAQAogICAgIEJPT0wgX3VzZVRpbGVkRHJhd2luZzsKIH0KIAotLSAoaWQpaW5pdFdp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVm
IHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6
KFdLUGFnZVJlZilyZWxhdGVkUGFnZSB1c2VUaWxlZERyYXdpbmc6KEJPT0wpdXNlVGlsZWREcmF3
aW5nOwotCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBCT09MIHVzZVRpbGVkRHJhd2lu
ZzsKIEBlbmQKIApAQCAtNTMsMTAgKzUxLDEzIEBACiAKIEBzeW50aGVzaXplIHVzZVRpbGVkRHJh
d2luZyA9IF91c2VUaWxlZERyYXdpbmc7CiAKLS0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVjdClm
cmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6KFdL
UGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYpcmVsYXRl
ZFBhZ2UgdXNlVGlsZWREcmF3aW5nOihCT09MKXVzZVRpbGVkRHJhd2luZworLSAoaWQpaW5pdFdp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb25SZWY6KFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWYpY29uZmlndXJhdGlvbiB1c2VUaWxlZERyYXdpbmc6KEJPT0wpdXNlVGlsZWREcmF3aW5n
CiB7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3Vy
YXRpb25SZWY6Y29uZmlndXJhdGlvbl0pKQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgX3Vz
ZVRpbGVkRHJhd2luZyA9IHVzZVRpbGVkRHJhd2luZzsKLSAgICByZXR1cm4gW3N1cGVyIGluaXRX
aXRoRnJhbWU6ZnJhbWUgY29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3Jv
dXBSZWZdOworICAgIHJldHVybiBzZWxmOwogfQogCiAtIChCT09MKV9zaG91bGRVc2VUaWxlZERy
YXdpbmdBcmVhCkBAIC0xMjEsMTIgKzEyMiwxNCBAQAogCiBuYW1lc3BhY2UgV1RSIHsKIAotUGxh
dGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
UGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgV0tQYWdlUmVmIHJlbGF0ZWRQYWdlLCBjb25zdCBW
aWV3T3B0aW9ucyYgb3B0aW9ucykKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVmlld09wdGlvbnMmIG9w
dGlvbnMpCiAgICAgOiBtX3dpbmRvd0lzS2V5KHRydWUpCiAgICAgLCBtX29wdGlvbnMob3B0aW9u
cykKIHsKICAgICBDR1JlY3QgcmVjdCA9IENHUmVjdE1ha2UoMCwgMCwgVGVzdENvbnRyb2xsZXI6
OnZpZXdXaWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaHQpOwotICAgIG1fdmlldyA9IFtb
VGVzdFJ1bm5lcldLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbnRleHRSZWY6Y29u
dGV4dFJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6cmVsYXRlZFBh
Z2UgdXNlVGlsZWREcmF3aW5nOm1fb3B0aW9ucy51c2VUaWxlZERyYXdpbmddOworICAgIG1fdmll
dyA9IFtbVGVzdFJ1bm5lcldLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbmZpZ3Vy
YXRpb25SZWY6Y29uZmlndXJhdGlvbiB1c2VUaWxlZERyYXdpbmc6bV9vcHRpb25zLnVzZVRpbGVk
RHJhd2luZ107CisKKyAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYgPSBXS1BhZ2VDb25m
aWd1cmF0aW9uR2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24pOwogCiAgICAgV0tQcmVmZXJlbmNl
c1NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhw
YWdlR3JvdXBSZWYpLCBZRVMpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ1JlcGFp
bnRDb3VudGVyc1Zpc2libGUoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXBSZWYp
LCBZRVMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1X
ZWJWaWV3TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3
TWFjLm1tCmluZGV4IDE2Zjg2N2RhNTI5YmZkOWE5N2I3NTQ4YmY0MmU0NDY1YWZiNzFlNTcuLjhl
Y2IwNDc1NTkwYmU3MDk2YWNhOWRiNTc4YTY1Zjg5ODJjNzZhMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTUwLDggKzUwLDYg
QEAgZW51bSB7CiAgICAgQk9PTCBfdXNlVGhyZWFkZWRTY3JvbGxpbmc7CiB9CiAKLS0gKGlkKWlu
aXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4
dCBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cCByZWxhdGVkVG9QYWdlOihX
S1BhZ2VSZWYpcmVsYXRlZFBhZ2UgdXNlVGhyZWFkZWRTY3JvbGxpbmc6KEJPT0wpdXNlVGhyZWFk
ZWRTY3JvbGxpbmc7Ci0KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgdXNlVGhy
ZWFkZWRTY3JvbGxpbmc7CiBAZW5kCiAKQEAgLTU5LDEwICs1NywxMyBAQCBlbnVtIHsKIAogQHN5
bnRoZXNpemUgdXNlVGhyZWFkZWRTY3JvbGxpbmcgPSBfdXNlVGhyZWFkZWRTY3JvbGxpbmc7CiAK
LS0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRS
ZWYpY29udGV4dCBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cCByZWxhdGVk
VG9QYWdlOihXS1BhZ2VSZWYpcmVsYXRlZFBhZ2UgdXNlVGhyZWFkZWRTY3JvbGxpbmc6KEJPT0wp
dXNlVGhyZWFkZWRTY3JvbGxpbmcKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBj
b25maWd1cmF0aW9uUmVmOihXS1BhZ2VDb25maWd1cmF0aW9uUmVmKWNvbmZpZ3VyYXRpb24gdXNl
VGhyZWFkZWRTY3JvbGxpbmc6KEJPT0wpdXNlVGhyZWFkZWRTY3JvbGxpbmcKIHsKKyAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29uZmlndXJhdGlvblJlZjpjb25m
aWd1cmF0aW9uXSkpCisgICAgICAgIHJldHVybiBuaWw7CisKICAgICBfdXNlVGhyZWFkZWRTY3Jv
bGxpbmcgPSB1c2VUaHJlYWRlZFNjcm9sbGluZzsKLSAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRo
RnJhbWU6ZnJhbWUgY29udGV4dFJlZjpjb250ZXh0IHBhZ2VHcm91cFJlZjpwYWdlR3JvdXAgcmVs
YXRlZFRvUGFnZTpyZWxhdGVkUGFnZV07CisgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQp
ZHJhZ0ltYWdlOihOU0ltYWdlICopYW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRpb24gb2Zm
c2V0OihOU1NpemUpaW5pdGlhbE9mZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBhc3RlYm9h
cmQ6KE5TUGFzdGVib2FyZCAqKXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlkZUJhY2s6
KEJPT0wpc2xpZGVGbGFnCkBAIC0xMTksMTAgKzEyMCwxMiBAQCBlbnVtIHsKIAogbmFtZXNwYWNl
IFdUUiB7CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFdLUGFnZVJlZiByZWxhdGVk
UGFnZSwgY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRm
b3JtV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFZp
ZXdPcHRpb25zJiBvcHRpb25zKQogICAgIDogbV93aW5kb3dJc0tleSh0cnVlKQogICAgICwgbV9v
cHRpb25zKG9wdGlvbnMpCiB7CisgICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gV0tQ
YWdlQ29uZmlndXJhdGlvbkdldFBhZ2VHcm91cChjb25maWd1cmF0aW9uKTsKKwogICAgIC8vIFRo
ZSB0aWxlZCBkcmF3aW5nIHNwZWNpZmljIHRlc3RzIGFsc28gZGVwZW5kIG9uIHRocmVhZGVkIHNj
cm9sbGluZy4KICAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBH
ZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXBSZWYpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRl
ZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIG1fb3B0aW9ucy51c2VUaHJlYWRlZFNjcm9s
bGluZyk7CkBAIC0xMzIsNyArMTM1LDcgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZp
ZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm8KICAgICAg
ICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0VmFsdWU6QFlFUyBm
b3JLZXk6QCJXZWJLaXQyVXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEiXTsKIAogICAgIE5T
UmVjdCByZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBUZXN0Q29udHJvbGxlcjo6dmlld1dpZHRoLCBU
ZXN0Q29udHJvbGxlcjo6dmlld0hlaWdodCk7Ci0gICAgbV92aWV3ID0gW1tUZXN0UnVubmVyV0tW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnJlY3QgY29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VH
cm91cFJlZjpwYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTpyZWxhdGVkUGFnZSB1c2VUaHJlYWRl
ZFNjcm9sbGluZzptX29wdGlvbnMudXNlVGhyZWFkZWRTY3JvbGxpbmddOworICAgIG1fdmlldyA9
IFtbVGVzdFJ1bm5lcldLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbmZpZ3VyYXRp
b25SZWY6Y29uZmlndXJhdGlvbl07CiAgICAgW21fdmlldyBzZXRXaW5kb3dPY2NsdXNpb25EZXRl
Y3Rpb25FbmFibGVkOk5PXTsKIAogICAgIE5TU2NyZWVuICpmaXJzdFNjcmVlbiA9IFtbTlNTY3Jl
ZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259520</attachid>
            <date>2015-08-20 16:37:12 -0700</date>
            <delta_ts>2015-08-20 16:40:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147996-20150820163707.patch</filename>
            <type>text/plain</type>
            <size>17159</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjZkZWZkZDI4ZGU4ZDc1
NGY0NThiMDZkYTk2YTc4ZTJjMmFhZDJkZi4uZTRiNjJhMDdmMDc5MTMyZThkYjhhMzhlM2Q2MGMy
ZDZkYzY0MjA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA4LTIwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1Mu
bW06CisgICAgICAgICgtW1dLVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoQ29uZmlndXJh
dGlvblJlZjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlv
blJlZjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb25SZWY6XSk6CisgICAgICAgIE1h
a2Ugc3VyZSB0byBjb3B5IHRoZSBjb25maWd1cmF0aW9uLCBtYXRjaGluZyB3aGF0IHdlIGRvIGlu
IHRoZSBtb2Rlcm4gQVBJLgorICAgICAgICAKIDIwMTUtMDgtMTkgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9XRUJWVFRfUkVH
SU9OUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3
SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1tCmlu
ZGV4IGZmYTEwYzg3MDkyM2EzZTA2NjU5NjIwMDUzYzQ1M2IxZGU1NDg2NGEuLjgwMGM3OTNhYTNm
ZmI2MWM3NzE0OTk1YWNjZDk2ODFkOWUxOTJlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIldL
QVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRHcm91cFByaXZhdGUuaCIKICNp
bXBvcnQgIldLQ29udGVudFZpZXcuaCIKKyNpbXBvcnQgIldLUGFnZUNvbmZpZ3VyYXRpb25SZWYu
aCIKICNpbXBvcnQgIldLUHJvY2Vzc0dyb3VwUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tTY3JvbGxW
aWV3LmgiCiAjaW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKQEAgLTg2LDcgKzg3LDEyIEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1l
OmZyYW1lXSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBbc2VsZiBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoQ29udGV4dFJlZjpwcm9jZXNzR3JvdXAuX2NvbnRleHRSZWYgcGFnZUdyb3Vw
UmVmOmJyb3dzaW5nQ29udGV4dEdyb3VwLl9wYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTpyZWxh
dGVkVmlldyA/IFtyZWxhdGVkVmlldyBwYWdlUmVmXSA6IG51bGxwdHJdOworICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmNyZWF0ZSgpOworICAgIGNvbmZp
Z3VyYXRpb24tPnNldFByb2Nlc3NQb29sKHRvSW1wbChwcm9jZXNzR3JvdXAuX2NvbnRleHRSZWYp
KTsKKyAgICBjb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAodG9JbXBsKGJyb3dzaW5nQ29udGV4
dEdyb3VwLl9wYWdlR3JvdXBSZWYpKTsKKyAgICBjb25maWd1cmF0aW9uLT5zZXRSZWxhdGVkUGFn
ZShyZWxhdGVkVmlldyA/IHRvSW1wbChbcmVsYXRlZFZpZXcgcGFnZVJlZl0pIDogbnVsbHB0cik7
CisKKyAgICBbc2VsZiBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoQ29uZmlndXJhdGlvblJlZjp0
b0FQSShjb25maWd1cmF0aW9uLmdldCgpKV07CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTIx
NCw3ICsyMjAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAjcHJhZ21hIG1hcmsgSW50
ZXJuYWwKIAotLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoQ29udGV4dFJlZjooV0tD
b250ZXh0UmVmKWNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3Jv
dXBSZWYgcmVsYXRlZFRvUGFnZTooV0tQYWdlUmVmKXJlbGF0ZWRQYWdlCistICh2b2lkKV9jb21t
b25Jbml0aWFsaXphdGlvbldpdGhDb25maWd1cmF0aW9uUmVmOihXS1BhZ2VDb25maWd1cmF0aW9u
UmVmKWNvbmZpZ3VyYXRpb25SZWYKIHsKICAgICBBU1NFUlQoIV9zY3JvbGxWaWV3KTsKICAgICBB
U1NFUlQoIV9jb250ZW50Vmlldyk7CkBAIC0yMjYsMTIgKzIzMiw5IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKICAgICBbc2VsZiBhZGRTdWJ2aWV3Ol9zY3JvbGxWaWV3LmdldCgpXTsKIAot
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmNyZWF0ZSgp
OwotICAgIGNvbmZpZ3VyYXRpb24tPnNldFByb2Nlc3NQb29sKHRvSW1wbChjb250ZXh0UmVmKSk7
Ci0gICAgY29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKHRvSW1wbChwYWdlR3JvdXBSZWYpKTsK
LSAgICBjb25maWd1cmF0aW9uLT5zZXRSZWxhdGVkUGFnZSh0b0ltcGwocmVsYXRlZFBhZ2UpKTsK
KyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSB0b0ltcGwoY29uZmlndXJhdGlvblJlZiktPmNvcHko
KTsKIAotICAgIF9jb250ZW50VmlldyA9IGFkb3B0TlMoW1tXS0NvbnRlbnRWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOmJvdW5kcyBwcm9jZXNzUG9vbDoqdG9JbXBsKGNvbnRleHRSZWYpIGNvbmZp
Z3VyYXRpb246V1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24pIHdrVmlldzpzZWxmXSk7CisgICAgX2Nv
bnRlbnRWaWV3ID0gYWRvcHROUyhbW1dLQ29udGVudFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Ym91bmRzIHByb2Nlc3NQb29sOipjb25maWd1cmF0aW9uLT5wcm9jZXNzUG9vbCgpIGNvbmZpZ3Vy
YXRpb246V1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24pIHdrVmlldzpzZWxmXSk7CiAKICAgICBbW19j
b250ZW50VmlldyBsYXllcl0gc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludFplcm9dOwogICAgIFtfY29u
dGVudFZpZXcgc2V0RnJhbWU6Ym91bmRzXTsKQEAgLTMyNCwxMiArMzI3LDEyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAgICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29u
dGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFn
ZTpuaWxdOwogfQogCi0tIChpZClpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4dFJl
ZjooV0tDb250ZXh0UmVmKWNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilw
YWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTooV0tQYWdlUmVmKXJlbGF0ZWRQYWdlCistIChpZClp
bml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlvblJlZjooV0tQYWdlQ29uZmln
dXJhdGlvblJlZiljb25maWd1cmF0aW9uCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
V2l0aEZyYW1lOmZyYW1lXSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBbc2VsZiBfY29t
bW9uSW5pdGlhbGl6YXRpb25XaXRoQ29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpw
YWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTpyZWxhdGVkUGFnZV07CisgICAgW3NlbGYgX2NvbW1v
bkluaXRpYWxpemF0aW9uV2l0aENvbmZpZ3VyYXRpb25SZWY6Y29uZmlndXJhdGlvbl07CiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQppbmRleCAxY2ViNDFhNWVhZTVkNjFjZWEyYWNmM2VkNmQ5MWQ4MzBkOWEwNWUyLi5mZjI4
MzNiM2IyOTdlOTNkODA0ZGZiZDEyYjNiMmI2MzliNjA4ZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00MDA0LDcgKzQwMDQsNyBAQCBzdGF0aWMg
TlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQog
CiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29uZmlndXJhdGlvblJlZjooV0tQ
YWdlQ29uZmlndXJhdGlvblJlZiljb25maWd1cmF0aW9uUmVmCiB7Ci0gICAgUmVmPEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSAqdG9JbXBsKGNvbmZpZ3VyYXRpb25SZWYp
OworICAgIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gdG9JbXBs
KGNvbmZpZ3VyYXRpb25SZWYpLT5jb3B5KCk7CiAgICAgYXV0byYgcHJvY2Vzc1Bvb2wgPSAqY29u
ZmlndXJhdGlvbi0+cHJvY2Vzc1Bvb2woKTsKIAogICAgIHJldHVybiBbc2VsZiBpbml0V2l0aEZy
YW1lOmZyYW1lIHByb2Nlc3NQb29sOnByb2Nlc3NQb29sIGNvbmZpZ3VyYXRpb246V1RGOjptb3Zl
KGNvbmZpZ3VyYXRpb24pIHdlYlZpZXc6bmlsXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxYzk3MjBiNzc5ZTgyNzFiOWNmZWFkYTk5ZjNmMGVi
YzkyOTYwNDVlLi41MDM4Nzk3MWI3MDRhMDg1ODAwMTQyNWQ4MzQzNmNhNWU1NzU0NmM5IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTUtMDgtMjAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
KworICAgICAgICBVc2UgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBpbiBXZWJLaXRUZXN0UnVubmVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5OTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6Omlu
aXRpYWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dp
dGhPcHRpb25zKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZp
ZXdNYWMubW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb25m
aWd1cmF0aW9uUmVmOnVzZVRocmVhZGVkU2Nyb2xsaW5nOl0pOgorICAgICAgICAoV1RSOjpQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1Zp
ZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0UmVmOnBhZ2VHcm91cFJlZjpyZWxhdGVkVG9QYWdlOnVz
ZVRocmVhZGVkU2Nyb2xsaW5nOl0pOiBEZWxldGVkLgorCiAyMDE1LTA4LTE5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ01ha2UgV2luZG93
cyBidWlsZCBzaG91bGQgbm90IGluY2x1ZGUgZmlsZXMgZGlyZWN0bHkgZnJvbSBvdGhlciBTb3Vy
Y2UgZGlyZWN0b3JpZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmlu
ZGV4IDE0YjY2MGNmMGE4NDc0NjM0ZmRjZGUxNTBiM2NkYmE2MmVjYWFkNGUuLmExMzA4OWJjOGVj
YmRhZjhhYjY0NzA3Yjk4Y2M3N2JmMTRjMTQ5YWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdlYlZpZXcuaApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgV1RSIHsKIAogY2xh
c3MgUGxhdGZvcm1XZWJWaWV3IHsKIHB1YmxpYzoKLSAgICBQbGF0Zm9ybVdlYlZpZXcoV0tDb250
ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiwgV0tQYWdlUmVmIHJlbGF0ZWRQYWdlLCBjb25zdCBWaWV3
T3B0aW9ucyYpOworICAgIFBsYXRmb3JtV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBj
b25zdCBWaWV3T3B0aW9ucyYpOwogICAgIH5QbGF0Zm9ybVdlYlZpZXcoKTsKIAogICAgIFdLUGFn
ZVJlZiBwYWdlKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDJmNmU4NWI5MDJkMTZmZjA2OTkzNzk5N2JkOTFiZDFiOTIxYWM5MmEuLjAzODNjMWY2NDZh
N2NjMWY5M2ViN2QxYThkZGNiYTA5N2MyY2IyNTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xOTcsMTcgKzE5NywxNyBAQCBzdGF0aWMgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLUwogICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5oYW5kbGVVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCk7CiB9CiAKLVdLUGFnZVJlZiBUZXN0
Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVl
c3RSZWYsIFdLRGljdGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0
dG9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpj
cmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBwYWdlLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24sIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBX
S1dpbmRvd0ZlYXR1cmVzUmVmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KQogewogICAgIFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldyA9IHN0YXRpY19jYXN0PFBsYXRm
b3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIAotICAgIFBsYXRm
b3JtV2ViVmlldyogdmlldyA9IG5ldyBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlR2V0Q29udGV4dChv
bGRQYWdlKSwgV0tQYWdlR2V0UGFnZUdyb3VwKG9sZFBhZ2UpLCBvbGRQYWdlLCBwYXJlbnRWaWV3
LT5vcHRpb25zKCkpOworICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IG5ldyBQbGF0Zm9ybVdl
YlZpZXcoY29uZmlndXJhdGlvbiwgcGFyZW50Vmlldy0+b3B0aW9ucygpKTsKICAgICBXS1BhZ2VS
ZWYgbmV3UGFnZSA9IHZpZXctPnBhZ2UoKTsKIAogICAgIHZpZXctPnJlc2l6ZVRvKDgwMCwgNjAw
KTsKIAotICAgIFdLUGFnZVVJQ2xpZW50VjUgb3RoZXJQYWdlVUlDbGllbnQgPSB7Ci0gICAgICAg
IHsgNSwgdmlldyB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjYgb3RoZXJQYWdlVUlDbGllbnQgPSB7
CisgICAgICAgIHsgNiwgdmlldyB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgY2xvc2VP
dGhlclBhZ2UsCkBAIC0yNDcsNyArMjQ3LDcgQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpj
cmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0sKICAg
ICAgICAgMCwgLy8gZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCiAgICAgICAgIDAs
IC8vIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIKICAgICAgICAgMCwgLy8gc2hvdWxk
SW50ZXJydXB0SmF2YVNjcmlwdAotICAgICAgICBjcmVhdGVPdGhlclBhZ2UsCisgICAgICAgIDAs
IC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMQogICAgICAgICAwLCAvLyBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudAogICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAogICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMQpAQCAtMjY1LDYgKzI2NSw3IEBA
IFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQ
YWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRDb25m
aXJtCiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRQcm9tcHQKICAgICAgICAgMCwgLy8gbWVk
aWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UKKyAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAogICAg
IH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBhZ2VVSUNsaWVu
dC5iYXNlKTsKICAgICAKQEAgLTQzMCwxNSArNDMxLDE5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICBpZiAobV9mb3Jj
ZUNvbXBsZXhUZXh0KQogICAgICAgICBXS0NvbnRleHRTZXRBbHdheXNVc2VzQ29tcGxleFRleHRD
b2RlUGF0aChtX2NvbnRleHQuZ2V0KCksIHRydWUpOwogCisgICAgbV9jb25maWd1cmF0aW9uID0g
YWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOworICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRDb250ZXh0KG1fY29uZmlndXJhdGlvbi5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsK
KyAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKG1fY29uZmlndXJhdGlvbi5nZXQo
KSwgbV9wYWdlR3JvdXAuZ2V0KCkpOworCiAgICAgLy8gU29tZSBwcmVmZXJlbmNlcyAobm90YWJs
eSBtb2NrIHNjcm9sbCBiYXJzIHNldHRpbmcpIGN1cnJlbnRseSBjYW5ub3QgYmUgcmUtYXBwbGll
ZCB0byBhbiBleGlzdGluZyB2aWV3LCBzbyB3ZSBuZWVkIHRvIHNldCB0aGVtIG5vdy4KICAgICBy
ZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCk7CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBWaWV3T3B0aW9ucyYgb3B0aW9u
cykKIHsKLSAgICBtX21haW5XZWJWaWV3ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVdlYlZp
ZXc+KG1fY29udGV4dC5nZXQoKSwgbV9wYWdlR3JvdXAuZ2V0KCksIG51bGxwdHIsIG9wdGlvbnMp
OwotICAgIFdLUGFnZVVJQ2xpZW50VjUgcGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDUsIG1f
bWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBtX21haW5XZWJWaWV3ID0gc3RkOjptYWtlX3VuaXF1
ZTxQbGF0Zm9ybVdlYlZpZXc+KG1fY29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7CisgICAg
V0tQYWdlVUlDbGllbnRWNiBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgNiwgbV9tYWluV2Vi
Vmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAg
LTQ3OCw3ICs0ODMsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9w
dGlvbnMoY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIGRpZENvbXBs
ZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQogICAgICAgICAwLCAvLyBzYXZlRGF0YVRvRmlsZUlu
RG93bmxvYWRzRm9sZGVyCiAgICAgICAgIDAsIC8vIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQK
LSAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAorICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjEKICAgICAgICAgMCwgLy8gbW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQKICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qs
IC8vIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0CiAgICAgICAg
IDAsIC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0
aFYxCkBAIC00OTYsNiArNTAxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmll
d1dpdGhPcHRpb25zKGNvbnN0IFZpZXdPcHRpb25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyBy
dW5KYXZhU2NyaXB0Q29uZmlybQogICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0UHJvbXB0CiAg
ICAgICAgIDAsIC8vIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlCisgICAgICAgIGNyZWF0
ZU90aGVyUGFnZSwKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJW
aWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaAppbmRleCA1NGUzMWU0YTg4MDA3NjgyYThiZTg3ZWJmYWQ4OTYwNzZj
ZGJhNzU4Li4xNTJiNzhjM2I1ZDRkZTE4OTRmZTFjY2JjOWE3ZGFjYTlkMWRlODQzIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0yMTAsNyArMjEwLDcgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoV0tDb250ZXh0UmVm
LCBXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS1VSTFJlZiwgV0tGcmFtZVJlZiwgY29u
c3Qgdm9pZCopOwogICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRpdGxlKFdLU3RyaW5nUmVmIHRp
dGxlLCBXS1VSTFJlZiwgV0tGcmFtZVJlZik7CiAKLSAgICBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0
ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rpb25h
cnlSZWYsIFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCop
OworICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdl
Q29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBXS1dpbmRvd0ZlYXR1cmVz
UmVmLCBjb25zdCB2b2lkKik7CiAKICAgICBzdGF0aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFBsYXRm
b3JtV2ViVmlldyopOwpAQCAtMjM1LDYgKzIzNSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmlldzsKICAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IG1fY29udGV4dDsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4g
bV9wYWdlR3JvdXA7CisgICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gbV9j
b25maWd1cmF0aW9uOwogCiAgICAgZW51bSBTdGF0ZSB7CiAgICAgICAgIEluaXRpYWwsCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0g
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KaW5kZXgg
ZWJiMDYyMjAyOTNlMWEyMzhjNjg2MGZjYmEwMGUwNmJmZGNlMTM2NS4uNjA4ZjlmNGYxZjViOTEz
MWEyOGRjNzJhZTljYmNmMjQ1MmVhYjhkNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtNDQsOCArNDQsNiBAQAogICAgIEJPT0wg
X3VzZVRpbGVkRHJhd2luZzsKIH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1l
IGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjooV0tQYWdl
R3JvdXBSZWYpcGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6KFdLUGFnZVJlZilyZWxhdGVkUGFn
ZSB1c2VUaWxlZERyYXdpbmc6KEJPT0wpdXNlVGlsZWREcmF3aW5nOwotCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgYXNzaWduKSBCT09MIHVzZVRpbGVkRHJhd2luZzsKIEBlbmQKIApAQCAtNTMsMTAg
KzUxLDEzIEBACiAKIEBzeW50aGVzaXplIHVzZVRpbGVkRHJhd2luZyA9IF91c2VUaWxlZERyYXdp
bmc7CiAKLS0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0Nv
bnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91
cFJlZiByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYpcmVsYXRlZFBhZ2UgdXNlVGlsZWREcmF3aW5n
OihCT09MKXVzZVRpbGVkRHJhd2luZworLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1l
IGNvbmZpZ3VyYXRpb25SZWY6KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpY29uZmlndXJhdGlvbiB1
c2VUaWxlZERyYXdpbmc6KEJPT0wpdXNlVGlsZWREcmF3aW5nCiB7CisgICAgaWYgKCEoc2VsZiA9
IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb25SZWY6Y29uZmlndXJhdGlv
bl0pKQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgX3VzZVRpbGVkRHJhd2luZyA9IHVzZVRp
bGVkRHJhd2luZzsKLSAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29udGV4
dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBSZWZdOworICAgIHJldHVybiBz
ZWxmOwogfQogCiAtIChCT09MKV9zaG91bGRVc2VUaWxlZERyYXdpbmdBcmVhCkBAIC0xMjEsMTIg
KzEyMiwxNCBAQAogCiBuYW1lc3BhY2UgV1RSIHsKIAotUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9y
bVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91
cFJlZiwgV0tQYWdlUmVmIHJlbGF0ZWRQYWdlLCBjb25zdCBWaWV3T3B0aW9ucyYgb3B0aW9ucykK
K1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYg
Y29uZmlndXJhdGlvbiwgY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBtX3dpbmRv
d0lzS2V5KHRydWUpCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykKIHsKICAgICBDR1JlY3QgcmVj
dCA9IENHUmVjdE1ha2UoMCwgMCwgVGVzdENvbnRyb2xsZXI6OnZpZXdXaWR0aCwgVGVzdENvbnRy
b2xsZXI6OnZpZXdIZWlnaHQpOwotICAgIG1fdmlldyA9IFtbVGVzdFJ1bm5lcldLVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbnRleHRSZWY6Y29udGV4dFJlZiBwYWdlR3JvdXBSZWY6
cGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6cmVsYXRlZFBhZ2UgdXNlVGlsZWREcmF3aW5nOm1f
b3B0aW9ucy51c2VUaWxlZERyYXdpbmddOworICAgIG1fdmlldyA9IFtbVGVzdFJ1bm5lcldLVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbmZpZ3VyYXRpb25SZWY6Y29uZmlndXJhdGlv
biB1c2VUaWxlZERyYXdpbmc6bV9vcHRpb25zLnVzZVRpbGVkRHJhd2luZ107CisKKyAgICBXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXBSZWYgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3Vw
KGNvbmZpZ3VyYXRpb24pOwogCiAgICAgV0tQcmVmZXJlbmNlc1NldENvbXBvc2l0aW5nQm9yZGVy
c1Zpc2libGUoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXBSZWYpLCBZRVMpOwog
ICAgIFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUoV0tQ
YWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXBSZWYpLCBZRVMpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IDE2Zjg2N2Rh
NTI5YmZkOWE5N2I3NTQ4YmY0MmU0NDY1YWZiNzFlNTcuLjU4MTViZTljYjI1MTVmZGIxZDU5ZTRj
NTc3Y2I4NDQyNjg4MGE4NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFj
L1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9Q
bGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTUwLDggKzUwLDYgQEAgZW51bSB7CiAgICAgQk9PTCBf
dXNlVGhyZWFkZWRTY3JvbGxpbmc7CiB9CiAKLS0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClm
cmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dCBwYWdlR3JvdXBSZWY6KFdLUGFn
ZUdyb3VwUmVmKXBhZ2VHcm91cCByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYpcmVsYXRlZFBhZ2Ug
dXNlVGhyZWFkZWRTY3JvbGxpbmc6KEJPT0wpdXNlVGhyZWFkZWRTY3JvbGxpbmc7Ci0KIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgdXNlVGhyZWFkZWRTY3JvbGxpbmc7CiBAZW5k
CiAKQEAgLTU5LDEwICs1NywxMyBAQCBlbnVtIHsKIAogQHN5bnRoZXNpemUgdXNlVGhyZWFkZWRT
Y3JvbGxpbmcgPSBfdXNlVGhyZWFkZWRTY3JvbGxpbmc7CiAKLS0gKGlkKWluaXRXaXRoRnJhbWU6
KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dCBwYWdlR3JvdXBS
ZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cCByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYpcmVs
YXRlZFBhZ2UgdXNlVGhyZWFkZWRTY3JvbGxpbmc6KEJPT0wpdXNlVGhyZWFkZWRTY3JvbGxpbmcK
Ky0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb25maWd1cmF0aW9uUmVmOihXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmKWNvbmZpZ3VyYXRpb24gdXNlVGhyZWFkZWRTY3JvbGxpbmc6KEJP
T0wpdXNlVGhyZWFkZWRTY3JvbGxpbmcKIHsKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRX
aXRoRnJhbWU6ZnJhbWUgY29uZmlndXJhdGlvblJlZjpjb25maWd1cmF0aW9uXSkpCisgICAgICAg
IHJldHVybiBuaWw7CisKICAgICBfdXNlVGhyZWFkZWRTY3JvbGxpbmcgPSB1c2VUaHJlYWRlZFNj
cm9sbGluZzsKLSAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29udGV4dFJl
Zjpjb250ZXh0IHBhZ2VHcm91cFJlZjpwYWdlR3JvdXAgcmVsYXRlZFRvUGFnZTpyZWxhdGVkUGFn
ZV07CisgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQpZHJhZ0ltYWdlOihOU0ltYWdlICop
YW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRpb24gb2Zmc2V0OihOU1NpemUpaW5pdGlhbE9m
ZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBi
b2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlkZUJhY2s6KEJPT0wpc2xpZGVGbGFnCkBAIC0x
MTksMTAgKzEyMCwxMiBAQCBlbnVtIHsKIAogbmFtZXNwYWNlIFdUUiB7CiAKLVBsYXRmb3JtV2Vi
Vmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91
cFJlZiBwYWdlR3JvdXBSZWYsIFdLUGFnZVJlZiByZWxhdGVkUGFnZSwgY29uc3QgVmlld09wdGlv
bnMmIG9wdGlvbnMpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VDb25m
aWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFZpZXdPcHRpb25zJiBvcHRpb25zKQog
ICAgIDogbV93aW5kb3dJc0tleSh0cnVlKQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiB7Cisg
ICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFBh
Z2VHcm91cChjb25maWd1cmF0aW9uKTsKKwogICAgIC8vIFRoZSB0aWxlZCBkcmF3aW5nIHNwZWNp
ZmljIHRlc3RzIGFsc28gZGVwZW5kIG9uIHRocmVhZGVkIHNjcm9sbGluZy4KICAgICBXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3Jv
dXBSZWYpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJl
ZmVyZW5jZXMsIG1fb3B0aW9ucy51c2VUaHJlYWRlZFNjcm9sbGluZyk7CkBAIC0xMzIsNyArMTM1
LDcgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm8KICAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0VmFsdWU6QFlFUyBmb3JLZXk6QCJXZWJLaXQyVXNlUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEiXTsKIAogICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVj
dCgwLCAwLCBUZXN0Q29udHJvbGxlcjo6dmlld1dpZHRoLCBUZXN0Q29udHJvbGxlcjo6dmlld0hl
aWdodCk7Ci0gICAgbV92aWV3ID0gW1tUZXN0UnVubmVyV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOnJlY3QgY29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBSZWYg
cmVsYXRlZFRvUGFnZTpyZWxhdGVkUGFnZSB1c2VUaHJlYWRlZFNjcm9sbGluZzptX29wdGlvbnMu
dXNlVGhyZWFkZWRTY3JvbGxpbmddOworICAgIG1fdmlldyA9IFtbVGVzdFJ1bm5lcldLVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbmZpZ3VyYXRpb25SZWY6Y29uZmlndXJhdGlvbiB1
c2VUaHJlYWRlZFNjcm9sbGluZzpvcHRpb25zLnVzZVRocmVhZGVkU2Nyb2xsaW5nXTsKICAgICBb
bV92aWV3IHNldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6Tk9dOwogCiAgICAgTlNT
Y3JlZW4gKmZpcnN0U2NyZWVuID0gW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBd
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259522</attachid>
            <date>2015-08-20 16:40:11 -0700</date>
            <delta_ts>2015-08-20 16:56:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147996-20150820164006.patch</filename>
            <type>text/plain</type>
            <size>18154</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjZkZWZkZDI4ZGU4ZDc1
NGY0NThiMDZkYTk2YTc4ZTJjMmFhZDJkZi4uZTRiNjJhMDdmMDc5MTMyZThkYjhhMzhlM2Q2MGMy
ZDZkYzY0MjA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA4LTIwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1Mu
bW06CisgICAgICAgICgtW1dLVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoQ29uZmlndXJh
dGlvblJlZjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlv
blJlZjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb25SZWY6XSk6CisgICAgICAgIE1h
a2Ugc3VyZSB0byBjb3B5IHRoZSBjb25maWd1cmF0aW9uLCBtYXRjaGluZyB3aGF0IHdlIGRvIGlu
IHRoZSBtb2Rlcm4gQVBJLgorICAgICAgICAKIDIwMTUtMDgtMTkgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9XRUJWVFRfUkVH
SU9OUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Zp
ZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1By
aXZhdGUuaAppbmRleCA0NTRmNTA0ZmY2YzA2ZWVjMzRjOWViYzdjYjk5YzAxM2ExYTMwZDIwLi45
ODRlYTc2ODUwOGJlOTQ0MDk2MzhhN2RlNWYxYjk1Y2NhNDhjN2ExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApAQCAtMzgsNiAr
MzgsNyBAQAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVj
dClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6
KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZjsKIC0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVj
dClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6
KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYpcmVs
YXRlZFBhZ2U7CistIChpZClpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlv
blJlZjooV0tQYWdlQ29uZmlndXJhdGlvblJlZiljb25maWd1cmF0aW9uOwogI2Vsc2UKIC0gKGlk
KWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29u
dGV4dFJlZiBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZjsKIC0gKGlk
KWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29u
dGV4dFJlZiBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVk
VG9QYWdlOihXS1BhZ2VSZWYpcmVsYXRlZFBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0KaW5kZXggZmZhMTBjODcwOTIzYTNlMDY2NTk2MjAwNTNj
NDUzYjFkZTU0ODY0YS4uODAwYzc5M2FhM2ZmYjYxYzc3MTQ5OTVhY2NkOTY4MWQ5ZTE5MmVkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5tbQpAQCAt
MzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV0tBUElDYXN0LmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5n
Q29udGV4dEdyb3VwUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tDb250ZW50Vmlldy5oIgorI2ltcG9y
dCAiV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oIgogI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBQcml2
YXRlLmgiCiAjaW1wb3J0ICJXS1Njcm9sbFZpZXcuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5o
IgpAQCAtODYsNyArODcsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBpZiAoIShz
ZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkKICAgICAgICAgcmV0dXJuIG5pbDsK
IAotICAgIFtzZWxmIF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhDb250ZXh0UmVmOnByb2Nlc3NH
cm91cC5fY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6YnJvd3NpbmdDb250ZXh0R3JvdXAuX3BhZ2VH
cm91cFJlZiByZWxhdGVkVG9QYWdlOnJlbGF0ZWRWaWV3ID8gW3JlbGF0ZWRWaWV3IHBhZ2VSZWZd
IDogbnVsbHB0cl07CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gQVBJOjpQYWdlQ29uZmlndXJh
dGlvbjo6Y3JlYXRlKCk7CisgICAgY29uZmlndXJhdGlvbi0+c2V0UHJvY2Vzc1Bvb2wodG9JbXBs
KHByb2Nlc3NHcm91cC5fY29udGV4dFJlZikpOworICAgIGNvbmZpZ3VyYXRpb24tPnNldFBhZ2VH
cm91cCh0b0ltcGwoYnJvd3NpbmdDb250ZXh0R3JvdXAuX3BhZ2VHcm91cFJlZikpOworICAgIGNv
bmZpZ3VyYXRpb24tPnNldFJlbGF0ZWRQYWdlKHJlbGF0ZWRWaWV3ID8gdG9JbXBsKFtyZWxhdGVk
VmlldyBwYWdlUmVmXSkgOiBudWxscHRyKTsKKworICAgIFtzZWxmIF9jb21tb25Jbml0aWFsaXph
dGlvbldpdGhDb25maWd1cmF0aW9uUmVmOnRvQVBJKGNvbmZpZ3VyYXRpb24uZ2V0KCkpXTsKICAg
ICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMjE0LDcgKzIyMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKICNwcmFnbWEgbWFyayBJbnRlcm5hbAogCi0tICh2b2lkKV9jb21tb25Jbml0aWFs
aXphdGlvbldpdGhDb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBS
ZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYp
cmVsYXRlZFBhZ2UKKy0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aENvbmZpZ3VyYXRp
b25SZWY6KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpY29uZmlndXJhdGlvblJlZgogewogICAgIEFT
U0VSVCghX3Njcm9sbFZpZXcpOwogICAgIEFTU0VSVCghX2NvbnRlbnRWaWV3KTsKQEAgLTIyNiwx
MiArMjMyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIFtzZWxmIGFkZFN1YnZp
ZXc6X3Njcm9sbFZpZXcuZ2V0KCldOwogCi0gICAgYXV0byBjb25maWd1cmF0aW9uID0gQVBJOjpQ
YWdlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7Ci0gICAgY29uZmlndXJhdGlvbi0+c2V0UHJvY2Vz
c1Bvb2wodG9JbXBsKGNvbnRleHRSZWYpKTsKLSAgICBjb25maWd1cmF0aW9uLT5zZXRQYWdlR3Jv
dXAodG9JbXBsKHBhZ2VHcm91cFJlZikpOwotICAgIGNvbmZpZ3VyYXRpb24tPnNldFJlbGF0ZWRQ
YWdlKHRvSW1wbChyZWxhdGVkUGFnZSkpOworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IHRvSW1w
bChjb25maWd1cmF0aW9uUmVmKS0+Y29weSgpOwogCi0gICAgX2NvbnRlbnRWaWV3ID0gYWRvcHRO
UyhbW1dLQ29udGVudFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Ym91bmRzIHByb2Nlc3NQb29s
Oip0b0ltcGwoY29udGV4dFJlZikgY29uZmlndXJhdGlvbjpXVEY6Om1vdmUoY29uZmlndXJhdGlv
bikgd2tWaWV3OnNlbGZdKTsKKyAgICBfY29udGVudFZpZXcgPSBhZG9wdE5TKFtbV0tDb250ZW50
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpib3VuZHMgcHJvY2Vzc1Bvb2w6KmNvbmZpZ3VyYXRp
b24tPnByb2Nlc3NQb29sKCkgY29uZmlndXJhdGlvbjpXVEY6Om1vdmUoY29uZmlndXJhdGlvbikg
d2tWaWV3OnNlbGZdKTsKIAogICAgIFtbX2NvbnRlbnRWaWV3IGxheWVyXSBzZXRBbmNob3JQb2lu
dDpDR1BvaW50WmVyb107CiAgICAgW19jb250ZW50VmlldyBzZXRGcmFtZTpib3VuZHNdOwpAQCAt
MzI0LDEyICszMjcsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICByZXR1cm4gW3Nl
bGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVm
OnBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOm5pbF07CiB9CiAKLS0gKGlkKWluaXRXaXRoRnJh
bWU6KENHUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdl
R3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOihXS1Bh
Z2VSZWYpcmVsYXRlZFBhZ2UKKy0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb25m
aWd1cmF0aW9uUmVmOihXS1BhZ2VDb25maWd1cmF0aW9uUmVmKWNvbmZpZ3VyYXRpb24KIHsKICAg
ICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkKICAgICAgICAgcmV0
dXJuIG5pbDsKIAotICAgIFtzZWxmIF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhDb250ZXh0UmVm
OmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOnJlbGF0
ZWRQYWdlXTsKKyAgICBbc2VsZiBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoQ29uZmlndXJhdGlv
blJlZjpjb25maWd1cmF0aW9uXTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDFjZWI0MWE1ZWFlNWQ2MWNlYTJh
Y2YzZWQ2ZDkxZDgzMGQ5YTA1ZTIuLmZmMjgzM2IzYjI5N2U5M2Q4MDRkZmJkMTJiM2IyYjYzOWI2
MDhkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAg
LTQwMDQsNyArNDAwNCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClm
cmFtZSBjb25maWd1cmF0aW9uUmVmOihXS1BhZ2VDb25maWd1cmF0aW9uUmVmKWNvbmZpZ3VyYXRp
b25SZWYKIHsKLSAgICBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9
ICp0b0ltcGwoY29uZmlndXJhdGlvblJlZik7CisgICAgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRp
b24+IGNvbmZpZ3VyYXRpb24gPSB0b0ltcGwoY29uZmlndXJhdGlvblJlZiktPmNvcHkoKTsKICAg
ICBhdXRvJiBwcm9jZXNzUG9vbCA9ICpjb25maWd1cmF0aW9uLT5wcm9jZXNzUG9vbCgpOwogCiAg
ICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgcHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bv
b2wgY29uZmlndXJhdGlvbjpXVEY6Om1vdmUoY29uZmlndXJhdGlvbikgd2ViVmlldzpuaWxdOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFjOTcy
MGI3NzllODI3MWI5Y2ZlYWRhOTlmM2YwZWJjOTI5NjA0NWUuLjUwMzg3OTcxYjcwNGEwODU4MDAx
NDI1ZDgzNDM2Y2E1ZTU3NTQ2YzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wOC0yMCAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBXS1BhZ2VDb25maWd1cmF0
aW9uUmVmIGluIFdlYktpdFRlc3RSdW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0Nzk5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bVGVzdFJ1bm5l
cldLVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb25SZWY6dXNlVGhyZWFkZWRTY3JvbGxp
bmc6XSk6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToK
KyAgICAgICAgKC1bVGVzdFJ1bm5lcldLVmlldyBpbml0V2l0aEZyYW1lOmNvbnRleHRSZWY6cGFn
ZUdyb3VwUmVmOnJlbGF0ZWRUb1BhZ2U6dXNlVGhyZWFkZWRTY3JvbGxpbmc6XSk6IERlbGV0ZWQu
CisKIDIwMTUtMDgtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBDTWFrZSBXaW5kb3dzIGJ1aWxkIHNob3VsZCBub3QgaW5jbHVkZSBmaWxl
cyBkaXJlY3RseSBmcm9tIG90aGVyIFNvdXJjZSBkaXJlY3RvcmllcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggMTRiNjYwY2YwYTg0NzQ2MzRmZGNkZTE1MGIz
Y2RiYTYyZWNhYWQ0ZS4uYTEzMDg5YmM4ZWNiZGFmOGFiNjQ3MDdiOThjYzc3YmYxNGMxNDlhZCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC01Miw3ICs1Miw3
IEBAIG5hbWVzcGFjZSBXVFIgewogCiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXcgewogcHVibGljOgot
ICAgIFBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmLCBXS1BhZ2VS
ZWYgcmVsYXRlZFBhZ2UsIGNvbnN0IFZpZXdPcHRpb25zJik7CisgICAgUGxhdGZvcm1XZWJWaWV3
KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFZpZXdPcHRpb25zJik7CiAgICAgflBsYXRm
b3JtV2ViVmlldygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMmY2ZTg1YjkwMmQxNmZmMDY5OTM3OTk3YmQ5
MWJkMWI5MjFhYzkyYS4uMDM4M2MxZjY0NmE3Y2MxZjkzZWI3ZDFhOGRkY2JhMDk3YzJjYjI1MSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE5NywxNyAr
MTk3LDE3IEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTCiAgICAgVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLmhhbmRsZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KHBlcm1pc3Npb25SZXF1
ZXN0KTsKIH0KIAotV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQ
YWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2ZW50
TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitX
S1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUHBh
Z2UsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0
aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVy
ZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJl
bnRWaWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3Jt
V2ViVmlldyhXS1BhZ2VHZXRDb250ZXh0KG9sZFBhZ2UpLCBXS1BhZ2VHZXRQYWdlR3JvdXAob2xk
UGFnZSksIG9sZFBhZ2UsIHBhcmVudFZpZXctPm9wdGlvbnMoKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhjb25maWd1cmF0aW9uLCBwYXJlbnRWaWV3
LT5vcHRpb25zKCkpOwogICAgIFdLUGFnZVJlZiBuZXdQYWdlID0gdmlldy0+cGFnZSgpOwogCiAg
ICAgdmlldy0+cmVzaXplVG8oODAwLCA2MDApOwogCi0gICAgV0tQYWdlVUlDbGllbnRWNSBvdGhl
clBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyA1LCB2aWV3IH0sCisgICAgV0tQYWdlVUlDbGll
bnRWNiBvdGhlclBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyA2LCB2aWV3IH0sCiAgICAgICAg
IDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAgICAgICAwLCAv
LyBzaG93UGFnZQogICAgICAgICBjbG9zZU90aGVyUGFnZSwKQEAgLTI0Nyw3ICsyNDcsNyBAQCBX
S1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFn
ZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBkaWRDb21wbGV0ZVJ1YmJlckJh
bmRGb3JNYWluRnJhbWUKICAgICAgICAgMCwgLy8gc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0Zv
bGRlcgogICAgICAgICAwLCAvLyBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Ci0gICAgICAgIGNy
ZWF0ZU90aGVyUGFnZSwKKyAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYxCiAgICAgICAgIDAsIC8vIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50CiAgICAgICAg
IDAsIC8vIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0CiAgICAg
ICAgIDAsIC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNl
V2l0aFYxCkBAIC0yNjUsNiArMjY1LDcgQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVh
dGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0sKICAgICAg
ICAgMCwgLy8gcnVuSmF2YVNjcmlwdENvbmZpcm0KICAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlw
dFByb21wdAogICAgICAgICAwLCAvLyBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZQorICAg
ICAgICBjcmVhdGVPdGhlclBhZ2UsCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
bmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50LmJhc2UpOwogICAgIApAQCAtNDMwLDE1ICs0MzEs
MTkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hh
ciogYXJndltdKQogICAgIGlmIChtX2ZvcmNlQ29tcGxleFRleHQpCiAgICAgICAgIFdLQ29udGV4
dFNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKG1fY29udGV4dC5nZXQoKSwgdHJ1ZSk7
CiAKKyAgICBtX2NvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVh
dGUoKSk7CisgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQobV9jb25maWd1cmF0aW9u
LmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOworICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdl
R3JvdXAobV9jb25maWd1cmF0aW9uLmdldCgpLCBtX3BhZ2VHcm91cC5nZXQoKSk7CisKICAgICAv
LyBTb21lIHByZWZlcmVuY2VzIChub3RhYmx5IG1vY2sgc2Nyb2xsIGJhcnMgc2V0dGluZykgY3Vy
cmVudGx5IGNhbm5vdCBiZSByZS1hcHBsaWVkIHRvIGFuIGV4aXN0aW5nIHZpZXcsIHNvIHdlIG5l
ZWQgdG8gc2V0IHRoZW0gbm93LgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1
ZXMoKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25z
KGNvbnN0IFZpZXdPcHRpb25zJiBvcHRpb25zKQogewotICAgIG1fbWFpbldlYlZpZXcgPSBzdGQ6
Om1ha2VfdW5pcXVlPFBsYXRmb3JtV2ViVmlldz4obV9jb250ZXh0LmdldCgpLCBtX3BhZ2VHcm91
cC5nZXQoKSwgbnVsbHB0ciwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWNSBwYWdlVUlD
bGllbnQgPSB7Ci0gICAgICAgIHsgNSwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIG1fbWFp
bldlYlZpZXcgPSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtV2ViVmlldz4obV9jb25maWd1cmF0
aW9uLmdldCgpLCBvcHRpb25zKTsKKyAgICBXS1BhZ2VVSUNsaWVudFY2IHBhZ2VVSUNsaWVudCA9
IHsKKyAgICAgICAgeyA2LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCiAgICAgICAgIDAsIC8vIGNy
ZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFn
ZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAtNDc4LDcgKzQ4Myw3IEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBWaWV3T3B0aW9ucyYgb3B0aW9u
cykKICAgICAgICAgMCwgLy8gZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCiAgICAg
ICAgIDAsIC8vIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIKICAgICAgICAgMCwgLy8g
c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdAotICAgICAgICBjcmVhdGVPdGhlclBhZ2UsCisgICAg
ICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMQogICAgICAgICAw
LCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAogICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QKICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEKQEAgLTQ5Niw2ICs1MDEsNyBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVmlld09wdGlvbnMm
IG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRDb25maXJtCiAgICAgICAgIDAs
IC8vIHJ1bkphdmFTY3JpcHRQcm9tcHQKICAgICAgICAgMCwgLy8gbWVkaWFTZXNzaW9uTWV0YWRh
dGFEaWRDaGFuZ2UKKyAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAogICAgIH07CiAgICAgV0tQYWdl
U2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5iYXNl
KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDU0ZTMxZTRh
ODgwMDc2ODJhOGJlODdlYmZhZDg5NjA3NmNkYmE3NTguLjE1MmI3OGMzYjVkNGRlMTg5NGZlMWNj
YmM5YTdkYWNhOWQxZGU4NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKQEAgLTIxMCw3ICsyMTAsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZFVwZGF0
ZUhpc3RvcnlUaXRsZShXS0NvbnRleHRSZWYsIFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUs
IFdLVVJMUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBkaWRVcGRhdGVI
aXN0b3J5VGl0bGUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLVVJMUmVmLCBXS0ZyYW1lUmVmKTsKIAot
ICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBX
S1VSTFJlcXVlc3RSZWYsIFdLRGljdGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVu
dE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVP
dGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBXS05hdmlnYXRpb25B
Y3Rpb25SZWYsIFdLV2luZG93RmVhdHVyZXNSZWYsIGNvbnN0IHZvaWQqKTsKIAogICAgIHN0YXRp
YyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAg
c3RhdGljIHZvaWQgcnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3Kik7CkBAIC0yMzUsNiArMjM1LDcg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XZWJWaWV3PiBtX21haW5X
ZWJWaWV3OwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9jb250ZXh0OwogICAgIFdL
UmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBtX3BhZ2VHcm91cDsKKyAgICBXS1JldGFpblB0cjxX
S1BhZ2VDb25maWd1cmF0aW9uUmVmPiBtX2NvbmZpZ3VyYXRpb247CiAKICAgICBlbnVtIFN0YXRl
IHsKICAgICAgICAgSW5pdGlhbCwKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
aW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Bs
YXRmb3JtV2ViVmlld0lPUy5tbQppbmRleCBlYmIwNjIyMDI5M2UxYTIzOGM2ODYwZmNiYTAwZTA2
YmZkY2UxMzY1Li42MDhmOWY0ZjFmNWI5MTMxYTI4ZGM3MmFlOWNiY2YyNDUyZWFiOGQ0IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0K
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCkBA
IC00NCw4ICs0NCw2IEBACiAgICAgQk9PTCBfdXNlVGlsZWREcmF3aW5nOwogfQogCi0tIChpZClp
bml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4dFJlZjooV0tDb250ZXh0UmVmKWNvbnRl
eHRSZWYgcGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXBSZWYgcmVsYXRlZFRv
UGFnZTooV0tQYWdlUmVmKXJlbGF0ZWRQYWdlIHVzZVRpbGVkRHJhd2luZzooQk9PTCl1c2VUaWxl
ZERyYXdpbmc7Ci0KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgdXNlVGlsZWRE
cmF3aW5nOwogQGVuZAogCkBAIC01MywxMCArNTEsMTMgQEAKIAogQHN5bnRoZXNpemUgdXNlVGls
ZWREcmF3aW5nID0gX3VzZVRpbGVkRHJhd2luZzsKIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dS
ZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJl
ZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6KFdLUGFnZVJlZily
ZWxhdGVkUGFnZSB1c2VUaWxlZERyYXdpbmc6KEJPT0wpdXNlVGlsZWREcmF3aW5nCistIChpZClp
bml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlvblJlZjooV0tQYWdlQ29uZmln
dXJhdGlvblJlZiljb25maWd1cmF0aW9uIHVzZVRpbGVkRHJhd2luZzooQk9PTCl1c2VUaWxlZERy
YXdpbmcKIHsKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29u
ZmlndXJhdGlvblJlZjpjb25maWd1cmF0aW9uXSkpCisgICAgICAgIHJldHVybiBuaWw7CisKICAg
ICBfdXNlVGlsZWREcmF3aW5nID0gdXNlVGlsZWREcmF3aW5nOwotICAgIHJldHVybiBbc3VwZXIg
aW5pdFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBh
Z2VHcm91cFJlZl07CisgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKEJPT0wpX3Nob3VsZFVzZVRp
bGVkRHJhd2luZ0FyZWEKQEAgLTEyMSwxMiArMTIyLDE0IEBACiAKIG5hbWVzcGFjZSBXVFIgewog
Ci1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBXS1BhZ2VSZWYgcmVsYXRlZFBhZ2UsIGNv
bnN0IFZpZXdPcHRpb25zJiBvcHRpb25zKQorUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZp
ZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBWaWV3T3B0aW9u
cyYgb3B0aW9ucykKICAgICA6IG1fd2luZG93SXNLZXkodHJ1ZSkKICAgICAsIG1fb3B0aW9ucyhv
cHRpb25zKQogewogICAgIENHUmVjdCByZWN0ID0gQ0dSZWN0TWFrZSgwLCAwLCBUZXN0Q29udHJv
bGxlcjo6dmlld1dpZHRoLCBUZXN0Q29udHJvbGxlcjo6dmlld0hlaWdodCk7Ci0gICAgbV92aWV3
ID0gW1tUZXN0UnVubmVyV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnJlY3QgY29udGV4dFJl
Zjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTpyZWxh
dGVkUGFnZSB1c2VUaWxlZERyYXdpbmc6bV9vcHRpb25zLnVzZVRpbGVkRHJhd2luZ107CisgICAg
bV92aWV3ID0gW1tUZXN0UnVubmVyV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnJlY3QgY29u
ZmlndXJhdGlvblJlZjpjb25maWd1cmF0aW9uIHVzZVRpbGVkRHJhd2luZzptX29wdGlvbnMudXNl
VGlsZWREcmF3aW5nXTsKKworICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiA9IFdLUGFn
ZUNvbmZpZ3VyYXRpb25HZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbik7CiAKICAgICBXS1ByZWZl
cmVuY2VzU2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShXS1BhZ2VHcm91cEdldFByZWZlcmVu
Y2VzKHBhZ2VHcm91cFJlZiksIFlFUyk7CiAgICAgV0tQcmVmZXJlbmNlc1NldENvbXBvc2l0aW5n
UmVwYWludENvdW50ZXJzVmlzaWJsZShXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91
cFJlZiksIFlFUyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0
Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdl
YlZpZXdNYWMubW0KaW5kZXggMTZmODY3ZGE1MjliZmQ5YTk3Yjc1NDhiZjQyZTQ0NjVhZmI3MWU1
Ny4uNTgxNWJlOWNiMjUxNWZkYjFkNTllNGM1NzdjYjg0NDI2ODgwYTg1ZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtNTAsOCAr
NTAsNiBAQCBlbnVtIHsKICAgICBCT09MIF91c2VUaHJlYWRlZFNjcm9sbGluZzsKIH0KIAotLSAo
aWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZilj
b250ZXh0IHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwIHJlbGF0ZWRUb1Bh
Z2U6KFdLUGFnZVJlZilyZWxhdGVkUGFnZSB1c2VUaHJlYWRlZFNjcm9sbGluZzooQk9PTCl1c2VU
aHJlYWRlZFNjcm9sbGluZzsKLQogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCB1
c2VUaHJlYWRlZFNjcm9sbGluZzsKIEBlbmQKIApAQCAtNTksMTAgKzU3LDEzIEBAIGVudW0gewog
CiBAc3ludGhlc2l6ZSB1c2VUaHJlYWRlZFNjcm9sbGluZyA9IF91c2VUaHJlYWRlZFNjcm9sbGlu
ZzsKIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29u
dGV4dFJlZiljb250ZXh0IHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwIHJl
bGF0ZWRUb1BhZ2U6KFdLUGFnZVJlZilyZWxhdGVkUGFnZSB1c2VUaHJlYWRlZFNjcm9sbGluZzoo
Qk9PTCl1c2VUaHJlYWRlZFNjcm9sbGluZworLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZy
YW1lIGNvbmZpZ3VyYXRpb25SZWY6KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpY29uZmlndXJhdGlv
biB1c2VUaHJlYWRlZFNjcm9sbGluZzooQk9PTCl1c2VUaHJlYWRlZFNjcm9sbGluZwogeworICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb25maWd1cmF0aW9uUmVm
OmNvbmZpZ3VyYXRpb25dKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwogICAgIF91c2VUaHJlYWRl
ZFNjcm9sbGluZyA9IHVzZVRocmVhZGVkU2Nyb2xsaW5nOwotICAgIHJldHVybiBbc3VwZXIgaW5p
dFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOmNvbnRleHQgcGFnZUdyb3VwUmVmOnBhZ2VHcm91
cCByZWxhdGVkVG9QYWdlOnJlbGF0ZWRQYWdlXTsKKyAgICByZXR1cm4gc2VsZjsKIH0KIAogLSAo
dm9pZClkcmFnSW1hZ2U6KE5TSW1hZ2UgKilhbkltYWdlIGF0OihOU1BvaW50KXZpZXdMb2NhdGlv
biBvZmZzZXQ6KE5TU2l6ZSlpbml0aWFsT2Zmc2V0IGV2ZW50OihOU0V2ZW50ICopZXZlbnQgcGFz
dGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGJvYXJkIHNvdXJjZTooaWQpc291cmNlT2JqIHNsaWRl
QmFjazooQk9PTClzbGlkZUZsYWcKQEAgLTExOSwxMCArMTIwLDEyIEBAIGVudW0gewogCiBuYW1l
c3BhY2UgV1RSIHsKIAotUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgV0tQYWdlUmVmIHJl
bGF0ZWRQYWdlLCBjb25zdCBWaWV3T3B0aW9ucyYgb3B0aW9ucykKK1BsYXRmb3JtV2ViVmlldzo6
UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29u
c3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBtX3dpbmRvd0lzS2V5KHRydWUpCiAgICAg
LCBtX29wdGlvbnMob3B0aW9ucykKIHsKKyAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYg
PSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24pOworCiAgICAg
Ly8gVGhlIHRpbGVkIGRyYXdpbmcgc3BlY2lmaWMgdGVzdHMgYWxzbyBkZXBlbmQgb24gdGhyZWFk
ZWQgc2Nyb2xsaW5nLgogICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VH
cm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cFJlZik7CiAgICAgV0tQcmVmZXJlbmNlc1NldFRo
cmVhZGVkU2Nyb2xsaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgbV9vcHRpb25zLnVzZVRocmVhZGVk
U2Nyb2xsaW5nKTsKQEAgLTEzMiw3ICsxMzUsNyBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3Jt
V2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdybwog
ICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRWYWx1ZTpA
WUVTIGZvcktleTpAIldlYktpdDJVc2VSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSJdOwogCiAg
ICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIFRlc3RDb250cm9sbGVyOjp2aWV3V2lk
dGgsIFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0KTsKLSAgICBtX3ZpZXcgPSBbW1Rlc3RSdW5u
ZXJXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBjb250ZXh0UmVmOmNvbnRleHRSZWYg
cGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOnJlbGF0ZWRQYWdlIHVzZVRo
cmVhZGVkU2Nyb2xsaW5nOm1fb3B0aW9ucy51c2VUaHJlYWRlZFNjcm9sbGluZ107CisgICAgbV92
aWV3ID0gW1tUZXN0UnVubmVyV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnJlY3QgY29uZmln
dXJhdGlvblJlZjpjb25maWd1cmF0aW9uIHVzZVRocmVhZGVkU2Nyb2xsaW5nOm9wdGlvbnMudXNl
VGhyZWFkZWRTY3JvbGxpbmddOwogICAgIFttX3ZpZXcgc2V0V2luZG93T2NjbHVzaW9uRGV0ZWN0
aW9uRW5hYmxlZDpOT107CiAKICAgICBOU1NjcmVlbiAqZmlyc3RTY3JlZW4gPSBbW05TU2NyZWVu
IHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259526</attachid>
            <date>2015-08-20 16:56:40 -0700</date>
            <delta_ts>2015-08-27 18:38:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147996-20150820165636.patch</filename>
            <type>text/plain</type>
            <size>18390</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjZkZWZkZDI4ZGU4ZDc1
NGY0NThiMDZkYTk2YTc4ZTJjMmFhZDJkZi4uZTRiNjJhMDdmMDc5MTMyZThkYjhhMzhlM2Q2MGMy
ZDZkYzY0MjA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA4LTIwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1Mu
bW06CisgICAgICAgICgtW1dLVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoQ29uZmlndXJh
dGlvblJlZjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlv
blJlZjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb25SZWY6XSk6CisgICAgICAgIE1h
a2Ugc3VyZSB0byBjb3B5IHRoZSBjb25maWd1cmF0aW9uLCBtYXRjaGluZyB3aGF0IHdlIGRvIGlu
IHRoZSBtb2Rlcm4gQVBJLgorICAgICAgICAKIDIwMTUtMDgtMTkgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9XRUJWVFRfUkVH
SU9OUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Zp
ZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1By
aXZhdGUuaAppbmRleCA0NTRmNTA0ZmY2YzA2ZWVjMzRjOWViYzdjYjk5YzAxM2ExYTMwZDIwLi45
ODRlYTc2ODUwOGJlOTQ0MDk2MzhhN2RlNWYxYjk1Y2NhNDhjN2ExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApAQCAtMzgsNiAr
MzgsNyBAQAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVj
dClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6
KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZjsKIC0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVj
dClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6
KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYpcmVs
YXRlZFBhZ2U7CistIChpZClpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlv
blJlZjooV0tQYWdlQ29uZmlndXJhdGlvblJlZiljb25maWd1cmF0aW9uOwogI2Vsc2UKIC0gKGlk
KWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29u
dGV4dFJlZiBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZjsKIC0gKGlk
KWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29u
dGV4dFJlZiBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVk
VG9QYWdlOihXS1BhZ2VSZWYpcmVsYXRlZFBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0KaW5kZXggZmZhMTBjODcwOTIzYTNlMDY2NTk2MjAwNTNj
NDUzYjFkZTU0ODY0YS4uMTRlYmQ1OGFiMWU3ODUwZDU3NzljZWI4N2YzZWJiMGI2ZTFiNGMyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5tbQpAQCAt
MzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV0tBUElDYXN0LmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5n
Q29udGV4dEdyb3VwUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tDb250ZW50Vmlldy5oIgorI2ltcG9y
dCAiV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oIgogI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBQcml2
YXRlLmgiCiAjaW1wb3J0ICJXS1Njcm9sbFZpZXcuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5o
IgpAQCAtODYsNyArODcsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBpZiAoIShz
ZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkKICAgICAgICAgcmV0dXJuIG5pbDsK
IAotICAgIFtzZWxmIF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhDb250ZXh0UmVmOnByb2Nlc3NH
cm91cC5fY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6YnJvd3NpbmdDb250ZXh0R3JvdXAuX3BhZ2VH
cm91cFJlZiByZWxhdGVkVG9QYWdlOnJlbGF0ZWRWaWV3ID8gW3JlbGF0ZWRWaWV3IHBhZ2VSZWZd
IDogbnVsbHB0cl07CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gQVBJOjpQYWdlQ29uZmlndXJh
dGlvbjo6Y3JlYXRlKCk7CisgICAgY29uZmlndXJhdGlvbi0+c2V0UHJvY2Vzc1Bvb2wodG9JbXBs
KHByb2Nlc3NHcm91cC5fY29udGV4dFJlZikpOworICAgIGNvbmZpZ3VyYXRpb24tPnNldFBhZ2VH
cm91cCh0b0ltcGwoYnJvd3NpbmdDb250ZXh0R3JvdXAuX3BhZ2VHcm91cFJlZikpOworICAgIGNv
bmZpZ3VyYXRpb24tPnNldFJlbGF0ZWRQYWdlKHJlbGF0ZWRWaWV3ID8gdG9JbXBsKFtyZWxhdGVk
VmlldyBwYWdlUmVmXSkgOiBudWxscHRyKTsKKworICAgIFtzZWxmIF9jb21tb25Jbml0aWFsaXph
dGlvbldpdGhDb25maWd1cmF0aW9uUmVmOnRvQVBJKGNvbmZpZ3VyYXRpb24ucHRyKCkpXTsKICAg
ICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMjE0LDcgKzIyMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKICNwcmFnbWEgbWFyayBJbnRlcm5hbAogCi0tICh2b2lkKV9jb21tb25Jbml0aWFs
aXphdGlvbldpdGhDb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBS
ZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYp
cmVsYXRlZFBhZ2UKKy0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aENvbmZpZ3VyYXRp
b25SZWY6KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpY29uZmlndXJhdGlvblJlZgogewogICAgIEFT
U0VSVCghX3Njcm9sbFZpZXcpOwogICAgIEFTU0VSVCghX2NvbnRlbnRWaWV3KTsKQEAgLTIyNiwx
MiArMjMyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIFtzZWxmIGFkZFN1YnZp
ZXc6X3Njcm9sbFZpZXcuZ2V0KCldOwogCi0gICAgYXV0byBjb25maWd1cmF0aW9uID0gQVBJOjpQ
YWdlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7Ci0gICAgY29uZmlndXJhdGlvbi0+c2V0UHJvY2Vz
c1Bvb2wodG9JbXBsKGNvbnRleHRSZWYpKTsKLSAgICBjb25maWd1cmF0aW9uLT5zZXRQYWdlR3Jv
dXAodG9JbXBsKHBhZ2VHcm91cFJlZikpOwotICAgIGNvbmZpZ3VyYXRpb24tPnNldFJlbGF0ZWRQ
YWdlKHRvSW1wbChyZWxhdGVkUGFnZSkpOworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IHRvSW1w
bChjb25maWd1cmF0aW9uUmVmKS0+Y29weSgpOwogCi0gICAgX2NvbnRlbnRWaWV3ID0gYWRvcHRO
UyhbW1dLQ29udGVudFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Ym91bmRzIHByb2Nlc3NQb29s
Oip0b0ltcGwoY29udGV4dFJlZikgY29uZmlndXJhdGlvbjpXVEY6Om1vdmUoY29uZmlndXJhdGlv
bikgd2tWaWV3OnNlbGZdKTsKKyAgICBfY29udGVudFZpZXcgPSBhZG9wdE5TKFtbV0tDb250ZW50
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpib3VuZHMgcHJvY2Vzc1Bvb2w6KmNvbmZpZ3VyYXRp
b24tPnByb2Nlc3NQb29sKCkgY29uZmlndXJhdGlvbjpXVEY6Om1vdmUoY29uZmlndXJhdGlvbikg
d2tWaWV3OnNlbGZdKTsKIAogICAgIFtbX2NvbnRlbnRWaWV3IGxheWVyXSBzZXRBbmNob3JQb2lu
dDpDR1BvaW50WmVyb107CiAgICAgW19jb250ZW50VmlldyBzZXRGcmFtZTpib3VuZHNdOwpAQCAt
MzI2LDEwICszMjksMjAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogLSAoaWQpaW5pdFdp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVm
IHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6
KFdLUGFnZVJlZilyZWxhdGVkUGFnZQogeworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IEFQSTo6
UGFnZUNvbmZpZ3VyYXRpb246OmNyZWF0ZSgpOworICAgIGNvbmZpZ3VyYXRpb24tPnNldFByb2Nl
c3NQb29sKHRvSW1wbChjb250ZXh0UmVmKSk7CisgICAgY29uZmlndXJhdGlvbi0+c2V0UGFnZUdy
b3VwKHRvSW1wbChwYWdlR3JvdXBSZWYpKTsKKyAgICBjb25maWd1cmF0aW9uLT5zZXRSZWxhdGVk
UGFnZSh0b0ltcGwocmVsYXRlZFBhZ2UpKTsKKworICAgIHJldHVybiBbc2VsZiBpbml0V2l0aEZy
YW1lOmZyYW1lIGNvbnRleHRSZWY6Y29udGV4dFJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVm
IHJlbGF0ZWRUb1BhZ2U6bmlsXTsKK30KKworLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZy
YW1lIGNvbmZpZ3VyYXRpb25SZWY6KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpY29uZmlndXJhdGlv
bgorewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZV0pKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgW3NlbGYgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aENv
bnRleHRSZWY6Y29udGV4dFJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1Bh
Z2U6cmVsYXRlZFBhZ2VdOworICAgIFtzZWxmIF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhDb25m
aWd1cmF0aW9uUmVmOmNvbmZpZ3VyYXRpb25dOwogICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMWNlYjQxYTVlYWU1
ZDYxY2VhMmFjZjNlZDZkOTFkODMwZDlhMDVlMi4uZmYyODMzYjNiMjk3ZTkzZDgwNGRmYmQxMmIz
YjJiNjM5YjYwOGRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQpAQCAtNDAwNCw3ICs0MDA0LDcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1
ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogLSAoaWQpaW5pdFdpdGhGcmFtZToo
TlNSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb25SZWY6KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpY29u
ZmlndXJhdGlvblJlZgogewotICAgIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiBjb25maWd1
cmF0aW9uID0gKnRvSW1wbChjb25maWd1cmF0aW9uUmVmKTsKKyAgICBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IHRvSW1wbChjb25maWd1cmF0aW9uUmVmKS0+Y29w
eSgpOwogICAgIGF1dG8mIHByb2Nlc3NQb29sID0gKmNvbmZpZ3VyYXRpb24tPnByb2Nlc3NQb29s
KCk7CiAKICAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBwcm9jZXNzUG9vbDpw
cm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOldURjo6bW92ZShjb25maWd1cmF0aW9uKSB3ZWJWaWV3
Om5pbF07CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggMWM5NzIwYjc3OWU4MjcxYjljZmVhZGE5OWYzZjBlYmM5Mjk2MDQ1ZS4uNTAzODc5NzFiNzA0
YTA4NTgwMDE0MjVkODM0MzZjYTVlNTc1NDZjOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA4LTIwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tOgorICAgICAgICAoLVtU
ZXN0UnVubmVyV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlvblJlZjp1c2VUaHJlYWRl
ZFNjcm9sbGluZzpdKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdl
YlZpZXcpOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4
dFJlZjpwYWdlR3JvdXBSZWY6cmVsYXRlZFRvUGFnZTp1c2VUaHJlYWRlZFNjcm9sbGluZzpdKTog
RGVsZXRlZC4KKwogMjAxNS0wOC0xOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIENNYWtlIFdpbmRvd3MgYnVpbGQgc2hvdWxkIG5vdCBpbmNs
dWRlIGZpbGVzIGRpcmVjdGx5IGZyb20gb3RoZXIgU291cmNlIGRpcmVjdG9yaWVzCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCAxNGI2NjBjZjBhODQ3NDYzNGZk
Y2RlMTUwYjNjZGJhNjJlY2FhZDRlLi5hMTMwODliYzhlY2JkYWY4YWI2NDcwN2I5OGNjNzdiZjE0
YzE0OWFkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmll
dy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTUy
LDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdUUiB7CiAKIGNsYXNzIFBsYXRmb3JtV2ViVmlldyB7CiBw
dWJsaWM6Ci0gICAgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYs
IFdLUGFnZVJlZiByZWxhdGVkUGFnZSwgY29uc3QgVmlld09wdGlvbnMmKTsKKyAgICBQbGF0Zm9y
bVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVmlld09wdGlvbnMmKTsKICAg
ICB+UGxhdGZvcm1XZWJWaWV3KCk7CiAKICAgICBXS1BhZ2VSZWYgcGFnZSgpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAyZjZlODViOTAyZDE2ZmYwNjk5
Mzc5OTdiZDkxYmQxYjkyMWFjOTJhLi4wMzgzYzFmNjQ2YTdjYzFmOTNlYjdkMWE4ZGRjYmEwOTdj
MmNiMjUxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAt
MTk3LDE3ICsxOTcsMTcgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1MKICAgICBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuaGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QocGVybWlz
c2lvblJlcXVlc3QpOwogfQogCi1XS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVy
UGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rpb25hcnlSZWYs
IFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK1dLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJl
ZiBvbGRQcGFnZSwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmln
YXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5k
b3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZp
ZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0
PHZvaWQqPihjbGllbnRJbmZvKSk7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBuZXcg
UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUdldENvbnRleHQob2xkUGFnZSksIFdLUGFnZUdldFBhZ2VH
cm91cChvbGRQYWdlKSwgb2xkUGFnZSwgcGFyZW50Vmlldy0+b3B0aW9ucygpKTsKKyAgICBQbGF0
Zm9ybVdlYlZpZXcqIHZpZXcgPSBuZXcgUGxhdGZvcm1XZWJWaWV3KGNvbmZpZ3VyYXRpb24sIHBh
cmVudFZpZXctPm9wdGlvbnMoKSk7CiAgICAgV0tQYWdlUmVmIG5ld1BhZ2UgPSB2aWV3LT5wYWdl
KCk7CiAKICAgICB2aWV3LT5yZXNpemVUbyg4MDAsIDYwMCk7CiAKLSAgICBXS1BhZ2VVSUNsaWVu
dFY1IG90aGVyUGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDUsIHZpZXcgfSwKKyAgICBXS1Bh
Z2VVSUNsaWVudFY2IG90aGVyUGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDYsIHZpZXcgfSwK
ICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAg
ICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIGNsb3NlT3RoZXJQYWdlLApAQCAtMjQ3LDcgKzI0
Nyw3IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJl
ZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIGRpZENvbXBsZXRl
UnViYmVyQmFuZEZvck1haW5GcmFtZQogICAgICAgICAwLCAvLyBzYXZlRGF0YVRvRmlsZUluRG93
bmxvYWRzRm9sZGVyCiAgICAgICAgIDAsIC8vIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQKLSAg
ICAgICAgY3JlYXRlT3RoZXJQYWdlLAorICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjEKICAgICAgICAgMCwgLy8gbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQK
ICAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QKICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjEKQEAgLTI2NSw2ICsyNjUsNyBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBX
SwogICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0Q29uZmlybQogICAgICAgICAwLCAvLyBydW5K
YXZhU2NyaXB0UHJvbXB0CiAgICAgICAgIDAsIC8vIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hh
bmdlCisgICAgICAgIGNyZWF0ZU90aGVyUGFnZSwKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VV
SUNsaWVudChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGllbnQuYmFzZSk7CiAgICAgCkBAIC00MzAs
MTUgKzQzMSwxOSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBj
b25zdCBjaGFyKiBhcmd2W10pCiAgICAgaWYgKG1fZm9yY2VDb21wbGV4VGV4dCkKICAgICAgICAg
V0tDb250ZXh0U2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgobV9jb250ZXh0LmdldCgp
LCB0cnVlKTsKIAorICAgIG1fY29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJh
dGlvbkNyZWF0ZSgpKTsKKyAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChtX2NvbmZp
Z3VyYXRpb24uZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7CisgICAgV0tQYWdlQ29uZmlndXJhdGlv
blNldFBhZ2VHcm91cChtX2NvbmZpZ3VyYXRpb24uZ2V0KCksIG1fcGFnZUdyb3VwLmdldCgpKTsK
KwogICAgIC8vIFNvbWUgcHJlZmVyZW5jZXMgKG5vdGFibHkgbW9jayBzY3JvbGwgYmFycyBzZXR0
aW5nKSBjdXJyZW50bHkgY2Fubm90IGJlIHJlLWFwcGxpZWQgdG8gYW4gZXhpc3Rpbmcgdmlldywg
c28gd2UgbmVlZCB0byBzZXQgdGhlbSBub3cuCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lz
dGVudFZhbHVlcygpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0
aE9wdGlvbnMoY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgbV9tYWluV2ViVmll
dyA9IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1XZWJWaWV3PihtX2NvbnRleHQuZ2V0KCksIG1f
cGFnZUdyb3VwLmdldCgpLCBudWxscHRyLCBvcHRpb25zKTsKLSAgICBXS1BhZ2VVSUNsaWVudFY1
IHBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyA1LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisg
ICAgbV9tYWluV2ViVmlldyA9IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1XZWJWaWV3PihtX2Nv
bmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOworICAgIFdLUGFnZVVJQ2xpZW50VjYgcGFnZVVJ
Q2xpZW50ID0geworICAgICAgICB7IDYsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKICAgICAgICAg
MCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8v
IHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBAIC00NzgsNyArNDgzLDcgQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFZpZXdPcHRpb25z
JiBvcHRpb25zKQogICAgICAgICAwLCAvLyBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJh
bWUKICAgICAgICAgMCwgLy8gc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcgogICAgICAg
ICAwLCAvLyBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Ci0gICAgICAgIGNyZWF0ZU90aGVyUGFn
ZSwKKyAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxCiAg
ICAgICAgIDAsIC8vIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50CiAgICAgICAgIGRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LCAvLyBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAogICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMQpAQCAtNDk2LDYgKzUwMSw3IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBWaWV3
T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdENvbmZpcm0KICAg
ICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdFByb21wdAogICAgICAgICAwLCAvLyBtZWRpYVNlc3Np
b25NZXRhZGF0YURpZENoYW5nZQorICAgICAgICBjcmVhdGVPdGhlclBhZ2UsCiAgICAgfTsKICAg
ICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xp
ZW50LmJhc2UpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXgg
NTRlMzFlNGE4ODAwNzY4MmE4YmU4N2ViZmFkODk2MDc2Y2RiYTc1OC4uMTUyYjc4YzNiNWQ0ZGUx
ODk0ZmUxY2NiYzlhN2RhY2E5ZDFkZTg0MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaApAQCAtMjEwLDcgKzIxMCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQg
ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmLCBXS1N0cmluZ1Jl
ZiB0aXRsZSwgV0tVUkxSZWYsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIGRp
ZFVwZGF0ZUhpc3RvcnlUaXRsZShXS1N0cmluZ1JlZiB0aXRsZSwgV0tVUkxSZWYsIFdLRnJhbWVS
ZWYpOwogCi0gICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9s
ZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJz
LCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgV0tQYWdlUmVm
IGNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIFdLTmF2
aWdhdGlvbkFjdGlvblJlZiwgV0tXaW5kb3dGZWF0dXJlc1JlZiwgY29uc3Qgdm9pZCopOwogCiAg
ICAgc3RhdGljIHZvaWQgcnVuTW9kYWwoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKICAgICBzdGF0aWMgdm9pZCBydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqKTsKQEAgLTIzNSw2
ICsyMzUsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVdlYlZpZXc+
IG1fbWFpbldlYlZpZXc7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7
CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IG1fcGFnZUdyb3VwOworICAgIFdLUmV0
YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IG1fY29uZmlndXJhdGlvbjsKIAogICAgIGVu
dW0gU3RhdGUgewogICAgICAgICBJbml0aWFsLApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCmluZGV4IGViYjA2MjIwMjkzZTFhMjM4YzY4NjBm
Y2JhMDBlMDZiZmRjZTEzNjUuLjYwOGY5ZjRmMWY1YjkxMzFhMjhkYzcyYWU5Y2JjZjI0NTJlYWI4
ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmll
d0lPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJ
T1MubW0KQEAgLTQ0LDggKzQ0LDYgQEAKICAgICBCT09MIF91c2VUaWxlZERyYXdpbmc7CiB9CiAK
LS0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRS
ZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiBy
ZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYpcmVsYXRlZFBhZ2UgdXNlVGlsZWREcmF3aW5nOihCT09M
KXVzZVRpbGVkRHJhd2luZzsKLQogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCB1
c2VUaWxlZERyYXdpbmc7CiBAZW5kCiAKQEAgLTUzLDEwICs1MSwxMyBAQAogCiBAc3ludGhlc2l6
ZSB1c2VUaWxlZERyYXdpbmcgPSBfdXNlVGlsZWREcmF3aW5nOwogCi0tIChpZClpbml0V2l0aEZy
YW1lOihDR1JlY3QpZnJhbWUgY29udGV4dFJlZjooV0tDb250ZXh0UmVmKWNvbnRleHRSZWYgcGFn
ZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTooV0tQ
YWdlUmVmKXJlbGF0ZWRQYWdlIHVzZVRpbGVkRHJhd2luZzooQk9PTCl1c2VUaWxlZERyYXdpbmcK
Ky0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb25maWd1cmF0aW9uUmVmOihXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmKWNvbmZpZ3VyYXRpb24gdXNlVGlsZWREcmF3aW5nOihCT09MKXVz
ZVRpbGVkRHJhd2luZwogeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpm
cmFtZSBjb25maWd1cmF0aW9uUmVmOmNvbmZpZ3VyYXRpb25dKSkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKwogICAgIF91c2VUaWxlZERyYXdpbmcgPSB1c2VUaWxlZERyYXdpbmc7Ci0gICAgcmV0dXJu
IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbnRleHRSZWY6Y29udGV4dFJlZiBwYWdlR3Jv
dXBSZWY6cGFnZUdyb3VwUmVmXTsKKyAgICByZXR1cm4gc2VsZjsKIH0KIAogLSAoQk9PTClfc2hv
dWxkVXNlVGlsZWREcmF3aW5nQXJlYQpAQCAtMTIxLDEyICsxMjIsMTQgQEAKIAogbmFtZXNwYWNl
IFdUUiB7CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFdLUGFnZVJlZiByZWxhdGVk
UGFnZSwgY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRm
b3JtV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFZp
ZXdPcHRpb25zJiBvcHRpb25zKQogICAgIDogbV93aW5kb3dJc0tleSh0cnVlKQogICAgICwgbV9v
cHRpb25zKG9wdGlvbnMpCiB7CiAgICAgQ0dSZWN0IHJlY3QgPSBDR1JlY3RNYWtlKDAsIDAsIFRl
c3RDb250cm9sbGVyOjp2aWV3V2lkdGgsIFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0KTsKLSAg
ICBtX3ZpZXcgPSBbW1Rlc3RSdW5uZXJXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBj
b250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJlZiByZWxhdGVkVG9Q
YWdlOnJlbGF0ZWRQYWdlIHVzZVRpbGVkRHJhd2luZzptX29wdGlvbnMudXNlVGlsZWREcmF3aW5n
XTsKKyAgICBtX3ZpZXcgPSBbW1Rlc3RSdW5uZXJXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
cmVjdCBjb25maWd1cmF0aW9uUmVmOmNvbmZpZ3VyYXRpb24gdXNlVGlsZWREcmF3aW5nOm1fb3B0
aW9ucy51c2VUaWxlZERyYXdpbmddOworCisgICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVm
ID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VHcm91cChjb25maWd1cmF0aW9uKTsKIAogICAg
IFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKFdLUGFnZUdyb3VwR2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwUmVmKSwgWUVTKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0Q29t
cG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMo
cGFnZUdyb3VwUmVmKSwgWUVTKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Bs
YXRmb3JtV2ViVmlld01hYy5tbQppbmRleCAxNmY4NjdkYTUyOWJmZDlhOTdiNzU0OGJmNDJlNDQ2
NWFmYjcxZTU3Li41ODE1YmU5Y2IyNTE1ZmRiMWQ1OWU0YzU3N2NiODQ0MjY4ODBhODVmIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0K
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCkBA
IC01MCw4ICs1MCw2IEBAIGVudW0gewogICAgIEJPT0wgX3VzZVRocmVhZGVkU2Nyb2xsaW5nOwog
fQogCi0tIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29udGV4dFJlZjooV0tDb250
ZXh0UmVmKWNvbnRleHQgcGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXAgcmVs
YXRlZFRvUGFnZTooV0tQYWdlUmVmKXJlbGF0ZWRQYWdlIHVzZVRocmVhZGVkU2Nyb2xsaW5nOihC
T09MKXVzZVRocmVhZGVkU2Nyb2xsaW5nOwotCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWdu
KSBCT09MIHVzZVRocmVhZGVkU2Nyb2xsaW5nOwogQGVuZAogCkBAIC01OSwxMCArNTcsMTMgQEAg
ZW51bSB7CiAKIEBzeW50aGVzaXplIHVzZVRocmVhZGVkU2Nyb2xsaW5nID0gX3VzZVRocmVhZGVk
U2Nyb2xsaW5nOwogCi0tIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29udGV4dFJl
ZjooV0tDb250ZXh0UmVmKWNvbnRleHQgcGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdl
R3JvdXAgcmVsYXRlZFRvUGFnZTooV0tQYWdlUmVmKXJlbGF0ZWRQYWdlIHVzZVRocmVhZGVkU2Ny
b2xsaW5nOihCT09MKXVzZVRocmVhZGVkU2Nyb2xsaW5nCistIChpZClpbml0V2l0aEZyYW1lOihO
U1JlY3QpZnJhbWUgY29uZmlndXJhdGlvblJlZjooV0tQYWdlQ29uZmlndXJhdGlvblJlZiljb25m
aWd1cmF0aW9uIHVzZVRocmVhZGVkU2Nyb2xsaW5nOihCT09MKXVzZVRocmVhZGVkU2Nyb2xsaW5n
CiB7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3Vy
YXRpb25SZWY6Y29uZmlndXJhdGlvbl0pKQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgX3Vz
ZVRocmVhZGVkU2Nyb2xsaW5nID0gdXNlVGhyZWFkZWRTY3JvbGxpbmc7Ci0gICAgcmV0dXJuIFtz
dXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbnRleHRSZWY6Y29udGV4dCBwYWdlR3JvdXBSZWY6
cGFnZUdyb3VwIHJlbGF0ZWRUb1BhZ2U6cmVsYXRlZFBhZ2VdOworICAgIHJldHVybiBzZWxmOwog
fQogCiAtICh2b2lkKWRyYWdJbWFnZTooTlNJbWFnZSAqKWFuSW1hZ2UgYXQ6KE5TUG9pbnQpdmll
d0xvY2F0aW9uIG9mZnNldDooTlNTaXplKWluaXRpYWxPZmZzZXQgZXZlbnQ6KE5TRXZlbnQgKill
dmVudCBwYXN0ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilwYm9hcmQgc291cmNlOihpZClzb3VyY2VP
Ymogc2xpZGVCYWNrOihCT09MKXNsaWRlRmxhZwpAQCAtMTE5LDEwICsxMjAsMTIgQEAgZW51bSB7
CiAKIG5hbWVzcGFjZSBXVFIgewogCi1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBXS1Bh
Z2VSZWYgcmVsYXRlZFBhZ2UsIGNvbnN0IFZpZXdPcHRpb25zJiBvcHRpb25zKQorUGxhdGZvcm1X
ZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0
aW9uLCBjb25zdCBWaWV3T3B0aW9ucyYgb3B0aW9ucykKICAgICA6IG1fd2luZG93SXNLZXkodHJ1
ZSkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogeworICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VH
cm91cFJlZiA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbik7
CisKICAgICAvLyBUaGUgdGlsZWQgZHJhd2luZyBzcGVjaWZpYyB0ZXN0cyBhbHNvIGRlcGVuZCBv
biB0aHJlYWRlZCBzY3JvbGxpbmcuCiAgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9
IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwUmVmKTsKICAgICBXS1ByZWZlcmVu
Y2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBtX29wdGlvbnMudXNl
VGhyZWFkZWRTY3JvbGxpbmcpOwpAQCAtMTMyLDcgKzEzNSw3IEBAIFBsYXRmb3JtV2ViVmlldzo6
UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvCiAgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNl
dFZhbHVlOkBZRVMgZm9yS2V5OkAiV2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Il07CiAKICAgICBOU1JlY3QgcmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgVGVzdENvbnRyb2xsZXI6
OnZpZXdXaWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaHQpOwotICAgIG1fdmlldyA9IFtb
VGVzdFJ1bm5lcldLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbnRleHRSZWY6Y29u
dGV4dFJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6cmVsYXRlZFBh
Z2UgdXNlVGhyZWFkZWRTY3JvbGxpbmc6bV9vcHRpb25zLnVzZVRocmVhZGVkU2Nyb2xsaW5nXTsK
KyAgICBtX3ZpZXcgPSBbW1Rlc3RSdW5uZXJXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVj
dCBjb25maWd1cmF0aW9uUmVmOmNvbmZpZ3VyYXRpb24gdXNlVGhyZWFkZWRTY3JvbGxpbmc6b3B0
aW9ucy51c2VUaHJlYWRlZFNjcm9sbGluZ107CiAgICAgW21fdmlldyBzZXRXaW5kb3dPY2NsdXNp
b25EZXRlY3Rpb25FbmFibGVkOk5PXTsKIAogICAgIE5TU2NyZWVuICpmaXJzdFNjcmVlbiA9IFtb
TlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>