<?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>72976</bug_id>
          
          <creation_ts>2011-11-22 11:30:26 -0800</creation_ts>
          <short_desc>[Qt] [WK2] Expose onNavigationRequested signal instead of expecting a slot be defined from QML</short_desc>
          <delta_ts>2011-11-23 08:56:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>72959</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Caio Marcelo de Oliveira Filho">cmarcelo</reporter>
          <assigned_to name="Caio Marcelo de Oliveira Filho">cmarcelo</assigned_to>
          <cc>cshu</cc>
    
    <cc>hausmann</cc>
    
    <cc>kbalazs</cc>
    
    <cc>menard</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>507718</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-22 11:30:26 -0800</bug_when>
    <thetext>[Qt] [WK2] Expose onNavigationRequested signal instead of expecting a slot be defined from QML</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507738</commentid>
    <comment_count>1</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-22 11:57:18 -0800</bug_when>
    <thetext>For some context, see the thread https://lists.webkit.org/pipermail/webkit-qt/2011-October/001984.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507747</commentid>
    <comment_count>2</comment_count>
      <attachid>116260</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-22 12:02:05 -0800</bug_when>
    <thetext>Created attachment 116260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507750</commentid>
    <comment_count>3</comment_count>
      <attachid>116260</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-11-22 12:09:41 -0800</bug_when>
    <thetext>Comment on attachment 116260
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507755</commentid>
    <comment_count>4</comment_count>
      <attachid>116260</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-22 12:21:32 -0800</bug_when>
    <thetext>Comment on attachment 116260
Patch

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

&gt; Source/WebKit2/UIProcess/qt/QtWebPagePolicyClient.cpp:57
&gt; +    void download() { m_action = WKFramePolicyListenerDownload; }

I don&apos;t like the API. onNavigationRequested { request.download() } feels like it will actually do the download in a sense that I will download the request itself (a bit like file.open()). Maybe the name is just bad. Perhaps we should do like request.action = NavigationRequest.Download or request.action = NavigationRequest.Ignore or request.action = NavigationRequest.Use (the later should probably get another name).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507756</commentid>
    <comment_count>5</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-11-22 12:26:11 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 116260 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=116260&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtWebPagePolicyClient.cpp:57
&gt; &gt; +    void download() { m_action = WKFramePolicyListenerDownload; }
&gt; 
&gt; I don&apos;t like the API. onNavigationRequested { request.download() } feels like it will actually do the download in a sense that I will download the request itself (a bit like file.open()). Maybe the name is just bad. Perhaps we should do like request.action = NavigationRequest.Download or request.action = NavigationRequest.Ignore or request.action = NavigationRequest.Use (the later should probably get another name).

We could name it triggerDownload(), to signal that it&apos;s not immediate? If we do enums I&apos;d prefer if they were part of the WebView namespace, so action =  WebView.AcceptRequest|WebView.IgnoreRequest|WebView.DownloadRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507757</commentid>
    <comment_count>6</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-22 12:31:34 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 116260 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=116260&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/qt/QtWebPagePolicyClient.cpp:57
&gt; &gt; &gt; +    void download() { m_action = WKFramePolicyListenerDownload; }
&gt; &gt; 
&gt; &gt; I don&apos;t like the API. onNavigationRequested { request.download() } feels like it will actually do the download in a sense that I will download the request itself (a bit like file.open()). Maybe the name is just bad. Perhaps we should do like request.action = NavigationRequest.Download or request.action = NavigationRequest.Ignore or request.action = NavigationRequest.Use (the later should probably get another name).
&gt; 
&gt; We could name it triggerDownload(), to signal that it&apos;s not immediate? If we do enums I&apos;d prefer if they were part of the WebView namespace, so action =  WebView.AcceptRequest|WebView.IgnoreRequest|WebView.DownloadRequest


I prefer the second option much better :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507782</commentid>
    <comment_count>7</comment_count>
      <attachid>116268</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-22 13:11:58 -0800</bug_when>
    <thetext>Created attachment 116268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507783</commentid>
    <comment_count>8</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-22 13:12:54 -0800</bug_when>
    <thetext>This patch depends on bug 72959, that&apos;s why is not applying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507788</commentid>
    <comment_count>9</comment_count>
      <attachid>116268</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-11-22 13:16:22 -0800</bug_when>
    <thetext>Comment on attachment 116268
Patch

I prefer like this :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507813</commentid>
    <comment_count>10</comment_count>
      <attachid>116268</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-11-22 14:17:24 -0800</bug_when>
    <thetext>Comment on attachment 116268
Patch

LGTM :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508117</commentid>
    <comment_count>11</comment_count>
      <attachid>116352</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-23 06:49:27 -0800</bug_when>
    <thetext>Created attachment 116352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508164</commentid>
    <comment_count>12</comment_count>
      <attachid>116352</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-11-23 08:40:01 -0800</bug_when>
    <thetext>Comment on attachment 116352
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508172</commentid>
    <comment_count>13</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-23 08:56:41 -0800</bug_when>
    <thetext>Committed r101086: &lt;http://trac.webkit.org/changeset/101086&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116260</attachid>
            <date>2011-11-22 12:02:05 -0800</date>
            <delta_ts>2011-11-22 13:11:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72976-20111122170245.patch</filename>
            <type>text/plain</type>
            <size>16611</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTQ2ZWI3OWI2NTA1OWZk
YzI3NmQwZTkxZjllMzg2NGZiMDc4MTYzOC4uMjU5OTJmOTQ3N2EwNWU5ZTJlOGVhZjYyODliZDg0
NWYwYTdmYmJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDExLTExLTIyICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CiAKKyAgICAgICAgW1F0XSBbV0syXSBFeHBvc2Ugb25OYXZpZ2F0aW9uUmVxdWVzdGVkIHNpZ25h
bCBpbnN0ZWFkIG9mIGV4cGVjdGluZyBhIHNsb3QgYmUgZGVmaW5lZCBmcm9tIFFNTAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBlY3Rpbmcgc2xvdHMv
bWV0aG9kcyB0byBiZSBpbXBsZW1lbnRlZCBpbiBRTUwgaXNuJ3QgdmVyeSBpZGlvbWF0aWMgaW4K
KyAgICAgICAgY29tcGFyaXNvbiB3aXRoIHRoZSBhbHRlcm5hdGl2ZSBvZiBoYXZpbmcgYSBzaWdu
YWwuIFNvIHdlIG5vdyB1c2UgYSBzaWduYWwKKyAgICAgICAgZm9yIGhhbmRsaW5nIG5hdmlnYXRp
b24gcmVxdWVzdHMsIGFuZCBleHBvc2UgYSAncmVxdWVzdCcgb2JqZWN0IHdpdGggcmVsZXZhbnQK
KyAgICAgICAgbWV0YWRhdGEgYW5kIG1ldGhvZHMgdG8gaWdub3JlIG9yIHRyaWdnZXIgYSBkb3du
bG9hZC4gQnkgZGVmYXVsdCByZXF1ZXN0cyBhcmUKKyAgICAgICAgYWNjZXB0ZWQuCisKKyAgICAg
ICAgVGhlIHBhdHRlcm4gc2lnbmFsIHdpdGggYW4gb2JqZWN0IHBhcmFtZXRlciB0aGF0IGNhbiBr
ZWVwIHRoZSByZXBseSBpcyBjb21tb24gaW4gUU1MLAorICAgICAgICBhbmQgdXNlZCBmb3IgZXhh
bXBsZSBmb3IgbW91c2Ugc2lnbmFscy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BC
ZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWw6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90
c3RfbmF2aWdhdGlvblBvbGljeUZvclVybC5xbWwuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0
V2ViUGFnZVBvbGljeUNsaWVudC5jcHA6CisgICAgICAgIChOYXZpZ2F0aW9uUmVxdWVzdDo6TmF2
aWdhdGlvblJlcXVlc3QpOgorICAgICAgICAoTmF2aWdhdGlvblJlcXVlc3Q6OnVybCk6CisgICAg
ICAgIChOYXZpZ2F0aW9uUmVxdWVzdDo6YnV0dG9uKToKKyAgICAgICAgKE5hdmlnYXRpb25SZXF1
ZXN0Ojptb2RpZmllcnMpOgorICAgICAgICAoTmF2aWdhdGlvblJlcXVlc3Q6OmNhbGxSZXNwb25z
ZUFjdGlvbik6CisgICAgICAgIChOYXZpZ2F0aW9uUmVxdWVzdDo6aWdub3JlKToKKyAgICAgICAg
KE5hdmlnYXRpb25SZXF1ZXN0Ojpkb3dubG9hZCk6CisgICAgICAgIChRdFdlYlBhZ2VQb2xpY3lD
bGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuaDoKKworMjAxMS0xMS0yMiAgQ2FpbyBNYXJj
ZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCiAg
ICAgICAgIFtRdF0gW1dLMl0gTW92ZSBQYWdlUG9saWN5Q2xpZW50IHJlbGF0ZWQgY29kZSB0byBR
dFdlYlBhZ2VQb2xpY3lDbGllbnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcyOTU5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDUxM2U5OGU0OGJlMWViYzc3NmZmMDc1NWMwNGZh
MjQ0OWFmYTc2MTIuLmZjZGYzYTY3NTJmYjYzMTE3MGRkNDkzODNkN2FjYTBkNmE5NTRlY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNw
cApAQCAtMzQ0LDQ2ICszNDQsMTYgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0Vmll
d0luQXR0YWNoZWRQcm9wZXJ0aWVzKFFPYmplY3QqIG9iamVjdCkKICAgICBhdHRhY2hlZC0+c2V0
VmlldyhxKTsKIH0KIAotc3RhdGljIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6UG9saWN5QWN0aW9u
IHRvUG9saWN5QWN0aW9uKFFRdWlja1dlYlZpZXc6Ok5hdmlnYXRpb25Qb2xpY3kgcG9saWN5KQot
ewotICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBRUXVpY2tXZWJWaWV3OjpVc2VQb2xp
Y3k6Ci0gICAgICAgIHJldHVybiBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OlVzZTsKLSAgICBjYXNl
IFFRdWlja1dlYlZpZXc6OkRvd25sb2FkUG9saWN5OgotICAgICAgICByZXR1cm4gUXRXZWJQYWdl
UG9saWN5Q2xpZW50OjpEb3dubG9hZDsKLSAgICBjYXNlIFFRdWlja1dlYlZpZXc6Oklnbm9yZVBv
bGljeToKLSAgICAgICAgcmV0dXJuIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6SWdub3JlOwotICAg
IH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gUXRXZWJQYWdlUG9saWN5
Q2xpZW50OjpJZ25vcmU7Ci19Ci0KLXN0YXRpYyBib29sIGhhc01ldGFNZXRob2QoUU9iamVjdCog
b2JqZWN0LCBjb25zdCBjaGFyKiBtZXRob2ROYW1lKQotewotICAgIGludCBtZXRob2RJbmRleCA9
IG9iamVjdC0+bWV0YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKFFNZXRhT2JqZWN0Ojpub3JtYWxp
emVkU2lnbmF0dXJlKG1ldGhvZE5hbWUpKTsKLSAgICByZXR1cm4gbWV0aG9kSW5kZXggPj0gMCAm
JiBtZXRob2RJbmRleCA8IG9iamVjdC0+bWV0YU9iamVjdCgpLT5tZXRob2RDb3VudCgpOwotfQot
CiAvKiEKLSAgICBccW1sbWV0aG9kIE5hdmlnYXRpb25Qb2xpY3kgRGVza3RvcFdlYlZpZXc6Om5h
dmlnYXRpb25Qb2xpY3lGb3JVcmwodXJsLCBidXR0b24sIG1vZGlmaWVycykKKyAgICBccW1sc2ln
bmFsIFdlYlZpZXc6Om9uTmF2aWdhdGlvblJlcXVlc3RlZChyZXF1ZXN0KQogCi0gICAgVGhpcyBt
ZXRob2Qgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHRoZSB1c2VyIG9mIERlc2t0b3BXZWJWaWV3
IGVsZW1lbnQuCisgICAgVGhpcyBzaWduYWwgaXMgZW1pdHRlZCBmb3IgZXZlcnkgbmF2aWdhdGlv
biByZXF1ZXN0LiBUaGUgcmVxdWVzdCBvYmplY3QgY29udGFpbnMgdXJsLCBidXR0b24gYW5kIG1v
ZGlmaWVycyBwcm9wZXJ0aWVzCisgICAgZGVzY3JpYmluZyB0aGUgbmF2aWdhdGlvbiBhY3Rpb24s
IGUuZy4gImEgbWlkZGxlIGNsaWNrIHdpdGggc2hpZnQga2V5IHByZXNzZWQgdG8gJ2h0dHA6Ly9x
dC1wcm9qZWN0Lm9yZyciLgogCi0gICAgSXQgd2lsbCBiZSBjYWxsZWQgdG8gZGVjaWRlIHRoZSBw
b2xpY3kgZm9yIGEgbmF2aWdhdGlvbjogd2hldGhlciB0aGUgV2ViVmlldyBzaG91bGQgaWdub3Jl
IHRoZSBuYXZpZ2F0aW9uLAotICAgIGNvbnRpbnVlIGl0IG9yIHN0YXJ0IGEgZG93bmxvYWQuIFRo
ZSByZXR1cm4gdmFsdWUgbXVzdCBiZSBvbmUgb2YgdGhlIHBvbGljaWVzIGluIHRoZSBOYXZpZ2F0
aW9uUG9saWN5IGVudW1lcmF0aW9uLgorICAgIFRoZSBuYXZpZ2F0aW9uIGNhbiBiZSByZWplY3Rl
ZCBieSBjYWxsaW5nIHRoZSBpZ25vcmUoKSBtZXRob2Qgb2YgdGhlIHJlcXVlc3QuIEl0IGNhbiBh
bHNvIHRyaWdnZXIgYSBkb3dubG9hZCBieSB1c2luZyB0aGUKKyAgICBkb3dubG9hZCgpIG1ldGhv
ZCBvZiB0aGUgcmVxdWVzdC4gVGhlIHJlcXVlc3QgYnkgZGVmYXVsdCB3aWxsIGJlIGFjY2VwdGVk
LiBUaGUgcmVxdWVzdCBvYmplY3QgY2Fubm90IGJlIHVzZWQgYWZ0ZXIgdGhlCisgICAgc2lnbmFs
IGhhbmRsZXIgZnVuY3Rpb24gZW5kcy4KICovCi1RdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OlBvbGlj
eUFjdGlvbiBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6bmF2aWdhdGlvblBvbGljeUZvclVSTChjb25z
dCBRVXJsJiB1cmwsIFF0OjpNb3VzZUJ1dHRvbiBidXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVy
cyBtb2RpZmllcnMpCi17Ci0gICAgUV9RKFFRdWlja1dlYlZpZXcpOwotICAgIC8vIFdlIG5lZWQg
dG8gY2hlY2sgdGhpcyBmaXJzdCBiZWNhdXNlIGludm9rZU1ldGhvZCgpIHdhcm5zIGlmIHRoZSBt
ZXRob2QgZG9lc24ndCBleGlzdCBmb3IgdGhlIG9iamVjdC4KLSAgICBpZiAoIWhhc01ldGFNZXRo
b2QocSwgIm5hdmlnYXRpb25Qb2xpY3lGb3JVcmwoUVZhcmlhbnQsUVZhcmlhbnQsUVZhcmlhbnQp
IikpCi0gICAgICAgIHJldHVybiBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OlVzZTsKLQotICAgIFFW
YXJpYW50IHJldDsKLSAgICBpZiAoUU1ldGFPYmplY3Q6Omludm9rZU1ldGhvZChxLCAibmF2aWdh
dGlvblBvbGljeUZvclVybCIsIFFfUkVUVVJOX0FSRyhRVmFyaWFudCwgcmV0KSwgUV9BUkcoUVZh
cmlhbnQsIHVybCksIFFfQVJHKFFWYXJpYW50LCBidXR0b24pLCBRX0FSRyhRVmFyaWFudCwgUVZh
cmlhbnQobW9kaWZpZXJzKSkpKQotICAgICAgICByZXR1cm4gdG9Qb2xpY3lBY3Rpb24oc3RhdGlj
X2Nhc3Q8UVF1aWNrV2ViVmlldzo6TmF2aWdhdGlvblBvbGljeT4ocmV0LnRvSW50KCkpKTsKLSAg
ICByZXR1cm4gUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpVc2U7Ci19CiAKIHZvaWQgUVF1aWNrV2Vi
Vmlld1ByaXZhdGU6OnNldFBhZ2VQcm94eShRdFdlYlBhZ2VQcm94eSogcGFnZVByb3h5KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgK
aW5kZXggN2JlMmE4OTk1OGYxY2RhMjgwNDc5Nzg5ZWZlYzg3MGEyZjk3ZTIwMi4uNWU2MzFlYzEy
NTM1NDEzZGMzNjVkYTAyMzc0Zjg3MjZhYjczMzJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBAIC01NiwxNSArNTYsOSBAQCBj
bGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3IDogcHVibGljIFFRdWlja0l0ZW0gewog
ICAgIFFfUFJPUEVSVFkoYm9vbCBjYW5SZWxvYWQgUkVBRCBjYW5SZWxvYWQgTk9USUZZIG5hdmln
YXRpb25TdGF0ZUNoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShRV2ViUHJlZmVyZW5jZXMq
IHByZWZlcmVuY2VzIFJFQUQgcHJlZmVyZW5jZXMgQ09OU1RBTlQgRklOQUwpCiAgICAgUV9QUk9Q
RVJUWShRUXVpY2tXZWJQYWdlKiBwYWdlIFJFQUQgcGFnZSBDT05TVEFOVCBGSU5BTCkKLSAgICBR
X0VOVU1TKE5hdmlnYXRpb25Qb2xpY3kpCiAgICAgUV9FTlVNUyhFcnJvclR5cGUpCi1wdWJsaWM6
Ci0gICAgZW51bSBOYXZpZ2F0aW9uUG9saWN5IHsKLSAgICAgICAgVXNlUG9saWN5LAotICAgICAg
ICBEb3dubG9hZFBvbGljeSwKLSAgICAgICAgSWdub3JlUG9saWN5Ci0gICAgfTsKIAorcHVibGlj
OgogICAgIGVudW0gRXJyb3JUeXBlIHsKICAgICAgICAgRW5naW5lRXJyb3IsCiAgICAgICAgIE5l
dHdvcmtFcnJvciwKQEAgLTExMiw2ICsxMDYsNyBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBsaW5r
SG92ZXJlZChjb25zdCBRVXJsJiB1cmwsIGNvbnN0IFFTdHJpbmcmIHRpdGxlKTsKICAgICB2b2lk
IHZpZXdNb2RlQ2hhbmdlZCgpOwogICAgIHZvaWQgbmF2aWdhdGlvblN0YXRlQ2hhbmdlZCgpOwor
ICAgIHZvaWQgbmF2aWdhdGlvblJlcXVlc3RlZChRT2JqZWN0KiByZXF1ZXN0KTsKIAogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBnZW9tZXRyeUNoYW5nZWQoY29uc3QgUVJlY3RGJiwgY29u
c3QgUVJlY3RGJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblBvbGljeUZvclVy
bC5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rl
c2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblBvbGljeUZvclVybC5xbWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNjMGQwODYyNjQ0OThlYjQ5YmFiMThkY2UyYjgwN2Q5YzVmYzk3
N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3Iv
dHN0X25hdmlnYXRpb25Qb2xpY3lGb3JVcmwucW1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAs
MCBAQAotaW1wb3J0IFF0UXVpY2sgMi4wCi1pbXBvcnQgUXRUZXN0IDEuMAotaW1wb3J0IFF0V2Vi
S2l0IDMuMAotaW1wb3J0IFF0V2ViS2l0VGVzdCAxLjAKLQotSXRlbSB7Ci0gICAgRGVza3RvcFdl
YlZpZXcgewotICAgICAgICBpZDogd2ViVmlldwotICAgICAgICB3aWR0aDogMjAwCi0gICAgICAg
IGhlaWdodDogMjAwCi0gICAgICAgIGZ1bmN0aW9uIG5hdmlnYXRpb25Qb2xpY3lGb3JVcmwodXJs
LCBidXR0b24sIG1vZGlmaWVycykgewotICAgICAgICAgICAgaWYgKGJ1dHRvbiA9PSBRdC5NaWRk
bGVCdXR0b24gJiYgbW9kaWZpZXJzICYgUXQuQ29udHJvbE1vZGlmaWVyKSB7Ci0gICAgICAgICAg
ICAgICAgb3RoZXJXZWJWaWV3LmxvYWQodXJsKQotICAgICAgICAgICAgICAgIHJldHVybiBEZXNr
dG9wV2ViVmlldy5JZ25vcmVQb2xpY3kKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVy
biBEZXNrdG9wV2ViVmlldy5Vc2VQb2xpY3kKLSAgICAgICAgfQotICAgIH0KLQotICAgIFNpZ25h
bFNweSB7Ci0gICAgICAgIGlkOiBzcHkKLSAgICAgICAgdGFyZ2V0OiB3ZWJWaWV3Ci0gICAgICAg
IHNpZ25hbE5hbWU6ICJsb2FkU3VjY2VlZGVkIgotICAgIH0KLQotICAgIERlc2t0b3BXZWJWaWV3
IHsKLSAgICAgICAgaWQ6IG90aGVyV2ViVmlldwotICAgIH0KLQotICAgIFNpZ25hbFNweSB7Ci0g
ICAgICAgIGlkOiBvdGhlclNweQotICAgICAgICB0YXJnZXQ6IG90aGVyV2ViVmlldwotICAgICAg
ICBzaWduYWxOYW1lOiAibG9hZFN1Y2NlZWRlZCIKLSAgICB9Ci0KLSAgICBUZXN0Q2FzZSB7Ci0g
ICAgICAgIG5hbWU6ICJEZXNrdG9wV2ViVmlld05hdmlnYXRpb25Qb2xpY3lGb3JVcmwiCi0KLSAg
ICAgICAgLy8gRGVsYXllZCB3aW5kb3dTaG93biB0byB3b3JrYXJvdW5kIHByb2JsZW1zIHdpdGgg
UXQ1IGluIGRlYnVnIG1vZGUuCi0gICAgICAgIHdoZW46IGZhbHNlCi0gICAgICAgIFRpbWVyIHsK
LSAgICAgICAgICAgIHJ1bm5pbmc6IHBhcmVudC53aW5kb3dTaG93bgotICAgICAgICAgICAgcmVw
ZWF0OiBmYWxzZQotICAgICAgICAgICAgaW50ZXJ2YWw6IDEKLSAgICAgICAgICAgIG9uVHJpZ2dl
cmVkOiBwYXJlbnQud2hlbiA9IHRydWUKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RfdXNlUG9saWN5KCkgewotICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJs
KCIuLi9jb21tb24vdGVzdDIuaHRtbCIpKQotICAgICAgICAgICAgc3B5LndhaXQoKQotICAgICAg
ICAgICAgc3B5LmNsZWFyKCkKLSAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQotICAg
ICAgICAgICAgbW91c2VDbGljayh3ZWJWaWV3LCAxMDAsIDEwMCwgUXQuTGVmdEJ1dHRvbikKLSAg
ICAgICAgICAgIHNweS53YWl0KCkKLSAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAxKQot
ICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEiKQotICAgICAg
ICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdF9pZ25vcmVQb2xpY3koKSB7Ci0gICAgICAgICAg
ICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0Mi5odG1sIikpCi0g
ICAgICAgICAgICBzcHkud2FpdCgpCi0gICAgICAgICAgICBzcHkuY2xlYXIoKQotICAgICAgICAg
ICAgY29tcGFyZShzcHkuY291bnQsIDApCi0gICAgICAgICAgICBjb21wYXJlKG90aGVyU3B5LmNv
dW50LCAwKQotICAgICAgICAgICAgbW91c2VDbGljayh3ZWJWaWV3LCAxMDAsIDEwMCwgUXQuTWlk
ZGxlQnV0dG9uLCBRdC5Db250cm9sTW9kaWZpZXIpCi0gICAgICAgICAgICBvdGhlclNweS53YWl0
KCkKLSAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQotICAgICAgICAgICAgY29tcGFy
ZShvdGhlclNweS5jb3VudCwgMSkKLSAgICAgICAgICAgIGNvbXBhcmUob3RoZXJXZWJWaWV3LnRp
dGxlLCAiVGVzdCBwYWdlIDEiKQotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZp
b3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1
ZXN0ZWQucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhOTAzZGRiMjg1Y2YyMzM3OTk4YzE3Mzk5OWJmMDA0OWRh
ODBiZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5x
bWwKQEAgLTAsMCArMSw3MSBAQAoraW1wb3J0IFF0UXVpY2sgMi4wCitpbXBvcnQgUXRUZXN0IDEu
MAoraW1wb3J0IFF0V2ViS2l0IDMuMAoraW1wb3J0IFF0V2ViS2l0VGVzdCAxLjAKKworSXRlbSB7
CisgICAgRGVza3RvcFdlYlZpZXcgeworICAgICAgICBpZDogd2ViVmlldworICAgICAgICB3aWR0
aDogMjAwCisgICAgICAgIGhlaWdodDogMjAwCisgICAgICAgIG9uTmF2aWdhdGlvblJlcXVlc3Rl
ZDogeworICAgICAgICAgICAgaWYgKHJlcXVlc3QuYnV0dG9uID09IFF0Lk1pZGRsZUJ1dHRvbiAm
JiByZXF1ZXN0Lm1vZGlmaWVycyAmIFF0LkNvbnRyb2xNb2RpZmllcikgeworICAgICAgICAgICAg
ICAgIG90aGVyV2ViVmlldy5sb2FkKHJlcXVlc3QudXJsKQorICAgICAgICAgICAgICAgIHJlcXVl
c3QuaWdub3JlKCkKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiaWdub3JlZCIpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgU2lnbmFsU3B5IHsKKyAgICAgICAg
aWQ6IHNweQorICAgICAgICB0YXJnZXQ6IHdlYlZpZXcKKyAgICAgICAgc2lnbmFsTmFtZTogImxv
YWRTdWNjZWVkZWQiCisgICAgfQorCisgICAgRGVza3RvcFdlYlZpZXcgeworICAgICAgICBpZDog
b3RoZXJXZWJWaWV3CisgICAgfQorCisgICAgU2lnbmFsU3B5IHsKKyAgICAgICAgaWQ6IG90aGVy
U3B5CisgICAgICAgIHRhcmdldDogb3RoZXJXZWJWaWV3CisgICAgICAgIHNpZ25hbE5hbWU6ICJs
b2FkU3VjY2VlZGVkIgorICAgIH0KKworICAgIFRlc3RDYXNlIHsKKyAgICAgICAgbmFtZTogIkRl
c2t0b3BXZWJWaWV3TmF2aWdhdGlvblBvbGljeUZvclVybCIKKworICAgICAgICAvLyBEZWxheWVk
IHdpbmRvd1Nob3duIHRvIHdvcmthcm91bmQgcHJvYmxlbXMgd2l0aCBRdDUgaW4gZGVidWcgbW9k
ZS4KKyAgICAgICAgd2hlbjogZmFsc2UKKyAgICAgICAgVGltZXIgeworICAgICAgICAgICAgcnVu
bmluZzogcGFyZW50LndpbmRvd1Nob3duCisgICAgICAgICAgICByZXBlYXQ6IGZhbHNlCisgICAg
ICAgICAgICBpbnRlcnZhbDogMQorICAgICAgICAgICAgb25UcmlnZ2VyZWQ6IHBhcmVudC53aGVu
ID0gdHJ1ZQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF91c2VQb2xpY3koKSB7
CisgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0
Mi5odG1sIikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAgICAgICAgICBzcHkuY2xlYXIo
KQorICAgICAgICAgICAgbW91c2VDbGljayh3ZWJWaWV3LCAxMDAsIDEwMCwgUXQuTGVmdEJ1dHRv
bikKKyAgICAgICAgICAgIHNweS53YWl0KCkKKyAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50
LCAxKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEiKQor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9pZ25vcmVQb2xpY3koKSB7CisgICAg
ICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0Mi5odG1s
IikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAgICAgICAgICBzcHkuY2xlYXIoKQorICAg
ICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCisgICAgICAgICAgICBjb21wYXJlKG90aGVy
U3B5LmNvdW50LCAwKQorICAgICAgICAgICAgbW91c2VDbGljayh3ZWJWaWV3LCAxMDAsIDEwMCwg
UXQuTWlkZGxlQnV0dG9uLCBRdC5Db250cm9sTW9kaWZpZXIpCisgICAgICAgICAgICBvdGhlclNw
eS53YWl0KCkKKyAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQorICAgICAgICAgICAg
Y29tcGFyZShvdGhlclNweS5jb3VudCwgMSkKKyAgICAgICAgICAgIGNvbXBhcmUob3RoZXJXZWJW
aWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEiKQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0
cy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3Ft
bHRlc3RzLnBybwppbmRleCA3NTM1ZmI4MWU5MGNkMTQ1MDI3MGM4NmZjZDE5NzFkZGRlYjBlMjBm
Li43MWI4NTQ5MzgzOWJiNjA4ZDRlMzU4NmIzZjk5NjgzM2M3OWY3MDlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBy
bworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3Ft
bHRlc3RzLnBybwpAQCAtMjcsNSArMjcsNSBAQCBPVEhFUl9GSUxFUyArPSBcCiAgICAgRGVza3Rv
cEJlaGF2aW9yL3RzdF9saW5rSG92ZXJlZC5xbWwgXAogICAgIERlc2t0b3BCZWhhdmlvci90c3Rf
bWVzc2FnaW5nLnFtbCBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9kb3dubG9hZC5xbWwgXAot
ICAgIERlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblBvbGljeUZvclVybC5xbWwgXAorICAg
IERlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWwgXAogICAgIERlc2t0
b3BCZWhhdmlvci90c3RfbG9hZEh0bWwucW1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJQYWdlUG9saWN5Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwCmluZGV4IDFjZjgzNGViOWE3Zjcw
MDhjOGJhMWY4YTM2ZWU2YmY0NjliYzIxMTEuLjg3NmQ2MzRhNGExNWFjYTBhYzhlZDA3ODRlODlm
ZDQyNWE3YTczZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VQb2xpY3lDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwCkBAIC0yNCw5ICsyNCw0NiBAQAogI2luY2x1ZGUgIldL
VVJMUXQuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKICNpbmNsdWRlICJxcXVpY2t3
ZWJ2aWV3X3BfcC5oIgorI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgogI2luY2x1ZGUgPFdLRnJh
bWVQb2xpY3lMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdLVVJMUmVxdWVzdC5oPgogCitjbGFzcyBO
YXZpZ2F0aW9uUmVxdWVzdCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorICAgIFFf
UFJPUEVSVFkoUVVybCB1cmwgUkVBRCB1cmwgQ09OU1RBTlQgRklOQUwpCisgICAgUV9QUk9QRVJU
WShpbnQgYnV0dG9uIFJFQUQgYnV0dG9uIENPTlNUQU5UIEZJTkFMKQorICAgIFFfUFJPUEVSVFko
aW50IG1vZGlmaWVycyBSRUFEIG1vZGlmaWVycyBDT05TVEFOVCBGSU5BTCkKKworcHVibGljOgor
ICAgIE5hdmlnYXRpb25SZXF1ZXN0KGNvbnN0IFFVcmwmIHVybCwgUXQ6Ok1vdXNlQnV0dG9uIGJ1
dHRvbiwgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1vZGlmaWVycykKKyAgICAgICAgOiBtX2FjdGlv
bihXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UpCisgICAgICAgICwgbV91cmwodXJsKQorICAgICAg
ICAsIG1fYnV0dG9uKGJ1dHRvbikKKyAgICAgICAgLCBtX21vZGlmaWVycyhtb2RpZmllcnMpCisg
ICAgeworICAgIH0KKworICAgIFFVcmwgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KKyAg
ICBpbnQgYnV0dG9uKCkgY29uc3QgeyByZXR1cm4gaW50KG1fYnV0dG9uKTsgfQorICAgIGludCBt
b2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBpbnQobV9tb2RpZmllcnMpOyB9CisKKyAgICB2b2lk
IGNhbGxSZXNwb25zZUFjdGlvbihXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIpCisg
ICAgeworICAgICAgICBtX2FjdGlvbihsaXN0ZW5lcik7CisgICAgfQorCitwdWJsaWMgUV9TTE9U
UzoKKyAgICB2b2lkIGlnbm9yZSgpIHsgbV9hY3Rpb24gPSBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJ
Z25vcmU7IH0KKyAgICB2b2lkIGRvd25sb2FkKCkgeyBtX2FjdGlvbiA9IFdLRnJhbWVQb2xpY3lM
aXN0ZW5lckRvd25sb2FkOyB9CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiB2b2lkICgqUmVzcG9u
c2VBY3Rpb24pKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZik7CisgICAgUmVzcG9uc2VBY3Rpb24g
bV9hY3Rpb247CisgICAgUVVybCBtX3VybDsKKyAgICBRdDo6TW91c2VCdXR0b24gbV9idXR0b247
CisgICAgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1fbW9kaWZpZXJzOworfTsKKwogUXRXZWJQYWdl
UG9saWN5Q2xpZW50OjpRdFdlYlBhZ2VQb2xpY3lDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIFFR
dWlja1dlYlZpZXcqIHdlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykKIHsKQEAgLTM5
LDkgKzc2LDEzIEBAIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50
KFdLUGFnZVJlZiBwYWdlUmVmLCBRUXVpY2tXZWJWaWV3KiB3CiAgICAgV0tQYWdlU2V0UGFnZVBv
bGljeUNsaWVudChwYWdlUmVmLCAmcG9saWN5Q2xpZW50KTsKIH0KIAotUXRXZWJQYWdlUG9saWN5
Q2xpZW50OjpQb2xpY3lBY3Rpb24gUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFFVcmwmIHVybCwgUXQ6Ok1vdXNlQnV0dG9uIG1vdXNl
QnV0dG9uLCBRdDo6S2V5Ym9hcmRNb2RpZmllcnMga2V5Ym9hcmRNb2RpZmllcnMpCit2b2lkIFF0
V2ViUGFnZVBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25z
dCBRVXJsJiB1cmwsIFF0OjpNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgUXQ6OktleWJvYXJkTW9k
aWZpZXJzIGtleWJvYXJkTW9kaWZpZXJzLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVu
ZXIpCiB7Ci0gICAgcmV0dXJuIG1fd2ViVmlldy0+ZF9mdW5jKCktPm5hdmlnYXRpb25Qb2xpY3lG
b3JVUkwodXJsLCBtb3VzZUJ1dHRvbiwga2V5Ym9hcmRNb2RpZmllcnMpOworICAgIC8vIE5PVEU6
IGV2ZW4gdGhvdWdoIHRoZSBDIEFQSSAoYW5kIHRoZSBXZWJLaXQyIElQQykgc3VwcG9ydHMgYW4g
YXN5bmNocm9ub3VzIGFuc3dlciwgdGhpcyBpcyBub3QgY3VycmVudGx5IHdvcmtpbmcuCisgICAg
Ly8gV2UgYXJlIGV4cGVjdGVkIHRvIGNhbGwgdGhlIGxpc3RlbmVyIGltbWVkaWF0ZWx5LiBTZWUg
dGhlIHBhdGNoIGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM3
ODUuCisgICAgTmF2aWdhdGlvblJlcXVlc3QgbmF2aWdhdGlvblJlcXVlc3QodXJsLCBtb3VzZUJ1
dHRvbiwga2V5Ym9hcmRNb2RpZmllcnMpOworICAgIGVtaXQgbV93ZWJWaWV3LT5uYXZpZ2F0aW9u
UmVxdWVzdGVkKCZuYXZpZ2F0aW9uUmVxdWVzdCk7CisgICAgbmF2aWdhdGlvblJlcXVlc3QuY2Fs
bFJlc3BvbnNlQWN0aW9uKGxpc3RlbmVyKTsKIH0KIAogc3RhdGljIGlubGluZSBRdFdlYlBhZ2VQ
b2xpY3lDbGllbnQqIHRvUXRXZWJQYWdlUG9saWN5Q2xpZW50KGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCkBAIC04MiwxOSArMTIzLDcgQEAgdm9pZCBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmUKICAgICBXS1VS
TFJlZiByZXF1ZXN0VVJMID0gV0tVUkxSZXF1ZXN0Q29weVVSTChyZXF1ZXN0KTsKICAgICBRVXJs
IHFVcmwgPSBXS1VSTENvcHlRVXJsKHJlcXVlc3RVUkwpOwogICAgIFdLUmVsZWFzZShyZXF1ZXN0
VVJMKTsKLQotICAgIFBvbGljeUFjdGlvbiBhY3Rpb24gPSB0b1F0V2ViUGFnZVBvbGljeUNsaWVu
dChjbGllbnRJbmZvKS0+ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihxVXJsLCB0b1F0
TW91c2VCdXR0b24obW91c2VCdXR0b24pLCB0b1F0S2V5Ym9hcmRNb2RpZmllcnMobW9kaWZpZXJz
KSk7Ci0gICAgc3dpdGNoIChhY3Rpb24pIHsKLSAgICBjYXNlIFVzZToKLSAgICAgICAgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBE
b3dubG9hZDoKLSAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIElnbm9yZToKLSAgICAgICAgV0tGcmFtZVBvbGlj
eUxpc3RlbmVySWdub3JlKGxpc3RlbmVyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHRv
UXRXZWJQYWdlUG9saWN5Q2xpZW50KGNsaWVudEluZm8pLT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKHFVcmwsIHRvUXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksIHRvUXRLZXlib2Fy
ZE1vZGlmaWVycyhtb2RpZmllcnMpLCBsaXN0ZW5lcik7CiB9CiAKIHZvaWQgUXRXZWJQYWdlUG9s
aWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBX
S0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCop
CkBAIC0xMjQsMyArMTUzLDQgQEAgdm9pZCBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGYKICAgICBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwogfQogCisjaW5jbHVkZSAiUXRXZWJQYWdlUG9s
aWN5Q2xpZW50Lm1vYyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFdlYlBhZ2VQb2xpY3lDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VQb2xpY3lDbGllbnQuaAppbmRleCBlNDExYmY2ZjM4Mjk5ZmRmMDU4OGZjNGM1NDZjN2E5
ZjM5MjNiODEyLi4zMTk3OGQwMzkzZDc0OGMxNTBkZmIzMWZhMTg0YjQ0ODVkNWZhMjZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUG9saWN5Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVBvbGljeUNsaWVu
dC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiBwcml2YXRlOgotICAgIFBv
bGljeUFjdGlvbiBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFFVcmwmLCBR
dDo6TW91c2VCdXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVycyk7CisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFFVcmwmLCBRdDo6TW91c2VCdXR0b24sIFF0
OjpLZXlib2FyZE1vZGlmaWVycywgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmKTsKIAogICAgIC8v
IFdLUGFnZVBvbGljeUNsaWVudCBjYWxsYmFja3MuCiAgICAgc3RhdGljIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZp
Z2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBXS1VSTFJl
cXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116268</attachid>
            <date>2011-11-22 13:11:58 -0800</date>
            <delta_ts>2011-11-23 06:49:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72976-20111122181238.patch</filename>
            <type>text/plain</type>
            <size>18093</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTQ2ZWI3OWI2NTA1OWZk
YzI3NmQwZTkxZjllMzg2NGZiMDc4MTYzOC4uZWJkZGEyODBmNmE2YmQ3OTQzNjdmZDk2ODQ0MjM0
ZDFhY2ZmYmJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDExLTExLTIyICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CiAKKyAgICAgICAgW1F0XSBbV0syXSBFeHBvc2Ugb25OYXZpZ2F0aW9uUmVxdWVzdGVkIHNpZ25h
bCBpbnN0ZWFkIG9mIGV4cGVjdGluZyBhIHNsb3QgYmUgZGVmaW5lZCBmcm9tIFFNTAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBlY3Rpbmcgc2xvdHMv
bWV0aG9kcyB0byBiZSBpbXBsZW1lbnRlZCBpbiBRTUwgaXNuJ3QgdmVyeSBpZGlvbWF0aWMgaW4K
KyAgICAgICAgY29tcGFyaXNvbiB3aXRoIHRoZSBhbHRlcm5hdGl2ZSBvZiBoYXZpbmcgYSBzaWdu
YWwuIFNvIHdlIG5vdyB1c2UgYSBzaWduYWwKKyAgICAgICAgZm9yIGhhbmRsaW5nIG5hdmlnYXRp
b24gcmVxdWVzdHMsIGFuZCBleHBvc2UgYSAncmVxdWVzdCcgb2JqZWN0IHdpdGggcmVsZXZhbnQK
KyAgICAgICAgbWV0YWRhdGEuIFRoZXJlJ3MgYWxzbyBhIHNldHRhYmxlIHByb3BlcnR5ICdhY3Rp
b24nIHVzZWQgdG8gaW5kaWNhdGUgd2hldGhlcgorICAgICAgICB0aGUgbmF2aWdhdGlvbiBzaG91
bGQgYmUgaWdub3JlZCBvciB0cmlnZ2VyIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGhlIHBhdHRl
cm4gc2lnbmFsIHdpdGggYW4gb2JqZWN0IHBhcmFtZXRlciB0aGF0IGNhbiBrZWVwIHRoZSByZXBs
eSBpcyBjb21tb24gaW4gUU1MLAorICAgICAgICBhbmQgdXNlZCBmb3IgZXhhbXBsZSBmb3IgbW91
c2Ugc2lnbmFscy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRp
b25SZXF1ZXN0ZWQucW1sOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25Qb2xpY3lG
b3JVcmwucW1sLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1s
dGVzdHMucHJvOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQu
Y3BwOgorICAgICAgICAoTmF2aWdhdGlvblJlcXVlc3Q6Ok5hdmlnYXRpb25SZXF1ZXN0KToKKyAg
ICAgICAgKE5hdmlnYXRpb25SZXF1ZXN0Ojp1cmwpOgorICAgICAgICAoTmF2aWdhdGlvblJlcXVl
c3Q6OmJ1dHRvbik6CisgICAgICAgIChOYXZpZ2F0aW9uUmVxdWVzdDo6bW9kaWZpZXJzKToKKyAg
ICAgICAgKE5hdmlnYXRpb25SZXF1ZXN0OjphY3Rpb24pOgorICAgICAgICAoTmF2aWdhdGlvblJl
cXVlc3Q6OnNldEFjdGlvbik6CisgICAgICAgIChRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VQb2xpY3lDbGllbnQuaDoKKworMjAxMS0xMS0yMiAgQ2FpbyBNYXJjZWxvIGRlIE9saXZl
aXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCiAgICAgICAgIFtRdF0g
W1dLMl0gTW92ZSBQYWdlUG9saWN5Q2xpZW50IHJlbGF0ZWQgY29kZSB0byBRdFdlYlBhZ2VQb2xp
Y3lDbGllbnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcyOTU5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwCmluZGV4IDUxM2U5OGU0OGJlMWViYzc3NmZmMDc1NWMwNGZhMjQ0OWFmYTc2MTIu
LmViZjg0MTc2MDg3NTE5MDIwMjI5YWY2ZmI5OGM3MTgyMzYxNmM4MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtMzQ0LDQ2
ICszNDQsMTcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0Vmlld0luQXR0YWNoZWRQ
cm9wZXJ0aWVzKFFPYmplY3QqIG9iamVjdCkKICAgICBhdHRhY2hlZC0+c2V0VmlldyhxKTsKIH0K
IAotc3RhdGljIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6UG9saWN5QWN0aW9uIHRvUG9saWN5QWN0
aW9uKFFRdWlja1dlYlZpZXc6Ok5hdmlnYXRpb25Qb2xpY3kgcG9saWN5KQotewotICAgIHN3aXRj
aCAocG9saWN5KSB7Ci0gICAgY2FzZSBRUXVpY2tXZWJWaWV3OjpVc2VQb2xpY3k6Ci0gICAgICAg
IHJldHVybiBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OlVzZTsKLSAgICBjYXNlIFFRdWlja1dlYlZp
ZXc6OkRvd25sb2FkUG9saWN5OgotICAgICAgICByZXR1cm4gUXRXZWJQYWdlUG9saWN5Q2xpZW50
OjpEb3dubG9hZDsKLSAgICBjYXNlIFFRdWlja1dlYlZpZXc6Oklnbm9yZVBvbGljeToKLSAgICAg
ICAgcmV0dXJuIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6SWdub3JlOwotICAgIH0KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpJZ25v
cmU7Ci19Ci0KLXN0YXRpYyBib29sIGhhc01ldGFNZXRob2QoUU9iamVjdCogb2JqZWN0LCBjb25z
dCBjaGFyKiBtZXRob2ROYW1lKQotewotICAgIGludCBtZXRob2RJbmRleCA9IG9iamVjdC0+bWV0
YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKFFNZXRhT2JqZWN0Ojpub3JtYWxpemVkU2lnbmF0dXJl
KG1ldGhvZE5hbWUpKTsKLSAgICByZXR1cm4gbWV0aG9kSW5kZXggPj0gMCAmJiBtZXRob2RJbmRl
eCA8IG9iamVjdC0+bWV0YU9iamVjdCgpLT5tZXRob2RDb3VudCgpOwotfQotCiAvKiEKLSAgICBc
cW1sbWV0aG9kIE5hdmlnYXRpb25Qb2xpY3kgRGVza3RvcFdlYlZpZXc6Om5hdmlnYXRpb25Qb2xp
Y3lGb3JVcmwodXJsLCBidXR0b24sIG1vZGlmaWVycykKKyAgICBccW1sc2lnbmFsIFdlYlZpZXc6
Om9uTmF2aWdhdGlvblJlcXVlc3RlZChyZXF1ZXN0KQogCi0gICAgVGhpcyBtZXRob2Qgc2hvdWxk
IGJlIGltcGxlbWVudGVkIGJ5IHRoZSB1c2VyIG9mIERlc2t0b3BXZWJWaWV3IGVsZW1lbnQuCisg
ICAgVGhpcyBzaWduYWwgaXMgZW1pdHRlZCBmb3IgZXZlcnkgbmF2aWdhdGlvbiByZXF1ZXN0LiBU
aGUgcmVxdWVzdCBvYmplY3QgY29udGFpbnMgdXJsLCBidXR0b24gYW5kIG1vZGlmaWVycyBwcm9w
ZXJ0aWVzCisgICAgZGVzY3JpYmluZyB0aGUgbmF2aWdhdGlvbiBhY3Rpb24sIGUuZy4gImEgbWlk
ZGxlIGNsaWNrIHdpdGggc2hpZnQga2V5IHByZXNzZWQgdG8gJ2h0dHA6Ly9xdC1wcm9qZWN0Lm9y
ZyciLgogCi0gICAgSXQgd2lsbCBiZSBjYWxsZWQgdG8gZGVjaWRlIHRoZSBwb2xpY3kgZm9yIGEg
bmF2aWdhdGlvbjogd2hldGhlciB0aGUgV2ViVmlldyBzaG91bGQgaWdub3JlIHRoZSBuYXZpZ2F0
aW9uLAotICAgIGNvbnRpbnVlIGl0IG9yIHN0YXJ0IGEgZG93bmxvYWQuIFRoZSByZXR1cm4gdmFs
dWUgbXVzdCBiZSBvbmUgb2YgdGhlIHBvbGljaWVzIGluIHRoZSBOYXZpZ2F0aW9uUG9saWN5IGVu
dW1lcmF0aW9uLgotKi8KLVF0V2ViUGFnZVBvbGljeUNsaWVudDo6UG9saWN5QWN0aW9uIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpuYXZpZ2F0aW9uUG9saWN5Rm9yVVJMKGNvbnN0IFFVcmwmIHVybCwg
UXQ6Ok1vdXNlQnV0dG9uIGJ1dHRvbiwgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1vZGlmaWVycykK
LXsKLSAgICBRX1EoUVF1aWNrV2ViVmlldyk7Ci0gICAgLy8gV2UgbmVlZCB0byBjaGVjayB0aGlz
IGZpcnN0IGJlY2F1c2UgaW52b2tlTWV0aG9kKCkgd2FybnMgaWYgdGhlIG1ldGhvZCBkb2Vzbid0
IGV4aXN0IGZvciB0aGUgb2JqZWN0LgotICAgIGlmICghaGFzTWV0YU1ldGhvZChxLCAibmF2aWdh
dGlvblBvbGljeUZvclVybChRVmFyaWFudCxRVmFyaWFudCxRVmFyaWFudCkiKSkKLSAgICAgICAg
cmV0dXJuIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6VXNlOworICAgIFRoZSBuYXZpZ2F0aW9uIHdp
bGwgYmUgYWNjZXB0ZWQgYnkgZGVmYXVsdC4gVG8gY2hhbmdlIHRoYXQsIG9uZSBjYW4gc2V0IHRo
ZSBhY3Rpb24gcHJvcGVydHkgdG8gV2ViVmlldy5JZ25vcmVSZXF1ZXN0IHRvIHJlamVjdAorICAg
IHRoZSByZXF1ZXN0IG9yIFdlYlZpZXcuRG93bmxvYWRSZXF1ZXN0IHRvIHRyaWdnZXIgYSBkb3du
bG9hZCBpbnN0ZWFkIG9mIG5hdmlnYXRpbmcgdG8gdGhlIHVybC4KIAotICAgIFFWYXJpYW50IHJl
dDsKLSAgICBpZiAoUU1ldGFPYmplY3Q6Omludm9rZU1ldGhvZChxLCAibmF2aWdhdGlvblBvbGlj
eUZvclVybCIsIFFfUkVUVVJOX0FSRyhRVmFyaWFudCwgcmV0KSwgUV9BUkcoUVZhcmlhbnQsIHVy
bCksIFFfQVJHKFFWYXJpYW50LCBidXR0b24pLCBRX0FSRyhRVmFyaWFudCwgUVZhcmlhbnQobW9k
aWZpZXJzKSkpKQotICAgICAgICByZXR1cm4gdG9Qb2xpY3lBY3Rpb24oc3RhdGljX2Nhc3Q8UVF1
aWNrV2ViVmlldzo6TmF2aWdhdGlvblBvbGljeT4ocmV0LnRvSW50KCkpKTsKLSAgICByZXR1cm4g
UXRXZWJQYWdlUG9saWN5Q2xpZW50OjpVc2U7Ci19CisgICAgVGhlIHJlcXVlc3Qgb2JqZWN0IGNh
bm5vdCBiZSB1c2VkIGFmdGVyIHRoZSBzaWduYWwgaGFuZGxlciBmdW5jdGlvbiBlbmRzLgorKi8K
IAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0UGFnZVByb3h5KFF0V2ViUGFnZVByb3h5
KiBwYWdlUHJveHkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3AuaAppbmRleCA3YmUyYTg5OTU4ZjFjZGEyODA0Nzk3ODllZmVjODcwYTJm
OTdlMjAyLi4xODE3ZDM5ODM5MjgwYTkxODc1ZWU5MDdkNTg3OGU4MTY5ODdjODI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAg
LTU2LDEzICs1NiwxNCBAQCBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3IDogcHVi
bGljIFFRdWlja0l0ZW0gewogICAgIFFfUFJPUEVSVFkoYm9vbCBjYW5SZWxvYWQgUkVBRCBjYW5S
ZWxvYWQgTk9USUZZIG5hdmlnYXRpb25TdGF0ZUNoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJU
WShRV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzIFJFQUQgcHJlZmVyZW5jZXMgQ09OU1RBTlQg
RklOQUwpCiAgICAgUV9QUk9QRVJUWShRUXVpY2tXZWJQYWdlKiBwYWdlIFJFQUQgcGFnZSBDT05T
VEFOVCBGSU5BTCkKLSAgICBRX0VOVU1TKE5hdmlnYXRpb25Qb2xpY3kpCisgICAgUV9FTlVNUyhO
YXZpZ2F0aW9uUmVxdWVzdEFjdGlvbikKICAgICBRX0VOVU1TKEVycm9yVHlwZSkKKwogcHVibGlj
OgotICAgIGVudW0gTmF2aWdhdGlvblBvbGljeSB7Ci0gICAgICAgIFVzZVBvbGljeSwKLSAgICAg
ICAgRG93bmxvYWRQb2xpY3ksCi0gICAgICAgIElnbm9yZVBvbGljeQorICAgIGVudW0gTmF2aWdh
dGlvblJlcXVlc3RBY3Rpb24geworICAgICAgICBBY2NlcHRSZXF1ZXN0LAorICAgICAgICBJZ25v
cmVSZXF1ZXN0LAorICAgICAgICBEb3dubG9hZFJlcXVlc3QKICAgICB9OwogCiAgICAgZW51bSBF
cnJvclR5cGUgewpAQCAtMTEyLDYgKzExMyw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGxpbmtI
b3ZlcmVkKGNvbnN0IFFVcmwmIHVybCwgY29uc3QgUVN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQg
dmlld01vZGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBuYXZpZ2F0aW9uU3RhdGVDaGFuZ2VkKCk7Cisg
ICAgdm9pZCBuYXZpZ2F0aW9uUmVxdWVzdGVkKFFPYmplY3QqIHJlcXVlc3QpOwogCiBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGdlb21ldHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmLCBjb25z
dCBRUmVjdEYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wX3AuaAppbmRleCBlMzIwYjM4YThkYTRhZDFkMDc1NTE4MzNiMWE5MTM4NzNh
MjFiZjYxLi5mYzhjMmNhZGI4NTMyYjRiZWQxZTQ0YTEyNTMxZGU2ZGVkOTI5NjcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5o
CkBAIC03MCw4ICs3MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIF9xX29uT3BlblBhbmVsRmluaXNo
ZWQoaW50IHJlc3VsdCk7CiAgICAgdm9pZCBfcV9vblZpc2libGVDaGFuZ2VkKCk7CiAKLSAgICBR
dFdlYlBhZ2VQb2xpY3lDbGllbnQ6OlBvbGljeUFjdGlvbiBuYXZpZ2F0aW9uUG9saWN5Rm9yVVJM
KGNvbnN0IFFVcmwmLCBRdDo6TW91c2VCdXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVycyk7Ci0K
ICAgICB2b2lkIGNob29zZUZpbGVzKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0
IFFTdHJpbmdMaXN0JiBzZWxlY3RlZEZpbGVOYW1lcywgUXRXZWJQYWdlVUlDbGllbnQ6OkZpbGVD
aG9vc2VyVHlwZSk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoY29uc3QgUVN0cmluZyYp
OwogICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oY29uc3QgUVN0cmluZyYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNr
dG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25Qb2xpY3lGb3JVcmwucW1sIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25h
dmlnYXRpb25Qb2xpY3lGb3JVcmwucW1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
YzBkMDg2MjY0NDk4ZWI0OWJhYjE4ZGNlMmI4MDdkOWM1ZmM5NzdkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUG9saWN5
Rm9yVXJsLnFtbAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLWltcG9ydCBRdFF1aWNr
IDIuMAotaW1wb3J0IFF0VGVzdCAxLjAKLWltcG9ydCBRdFdlYktpdCAzLjAKLWltcG9ydCBRdFdl
YktpdFRlc3QgMS4wCi0KLUl0ZW0gewotICAgIERlc2t0b3BXZWJWaWV3IHsKLSAgICAgICAgaWQ6
IHdlYlZpZXcKLSAgICAgICAgd2lkdGg6IDIwMAotICAgICAgICBoZWlnaHQ6IDIwMAotICAgICAg
ICBmdW5jdGlvbiBuYXZpZ2F0aW9uUG9saWN5Rm9yVXJsKHVybCwgYnV0dG9uLCBtb2RpZmllcnMp
IHsKLSAgICAgICAgICAgIGlmIChidXR0b24gPT0gUXQuTWlkZGxlQnV0dG9uICYmIG1vZGlmaWVy
cyAmIFF0LkNvbnRyb2xNb2RpZmllcikgewotICAgICAgICAgICAgICAgIG90aGVyV2ViVmlldy5s
b2FkKHVybCkKLSAgICAgICAgICAgICAgICByZXR1cm4gRGVza3RvcFdlYlZpZXcuSWdub3JlUG9s
aWN5Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gRGVza3RvcFdlYlZpZXcuVXNl
UG9saWN5Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBTaWduYWxTcHkgewotICAgICAgICBpZDog
c3B5Ci0gICAgICAgIHRhcmdldDogd2ViVmlldwotICAgICAgICBzaWduYWxOYW1lOiAibG9hZFN1
Y2NlZWRlZCIKLSAgICB9Ci0KLSAgICBEZXNrdG9wV2ViVmlldyB7Ci0gICAgICAgIGlkOiBvdGhl
cldlYlZpZXcKLSAgICB9Ci0KLSAgICBTaWduYWxTcHkgewotICAgICAgICBpZDogb3RoZXJTcHkK
LSAgICAgICAgdGFyZ2V0OiBvdGhlcldlYlZpZXcKLSAgICAgICAgc2lnbmFsTmFtZTogImxvYWRT
dWNjZWVkZWQiCi0gICAgfQotCi0gICAgVGVzdENhc2UgewotICAgICAgICBuYW1lOiAiRGVza3Rv
cFdlYlZpZXdOYXZpZ2F0aW9uUG9saWN5Rm9yVXJsIgotCi0gICAgICAgIC8vIERlbGF5ZWQgd2lu
ZG93U2hvd24gdG8gd29ya2Fyb3VuZCBwcm9ibGVtcyB3aXRoIFF0NSBpbiBkZWJ1ZyBtb2RlLgot
ICAgICAgICB3aGVuOiBmYWxzZQotICAgICAgICBUaW1lciB7Ci0gICAgICAgICAgICBydW5uaW5n
OiBwYXJlbnQud2luZG93U2hvd24KLSAgICAgICAgICAgIHJlcGVhdDogZmFsc2UKLSAgICAgICAg
ICAgIGludGVydmFsOiAxCi0gICAgICAgICAgICBvblRyaWdnZXJlZDogcGFyZW50LndoZW4gPSB0
cnVlCi0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiB0ZXN0X3VzZVBvbGljeSgpIHsKLSAg
ICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QyLmh0
bWwiKSkKLSAgICAgICAgICAgIHNweS53YWl0KCkKLSAgICAgICAgICAgIHNweS5jbGVhcigpCi0g
ICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMCkKLSAgICAgICAgICAgIG1vdXNlQ2xpY2so
d2ViVmlldywgMTAwLCAxMDAsIFF0LkxlZnRCdXR0b24pCi0gICAgICAgICAgICBzcHkud2FpdCgp
Ci0gICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMSkKLSAgICAgICAgICAgIGNvbXBhcmUo
d2ViVmlldy50aXRsZSwgIlRlc3QgcGFnZSAxIikKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RfaWdub3JlUG9saWN5KCkgewotICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJl
c29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDIuaHRtbCIpKQotICAgICAgICAgICAgc3B5LndhaXQo
KQotICAgICAgICAgICAgc3B5LmNsZWFyKCkKLSAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50
LCAwKQotICAgICAgICAgICAgY29tcGFyZShvdGhlclNweS5jb3VudCwgMCkKLSAgICAgICAgICAg
IG1vdXNlQ2xpY2sod2ViVmlldywgMTAwLCAxMDAsIFF0Lk1pZGRsZUJ1dHRvbiwgUXQuQ29udHJv
bE1vZGlmaWVyKQotICAgICAgICAgICAgb3RoZXJTcHkud2FpdCgpCi0gICAgICAgICAgICBjb21w
YXJlKHNweS5jb3VudCwgMCkKLSAgICAgICAgICAgIGNvbXBhcmUob3RoZXJTcHkuY291bnQsIDEp
Ci0gICAgICAgICAgICBjb21wYXJlKG90aGVyV2ViVmlldy50aXRsZSwgIlRlc3QgcGFnZSAxIikK
LSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVx
dWVzdGVkLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYzczMzczNjc0ZTk5OTVhN2I4YTIyM2UwZWEyYzI4NzkyNWY0YjViCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNr
dG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sCkBAIC0wLDAgKzEsNzAgQEAK
K2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAz
LjAKK2ltcG9ydCBRdFdlYktpdFRlc3QgMS4wCisKK0l0ZW0geworICAgIERlc2t0b3BXZWJWaWV3
IHsKKyAgICAgICAgaWQ6IHdlYlZpZXcKKyAgICAgICAgd2lkdGg6IDIwMAorICAgICAgICBoZWln
aHQ6IDIwMAorICAgICAgICBvbk5hdmlnYXRpb25SZXF1ZXN0ZWQ6IHsKKyAgICAgICAgICAgIGlm
IChyZXF1ZXN0LmJ1dHRvbiA9PSBRdC5NaWRkbGVCdXR0b24gJiYgcmVxdWVzdC5tb2RpZmllcnMg
JiBRdC5Db250cm9sTW9kaWZpZXIpIHsKKyAgICAgICAgICAgICAgICBvdGhlcldlYlZpZXcubG9h
ZChyZXF1ZXN0LnVybCkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFjdGlvbiA9IFdlYlZpZXcu
SWdub3JlUmVxdWVzdAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgU2ln
bmFsU3B5IHsKKyAgICAgICAgaWQ6IHNweQorICAgICAgICB0YXJnZXQ6IHdlYlZpZXcKKyAgICAg
ICAgc2lnbmFsTmFtZTogImxvYWRTdWNjZWVkZWQiCisgICAgfQorCisgICAgRGVza3RvcFdlYlZp
ZXcgeworICAgICAgICBpZDogb3RoZXJXZWJWaWV3CisgICAgfQorCisgICAgU2lnbmFsU3B5IHsK
KyAgICAgICAgaWQ6IG90aGVyU3B5CisgICAgICAgIHRhcmdldDogb3RoZXJXZWJWaWV3CisgICAg
ICAgIHNpZ25hbE5hbWU6ICJsb2FkU3VjY2VlZGVkIgorICAgIH0KKworICAgIFRlc3RDYXNlIHsK
KyAgICAgICAgbmFtZTogIkRlc2t0b3BXZWJWaWV3TmF2aWdhdGlvblJlcXVlc3RlZCIKKworICAg
ICAgICAvLyBEZWxheWVkIHdpbmRvd1Nob3duIHRvIHdvcmthcm91bmQgcHJvYmxlbXMgd2l0aCBR
dDUgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgd2hlbjogZmFsc2UKKyAgICAgICAgVGltZXIgewor
ICAgICAgICAgICAgcnVubmluZzogcGFyZW50LndpbmRvd1Nob3duCisgICAgICAgICAgICByZXBl
YXQ6IGZhbHNlCisgICAgICAgICAgICBpbnRlcnZhbDogMQorICAgICAgICAgICAgb25UcmlnZ2Vy
ZWQ6IHBhcmVudC53aGVuID0gdHJ1ZQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVz
dF91c2VQb2xpY3koKSB7CisgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwo
Ii4uL2NvbW1vbi90ZXN0Mi5odG1sIikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAgICAg
ICAgICBzcHkuY2xlYXIoKQorICAgICAgICAgICAgbW91c2VDbGljayh3ZWJWaWV3LCAxMDAsIDEw
MCwgUXQuTGVmdEJ1dHRvbikKKyAgICAgICAgICAgIHNweS53YWl0KCkKKyAgICAgICAgICAgIGNv
bXBhcmUoc3B5LmNvdW50LCAxKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAi
VGVzdCBwYWdlIDEiKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9pZ25vcmVQ
b2xpY3koKSB7CisgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2Nv
bW1vbi90ZXN0Mi5odG1sIikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAgICAgICAgICBz
cHkuY2xlYXIoKQorICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCisgICAgICAgICAg
ICBjb21wYXJlKG90aGVyU3B5LmNvdW50LCAwKQorICAgICAgICAgICAgbW91c2VDbGljayh3ZWJW
aWV3LCAxMDAsIDEwMCwgUXQuTWlkZGxlQnV0dG9uLCBRdC5Db250cm9sTW9kaWZpZXIpCisgICAg
ICAgICAgICBvdGhlclNweS53YWl0KCkKKyAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAw
KQorICAgICAgICAgICAgY29tcGFyZShvdGhlclNweS5jb3VudCwgMSkKKyAgICAgICAgICAgIGNv
bXBhcmUob3RoZXJXZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEiKQorICAgICAgICB9CisgICAg
fQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9xbWx0ZXN0cy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwppbmRleCA3NTM1ZmI4MWU5MGNkMTQ1MDI3MGM4NmZj
ZDE5NzFkZGRlYjBlMjBmLi43MWI4NTQ5MzgzOWJiNjA4ZDRlMzU4NmIzZjk5NjgzM2M3OWY3MDlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL3FtbHRlc3RzLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwpAQCAtMjcsNSArMjcsNSBAQCBPVEhFUl9GSUxFUyAr
PSBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9saW5rSG92ZXJlZC5xbWwgXAogICAgIERlc2t0
b3BCZWhhdmlvci90c3RfbWVzc2FnaW5nLnFtbCBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9k
b3dubG9hZC5xbWwgXAotICAgIERlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblBvbGljeUZv
clVybC5xbWwgXAorICAgIERlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5x
bWwgXAogICAgIERlc2t0b3BCZWhhdmlvci90c3RfbG9hZEh0bWwucW1sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUG9saWN5Q2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwCmluZGV4
IDFjZjgzNGViOWE3ZjcwMDhjOGJhMWY4YTM2ZWU2YmY0NjliYzIxMTEuLjM1NGE1ZmNkZmQ3MDhm
ZGEzMWM5NmVmZGNiZDM3N2IyODJhN2FhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwCkBAIC0yNCw5ICsyNCw1MCBA
QAogI2luY2x1ZGUgIldLVVJMUXQuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKICNp
bmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgorI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0Pgog
I2luY2x1ZGUgPFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdLVVJMUmVxdWVz
dC5oPgogCitjbGFzcyBOYXZpZ2F0aW9uUmVxdWVzdCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBR
X09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVBRCB1cmwgQ09OU1RBTlQgRklOQUwp
CisgICAgUV9QUk9QRVJUWShpbnQgYnV0dG9uIFJFQUQgYnV0dG9uIENPTlNUQU5UIEZJTkFMKQor
ICAgIFFfUFJPUEVSVFkoaW50IG1vZGlmaWVycyBSRUFEIG1vZGlmaWVycyBDT05TVEFOVCBGSU5B
TCkKKyAgICBRX1BST1BFUlRZKGludCBhY3Rpb24gUkVBRCBhY3Rpb24gV1JJVEUgc2V0QWN0aW9u
IE5PVElGWSBhY3Rpb25DaGFuZ2VkIEZJTkFMKQorCitwdWJsaWM6CisgICAgTmF2aWdhdGlvblJl
cXVlc3QoY29uc3QgUVVybCYgdXJsLCBRdDo6TW91c2VCdXR0b24gYnV0dG9uLCBRdDo6S2V5Ym9h
cmRNb2RpZmllcnMgbW9kaWZpZXJzKQorICAgICAgICA6IG1fdXJsKHVybCkKKyAgICAgICAgLCBt
X2J1dHRvbihidXR0b24pCisgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQorICAgICAg
ICAsIG1fYWN0aW9uKFFRdWlja1dlYlZpZXc6OkFjY2VwdFJlcXVlc3QpCisgICAgeworICAgIH0K
KworICAgIFFVcmwgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KKyAgICBpbnQgYnV0dG9u
KCkgY29uc3QgeyByZXR1cm4gaW50KG1fYnV0dG9uKTsgfQorICAgIGludCBtb2RpZmllcnMoKSBj
b25zdCB7IHJldHVybiBpbnQobV9tb2RpZmllcnMpOyB9CisKKyAgICBpbnQgYWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gaW50KG1fYWN0aW9uKTsgfQorICAgIHZvaWQgc2V0QWN0aW9uKGludCBhY3Rp
b24pCisgICAgeworICAgICAgICBpZiAobV9hY3Rpb24gPT0gYWN0aW9uKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBtX2FjdGlvbiA9IGFjdGlvbjsKKyAgICAgICAgZW1pdCBhY3Rpb25D
aGFuZ2VkKCk7CisgICAgfQorCitRX1NJR05BTFM6CisgICAgdm9pZCBhY3Rpb25DaGFuZ2VkKCk7
CisKK3ByaXZhdGU6CisgICAgUVVybCBtX3VybDsKKyAgICBRdDo6TW91c2VCdXR0b24gbV9idXR0
b247CisgICAgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1fbW9kaWZpZXJzOworICAgIGludCBtX2Fj
dGlvbjsKKworfTsKKwogUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpRdFdlYlBhZ2VQb2xpY3lDbGll
bnQoV0tQYWdlUmVmIHBhZ2VSZWYsIFFRdWlja1dlYlZpZXcqIHdlYlZpZXcpCiAgICAgOiBtX3dl
YlZpZXcod2ViVmlldykKIHsKQEAgLTM5LDkgKzgwLDI1IEBAIFF0V2ViUGFnZVBvbGljeUNsaWVu
dDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBRUXVpY2tXZWJWaWV3
KiB3CiAgICAgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChwYWdlUmVmLCAmcG9saWN5Q2xpZW50
KTsKIH0KIAotUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpQb2xpY3lBY3Rpb24gUXRXZWJQYWdlUG9s
aWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFFVcmwmIHVy
bCwgUXQ6Ok1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBRdDo6S2V5Ym9hcmRNb2RpZmllcnMga2V5
Ym9hcmRNb2RpZmllcnMpCit2b2lkIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBRVXJsJiB1cmwsIFF0OjpNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgUXQ6OktleWJvYXJkTW9kaWZpZXJzIGtleWJvYXJkTW9kaWZpZXJzLCBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIpCiB7Ci0gICAgcmV0dXJuIG1fd2ViVmlldy0+ZF9m
dW5jKCktPm5hdmlnYXRpb25Qb2xpY3lGb3JVUkwodXJsLCBtb3VzZUJ1dHRvbiwga2V5Ym9hcmRN
b2RpZmllcnMpOworICAgIC8vIE5PVEU6IGV2ZW4gdGhvdWdoIHRoZSBDIEFQSSAoYW5kIHRoZSBX
ZWJLaXQyIElQQykgc3VwcG9ydHMgYW4gYXN5bmNocm9ub3VzIGFuc3dlciwgdGhpcyBpcyBub3Qg
Y3VycmVudGx5IHdvcmtpbmcuCisgICAgLy8gV2UgYXJlIGV4cGVjdGVkIHRvIGNhbGwgdGhlIGxp
c3RlbmVyIGltbWVkaWF0ZWx5LiBTZWUgdGhlIHBhdGNoIGZvciBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM3ODUuCisgICAgTmF2aWdhdGlvblJlcXVlc3QgbmF2aWdh
dGlvblJlcXVlc3QodXJsLCBtb3VzZUJ1dHRvbiwga2V5Ym9hcmRNb2RpZmllcnMpOworICAgIGVt
aXQgbV93ZWJWaWV3LT5uYXZpZ2F0aW9uUmVxdWVzdGVkKCZuYXZpZ2F0aW9uUmVxdWVzdCk7CisK
KyAgICBzd2l0Y2ggKFFRdWlja1dlYlZpZXc6Ok5hdmlnYXRpb25SZXF1ZXN0QWN0aW9uKG5hdmln
YXRpb25SZXF1ZXN0LmFjdGlvbigpKSkgeworICAgIGNhc2UgUVF1aWNrV2ViVmlldzo6SWdub3Jl
UmVxdWVzdDoKKyAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVySWdub3JlKGxpc3RlbmVyKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRUXVpY2tXZWJWaWV3OjpEb3dubG9hZFJlcXVlc3Q6
CisgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRUXVpY2tXZWJWaWV3OjpBY2NlcHRSZXF1ZXN0OiAvLyBGYWxs
LXRocm91Z2guCisgICAgZGVmYXVsdDoKKyAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNl
KGxpc3RlbmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogfQogCiBzdGF0aWMgaW5saW5lIFF0
V2ViUGFnZVBvbGljeUNsaWVudCogdG9RdFdlYlBhZ2VQb2xpY3lDbGllbnQoY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKQEAgLTgyLDE5ICsxMzksNyBAQCB2b2lkIFF0V2ViUGFnZVBvbGljeUNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZQog
ICAgIFdLVVJMUmVmIHJlcXVlc3RVUkwgPSBXS1VSTFJlcXVlc3RDb3B5VVJMKHJlcXVlc3QpOwog
ICAgIFFVcmwgcVVybCA9IFdLVVJMQ29weVFVcmwocmVxdWVzdFVSTCk7CiAgICAgV0tSZWxlYXNl
KHJlcXVlc3RVUkwpOwotCi0gICAgUG9saWN5QWN0aW9uIGFjdGlvbiA9IHRvUXRXZWJQYWdlUG9s
aWN5Q2xpZW50KGNsaWVudEluZm8pLT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHFV
cmwsIHRvUXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksIHRvUXRLZXlib2FyZE1vZGlmaWVycyht
b2RpZmllcnMpKTsKLSAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgIGNhc2UgVXNlOgotICAgICAg
ICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIERvd25sb2FkOgotICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJEb3dubG9hZChs
aXN0ZW5lcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSWdub3JlOgotICAgICAgICBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOwotICAgICAgICBicmVhazsKLSAgICB9
CisgICAgdG9RdFdlYlBhZ2VQb2xpY3lDbGllbnQoY2xpZW50SW5mbyktPmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24ocVVybCwgdG9RdE1vdXNlQnV0dG9uKG1vdXNlQnV0dG9uKSwgdG9R
dEtleWJvYXJkTW9kaWZpZXJzKG1vZGlmaWVycyksIGxpc3RlbmVyKTsKIH0KIAogdm9pZCBRdFdl
YlBhZ2VQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVl
c3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmLCBjb25z
dCB2b2lkKikKQEAgLTEyNCwzICsxNjksNCBAQCB2b2lkIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZgogICAg
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7CiB9CiAKKyNpbmNsdWRlICJRdFdl
YlBhZ2VQb2xpY3lDbGllbnQubW9jIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0V2ViUGFnZVBvbGljeUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0V2ViUGFnZVBvbGljeUNsaWVudC5oCmluZGV4IGU0MTFiZjZmMzgyOTlmZGYwNTg4ZmM0
YzU0NmM3YTlmMzkyM2I4MTIuLjkzNmE4NDdiMjkzN2QyYzI0ZjVlZTkwZjAxZjcwNmRkYzBhM2Yw
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xp
Y3lDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUG9s
aWN5Q2xpZW50LmgKQEAgLTMwLDE0ICszMCw4IEBAIGNsYXNzIFF0V2ViUGFnZVBvbGljeUNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgUXRXZWJQYWdlUG9saWN5Q2xpZW50KFdLUGFnZVJlZiwgUVF1aWNr
V2ViVmlldyopOwogCi0gICAgZW51bSBQb2xpY3lBY3Rpb24gewotICAgICAgICBVc2UsCi0gICAg
ICAgIERvd25sb2FkLAotICAgICAgICBJZ25vcmUKLSAgICB9OwotCiBwcml2YXRlOgotICAgIFBv
bGljeUFjdGlvbiBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFFVcmwmLCBR
dDo6TW91c2VCdXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVycyk7CisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFFVcmwmLCBRdDo6TW91c2VCdXR0b24sIFF0
OjpLZXlib2FyZE1vZGlmaWVycywgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmKTsKIAogICAgIC8v
IFdLUGFnZVBvbGljeUNsaWVudCBjYWxsYmFja3MuCiAgICAgc3RhdGljIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZp
Z2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBXS1VSTFJl
cXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116352</attachid>
            <date>2011-11-23 06:49:27 -0800</date>
            <delta_ts>2011-11-23 08:40:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72976-20111123115008.patch</filename>
            <type>text/plain</type>
            <size>18120</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjUwODAyMTk3NjUxMzI2
ZTgyYmUzMDNhNDU3YzU4MzU0Yzk2ZmQ3Yy4uM2RjZjE4YzdjYjQ5OGQ1OTljMTI0NDg4Mzk5ODgz
NmY2MGNiOWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDExLTExLTIyICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CiAKKyAgICAgICAgW1F0XSBbV0syXSBFeHBvc2Ugb25OYXZpZ2F0aW9uUmVxdWVzdGVkIHNpZ25h
bCBpbnN0ZWFkIG9mIGV4cGVjdGluZyBhIHNsb3QgYmUgZGVmaW5lZCBmcm9tIFFNTAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBlY3Rpbmcgc2xvdHMv
bWV0aG9kcyB0byBiZSBpbXBsZW1lbnRlZCBpbiBRTUwgaXNuJ3QgdmVyeSBpZGlvbWF0aWMgaW4K
KyAgICAgICAgY29tcGFyaXNvbiB3aXRoIHRoZSBhbHRlcm5hdGl2ZSBvZiBoYXZpbmcgYSBzaWdu
YWwuIFNvIHdlIG5vdyB1c2UgYSBzaWduYWwKKyAgICAgICAgZm9yIGhhbmRsaW5nIG5hdmlnYXRp
b24gcmVxdWVzdHMsIGFuZCBleHBvc2UgYSAncmVxdWVzdCcgb2JqZWN0IHdpdGggcmVsZXZhbnQK
KyAgICAgICAgbWV0YWRhdGEuIFRoZXJlJ3MgYWxzbyBhIHNldHRhYmxlIHByb3BlcnR5ICdhY3Rp
b24nIHVzZWQgdG8gaW5kaWNhdGUgd2hldGhlcgorICAgICAgICB0aGUgbmF2aWdhdGlvbiBzaG91
bGQgYmUgaWdub3JlZCBvciB0cmlnZ2VyIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGhlIHBhdHRl
cm4gc2lnbmFsIHdpdGggYW4gb2JqZWN0IHBhcmFtZXRlciB0aGF0IGNhbiBrZWVwIHRoZSByZXBs
eSBpcyBjb21tb24gaW4gUU1MLAorICAgICAgICBhbmQgdXNlZCBmb3IgZXhhbXBsZSBmb3IgbW91
c2Ugc2lnbmFscy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRp
b25SZXF1ZXN0ZWQucW1sOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25Qb2xpY3lG
b3JVcmwucW1sLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1s
dGVzdHMucHJvOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQu
Y3BwOgorICAgICAgICAoTmF2aWdhdGlvblJlcXVlc3Q6Ok5hdmlnYXRpb25SZXF1ZXN0KToKKyAg
ICAgICAgKE5hdmlnYXRpb25SZXF1ZXN0Ojp1cmwpOgorICAgICAgICAoTmF2aWdhdGlvblJlcXVl
c3Q6OmJ1dHRvbik6CisgICAgICAgIChOYXZpZ2F0aW9uUmVxdWVzdDo6bW9kaWZpZXJzKToKKyAg
ICAgICAgKE5hdmlnYXRpb25SZXF1ZXN0OjphY3Rpb24pOgorICAgICAgICAoTmF2aWdhdGlvblJl
cXVlc3Q6OnNldEFjdGlvbik6CisgICAgICAgIChRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VQb2xpY3lDbGllbnQuaDoKKworMjAxMS0xMS0yMiAgQ2FpbyBNYXJjZWxvIGRlIE9saXZl
aXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCiAgICAgICAgIFtRdF0g
W1dLMl0gTW92ZSBQYWdlUG9saWN5Q2xpZW50IHJlbGF0ZWQgY29kZSB0byBRdFdlYlBhZ2VQb2xp
Y3lDbGllbnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcyOTU5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwCmluZGV4IDUxM2U5OGU0OGJlMWViYzc3NmZmMDc1NWMwNGZhMjQ0OWFmYTc2MTIu
LmViZjg0MTc2MDg3NTE5MDIwMjI5YWY2ZmI5OGM3MTgyMzYxNmM4MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtMzQ0LDQ2
ICszNDQsMTcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0Vmlld0luQXR0YWNoZWRQ
cm9wZXJ0aWVzKFFPYmplY3QqIG9iamVjdCkKICAgICBhdHRhY2hlZC0+c2V0VmlldyhxKTsKIH0K
IAotc3RhdGljIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6UG9saWN5QWN0aW9uIHRvUG9saWN5QWN0
aW9uKFFRdWlja1dlYlZpZXc6Ok5hdmlnYXRpb25Qb2xpY3kgcG9saWN5KQotewotICAgIHN3aXRj
aCAocG9saWN5KSB7Ci0gICAgY2FzZSBRUXVpY2tXZWJWaWV3OjpVc2VQb2xpY3k6Ci0gICAgICAg
IHJldHVybiBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OlVzZTsKLSAgICBjYXNlIFFRdWlja1dlYlZp
ZXc6OkRvd25sb2FkUG9saWN5OgotICAgICAgICByZXR1cm4gUXRXZWJQYWdlUG9saWN5Q2xpZW50
OjpEb3dubG9hZDsKLSAgICBjYXNlIFFRdWlja1dlYlZpZXc6Oklnbm9yZVBvbGljeToKLSAgICAg
ICAgcmV0dXJuIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6SWdub3JlOwotICAgIH0KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpJZ25v
cmU7Ci19Ci0KLXN0YXRpYyBib29sIGhhc01ldGFNZXRob2QoUU9iamVjdCogb2JqZWN0LCBjb25z
dCBjaGFyKiBtZXRob2ROYW1lKQotewotICAgIGludCBtZXRob2RJbmRleCA9IG9iamVjdC0+bWV0
YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKFFNZXRhT2JqZWN0Ojpub3JtYWxpemVkU2lnbmF0dXJl
KG1ldGhvZE5hbWUpKTsKLSAgICByZXR1cm4gbWV0aG9kSW5kZXggPj0gMCAmJiBtZXRob2RJbmRl
eCA8IG9iamVjdC0+bWV0YU9iamVjdCgpLT5tZXRob2RDb3VudCgpOwotfQotCiAvKiEKLSAgICBc
cW1sbWV0aG9kIE5hdmlnYXRpb25Qb2xpY3kgRGVza3RvcFdlYlZpZXc6Om5hdmlnYXRpb25Qb2xp
Y3lGb3JVcmwodXJsLCBidXR0b24sIG1vZGlmaWVycykKKyAgICBccW1sc2lnbmFsIFdlYlZpZXc6
Om9uTmF2aWdhdGlvblJlcXVlc3RlZChyZXF1ZXN0KQogCi0gICAgVGhpcyBtZXRob2Qgc2hvdWxk
IGJlIGltcGxlbWVudGVkIGJ5IHRoZSB1c2VyIG9mIERlc2t0b3BXZWJWaWV3IGVsZW1lbnQuCisg
ICAgVGhpcyBzaWduYWwgaXMgZW1pdHRlZCBmb3IgZXZlcnkgbmF2aWdhdGlvbiByZXF1ZXN0LiBU
aGUgcmVxdWVzdCBvYmplY3QgY29udGFpbnMgdXJsLCBidXR0b24gYW5kIG1vZGlmaWVycyBwcm9w
ZXJ0aWVzCisgICAgZGVzY3JpYmluZyB0aGUgbmF2aWdhdGlvbiBhY3Rpb24sIGUuZy4gImEgbWlk
ZGxlIGNsaWNrIHdpdGggc2hpZnQga2V5IHByZXNzZWQgdG8gJ2h0dHA6Ly9xdC1wcm9qZWN0Lm9y
ZyciLgogCi0gICAgSXQgd2lsbCBiZSBjYWxsZWQgdG8gZGVjaWRlIHRoZSBwb2xpY3kgZm9yIGEg
bmF2aWdhdGlvbjogd2hldGhlciB0aGUgV2ViVmlldyBzaG91bGQgaWdub3JlIHRoZSBuYXZpZ2F0
aW9uLAotICAgIGNvbnRpbnVlIGl0IG9yIHN0YXJ0IGEgZG93bmxvYWQuIFRoZSByZXR1cm4gdmFs
dWUgbXVzdCBiZSBvbmUgb2YgdGhlIHBvbGljaWVzIGluIHRoZSBOYXZpZ2F0aW9uUG9saWN5IGVu
dW1lcmF0aW9uLgotKi8KLVF0V2ViUGFnZVBvbGljeUNsaWVudDo6UG9saWN5QWN0aW9uIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpuYXZpZ2F0aW9uUG9saWN5Rm9yVVJMKGNvbnN0IFFVcmwmIHVybCwg
UXQ6Ok1vdXNlQnV0dG9uIGJ1dHRvbiwgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1vZGlmaWVycykK
LXsKLSAgICBRX1EoUVF1aWNrV2ViVmlldyk7Ci0gICAgLy8gV2UgbmVlZCB0byBjaGVjayB0aGlz
IGZpcnN0IGJlY2F1c2UgaW52b2tlTWV0aG9kKCkgd2FybnMgaWYgdGhlIG1ldGhvZCBkb2Vzbid0
IGV4aXN0IGZvciB0aGUgb2JqZWN0LgotICAgIGlmICghaGFzTWV0YU1ldGhvZChxLCAibmF2aWdh
dGlvblBvbGljeUZvclVybChRVmFyaWFudCxRVmFyaWFudCxRVmFyaWFudCkiKSkKLSAgICAgICAg
cmV0dXJuIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6VXNlOworICAgIFRoZSBuYXZpZ2F0aW9uIHdp
bGwgYmUgYWNjZXB0ZWQgYnkgZGVmYXVsdC4gVG8gY2hhbmdlIHRoYXQsIG9uZSBjYW4gc2V0IHRo
ZSBhY3Rpb24gcHJvcGVydHkgdG8gV2ViVmlldy5JZ25vcmVSZXF1ZXN0IHRvIHJlamVjdAorICAg
IHRoZSByZXF1ZXN0IG9yIFdlYlZpZXcuRG93bmxvYWRSZXF1ZXN0IHRvIHRyaWdnZXIgYSBkb3du
bG9hZCBpbnN0ZWFkIG9mIG5hdmlnYXRpbmcgdG8gdGhlIHVybC4KIAotICAgIFFWYXJpYW50IHJl
dDsKLSAgICBpZiAoUU1ldGFPYmplY3Q6Omludm9rZU1ldGhvZChxLCAibmF2aWdhdGlvblBvbGlj
eUZvclVybCIsIFFfUkVUVVJOX0FSRyhRVmFyaWFudCwgcmV0KSwgUV9BUkcoUVZhcmlhbnQsIHVy
bCksIFFfQVJHKFFWYXJpYW50LCBidXR0b24pLCBRX0FSRyhRVmFyaWFudCwgUVZhcmlhbnQobW9k
aWZpZXJzKSkpKQotICAgICAgICByZXR1cm4gdG9Qb2xpY3lBY3Rpb24oc3RhdGljX2Nhc3Q8UVF1
aWNrV2ViVmlldzo6TmF2aWdhdGlvblBvbGljeT4ocmV0LnRvSW50KCkpKTsKLSAgICByZXR1cm4g
UXRXZWJQYWdlUG9saWN5Q2xpZW50OjpVc2U7Ci19CisgICAgVGhlIHJlcXVlc3Qgb2JqZWN0IGNh
bm5vdCBiZSB1c2VkIGFmdGVyIHRoZSBzaWduYWwgaGFuZGxlciBmdW5jdGlvbiBlbmRzLgorKi8K
IAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0UGFnZVByb3h5KFF0V2ViUGFnZVByb3h5
KiBwYWdlUHJveHkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3AuaAppbmRleCA3YmUyYTg5OTU4ZjFjZGEyODA0Nzk3ODllZmVjODcwYTJm
OTdlMjAyLi4xODE3ZDM5ODM5MjgwYTkxODc1ZWU5MDdkNTg3OGU4MTY5ODdjODI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAg
LTU2LDEzICs1NiwxNCBAQCBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3IDogcHVi
bGljIFFRdWlja0l0ZW0gewogICAgIFFfUFJPUEVSVFkoYm9vbCBjYW5SZWxvYWQgUkVBRCBjYW5S
ZWxvYWQgTk9USUZZIG5hdmlnYXRpb25TdGF0ZUNoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJU
WShRV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzIFJFQUQgcHJlZmVyZW5jZXMgQ09OU1RBTlQg
RklOQUwpCiAgICAgUV9QUk9QRVJUWShRUXVpY2tXZWJQYWdlKiBwYWdlIFJFQUQgcGFnZSBDT05T
VEFOVCBGSU5BTCkKLSAgICBRX0VOVU1TKE5hdmlnYXRpb25Qb2xpY3kpCisgICAgUV9FTlVNUyhO
YXZpZ2F0aW9uUmVxdWVzdEFjdGlvbikKICAgICBRX0VOVU1TKEVycm9yVHlwZSkKKwogcHVibGlj
OgotICAgIGVudW0gTmF2aWdhdGlvblBvbGljeSB7Ci0gICAgICAgIFVzZVBvbGljeSwKLSAgICAg
ICAgRG93bmxvYWRQb2xpY3ksCi0gICAgICAgIElnbm9yZVBvbGljeQorICAgIGVudW0gTmF2aWdh
dGlvblJlcXVlc3RBY3Rpb24geworICAgICAgICBBY2NlcHRSZXF1ZXN0LAorICAgICAgICBJZ25v
cmVSZXF1ZXN0LAorICAgICAgICBEb3dubG9hZFJlcXVlc3QKICAgICB9OwogCiAgICAgZW51bSBF
cnJvclR5cGUgewpAQCAtMTEyLDYgKzExMyw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGxpbmtI
b3ZlcmVkKGNvbnN0IFFVcmwmIHVybCwgY29uc3QgUVN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQg
dmlld01vZGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBuYXZpZ2F0aW9uU3RhdGVDaGFuZ2VkKCk7Cisg
ICAgdm9pZCBuYXZpZ2F0aW9uUmVxdWVzdGVkKFFPYmplY3QqIHJlcXVlc3QpOwogCiBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGdlb21ldHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmLCBjb25z
dCBRUmVjdEYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wX3AuaAppbmRleCBlMzIwYjM4YThkYTRhZDFkMDc1NTE4MzNiMWE5MTM4NzNh
MjFiZjYxLi5mYzhjMmNhZGI4NTMyYjRiZWQxZTQ0YTEyNTMxZGU2ZGVkOTI5NjcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5o
CkBAIC03MCw4ICs3MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIF9xX29uT3BlblBhbmVsRmluaXNo
ZWQoaW50IHJlc3VsdCk7CiAgICAgdm9pZCBfcV9vblZpc2libGVDaGFuZ2VkKCk7CiAKLSAgICBR
dFdlYlBhZ2VQb2xpY3lDbGllbnQ6OlBvbGljeUFjdGlvbiBuYXZpZ2F0aW9uUG9saWN5Rm9yVVJM
KGNvbnN0IFFVcmwmLCBRdDo6TW91c2VCdXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVycyk7Ci0K
ICAgICB2b2lkIGNob29zZUZpbGVzKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0
IFFTdHJpbmdMaXN0JiBzZWxlY3RlZEZpbGVOYW1lcywgUXRXZWJQYWdlVUlDbGllbnQ6OkZpbGVD
aG9vc2VyVHlwZSk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoY29uc3QgUVN0cmluZyYp
OwogICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oY29uc3QgUVN0cmluZyYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNr
dG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25Qb2xpY3lGb3JVcmwucW1sIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25h
dmlnYXRpb25Qb2xpY3lGb3JVcmwucW1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
YzBkMDg2MjY0NDk4ZWI0OWJhYjE4ZGNlMmI4MDdkOWM1ZmM5NzdkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUG9saWN5
Rm9yVXJsLnFtbAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLWltcG9ydCBRdFF1aWNr
IDIuMAotaW1wb3J0IFF0VGVzdCAxLjAKLWltcG9ydCBRdFdlYktpdCAzLjAKLWltcG9ydCBRdFdl
YktpdFRlc3QgMS4wCi0KLUl0ZW0gewotICAgIERlc2t0b3BXZWJWaWV3IHsKLSAgICAgICAgaWQ6
IHdlYlZpZXcKLSAgICAgICAgd2lkdGg6IDIwMAotICAgICAgICBoZWlnaHQ6IDIwMAotICAgICAg
ICBmdW5jdGlvbiBuYXZpZ2F0aW9uUG9saWN5Rm9yVXJsKHVybCwgYnV0dG9uLCBtb2RpZmllcnMp
IHsKLSAgICAgICAgICAgIGlmIChidXR0b24gPT0gUXQuTWlkZGxlQnV0dG9uICYmIG1vZGlmaWVy
cyAmIFF0LkNvbnRyb2xNb2RpZmllcikgewotICAgICAgICAgICAgICAgIG90aGVyV2ViVmlldy5s
b2FkKHVybCkKLSAgICAgICAgICAgICAgICByZXR1cm4gRGVza3RvcFdlYlZpZXcuSWdub3JlUG9s
aWN5Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gRGVza3RvcFdlYlZpZXcuVXNl
UG9saWN5Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBTaWduYWxTcHkgewotICAgICAgICBpZDog
c3B5Ci0gICAgICAgIHRhcmdldDogd2ViVmlldwotICAgICAgICBzaWduYWxOYW1lOiAibG9hZFN1
Y2NlZWRlZCIKLSAgICB9Ci0KLSAgICBEZXNrdG9wV2ViVmlldyB7Ci0gICAgICAgIGlkOiBvdGhl
cldlYlZpZXcKLSAgICB9Ci0KLSAgICBTaWduYWxTcHkgewotICAgICAgICBpZDogb3RoZXJTcHkK
LSAgICAgICAgdGFyZ2V0OiBvdGhlcldlYlZpZXcKLSAgICAgICAgc2lnbmFsTmFtZTogImxvYWRT
dWNjZWVkZWQiCi0gICAgfQotCi0gICAgVGVzdENhc2UgewotICAgICAgICBuYW1lOiAiRGVza3Rv
cFdlYlZpZXdOYXZpZ2F0aW9uUG9saWN5Rm9yVXJsIgotCi0gICAgICAgIC8vIERlbGF5ZWQgd2lu
ZG93U2hvd24gdG8gd29ya2Fyb3VuZCBwcm9ibGVtcyB3aXRoIFF0NSBpbiBkZWJ1ZyBtb2RlLgot
ICAgICAgICB3aGVuOiBmYWxzZQotICAgICAgICBUaW1lciB7Ci0gICAgICAgICAgICBydW5uaW5n
OiBwYXJlbnQud2luZG93U2hvd24KLSAgICAgICAgICAgIHJlcGVhdDogZmFsc2UKLSAgICAgICAg
ICAgIGludGVydmFsOiAxCi0gICAgICAgICAgICBvblRyaWdnZXJlZDogcGFyZW50LndoZW4gPSB0
cnVlCi0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiB0ZXN0X3VzZVBvbGljeSgpIHsKLSAg
ICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QyLmh0
bWwiKSkKLSAgICAgICAgICAgIHNweS53YWl0KCkKLSAgICAgICAgICAgIHNweS5jbGVhcigpCi0g
ICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMCkKLSAgICAgICAgICAgIG1vdXNlQ2xpY2so
d2ViVmlldywgMTAwLCAxMDAsIFF0LkxlZnRCdXR0b24pCi0gICAgICAgICAgICBzcHkud2FpdCgp
Ci0gICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMSkKLSAgICAgICAgICAgIGNvbXBhcmUo
d2ViVmlldy50aXRsZSwgIlRlc3QgcGFnZSAxIikKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RfaWdub3JlUG9saWN5KCkgewotICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJl
c29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDIuaHRtbCIpKQotICAgICAgICAgICAgc3B5LndhaXQo
KQotICAgICAgICAgICAgc3B5LmNsZWFyKCkKLSAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50
LCAwKQotICAgICAgICAgICAgY29tcGFyZShvdGhlclNweS5jb3VudCwgMCkKLSAgICAgICAgICAg
IG1vdXNlQ2xpY2sod2ViVmlldywgMTAwLCAxMDAsIFF0Lk1pZGRsZUJ1dHRvbiwgUXQuQ29udHJv
bE1vZGlmaWVyKQotICAgICAgICAgICAgb3RoZXJTcHkud2FpdCgpCi0gICAgICAgICAgICBjb21w
YXJlKHNweS5jb3VudCwgMCkKLSAgICAgICAgICAgIGNvbXBhcmUob3RoZXJTcHkuY291bnQsIDEp
Ci0gICAgICAgICAgICBjb21wYXJlKG90aGVyV2ViVmlldy50aXRsZSwgIlRlc3QgcGFnZSAxIikK
LSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVx
dWVzdGVkLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYzczMzczNjc0ZTk5OTVhN2I4YTIyM2UwZWEyYzI4NzkyNWY0YjViCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNr
dG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sCkBAIC0wLDAgKzEsNzAgQEAK
K2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAz
LjAKK2ltcG9ydCBRdFdlYktpdFRlc3QgMS4wCisKK0l0ZW0geworICAgIERlc2t0b3BXZWJWaWV3
IHsKKyAgICAgICAgaWQ6IHdlYlZpZXcKKyAgICAgICAgd2lkdGg6IDIwMAorICAgICAgICBoZWln
aHQ6IDIwMAorICAgICAgICBvbk5hdmlnYXRpb25SZXF1ZXN0ZWQ6IHsKKyAgICAgICAgICAgIGlm
IChyZXF1ZXN0LmJ1dHRvbiA9PSBRdC5NaWRkbGVCdXR0b24gJiYgcmVxdWVzdC5tb2RpZmllcnMg
JiBRdC5Db250cm9sTW9kaWZpZXIpIHsKKyAgICAgICAgICAgICAgICBvdGhlcldlYlZpZXcubG9h
ZChyZXF1ZXN0LnVybCkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFjdGlvbiA9IFdlYlZpZXcu
SWdub3JlUmVxdWVzdAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgU2ln
bmFsU3B5IHsKKyAgICAgICAgaWQ6IHNweQorICAgICAgICB0YXJnZXQ6IHdlYlZpZXcKKyAgICAg
ICAgc2lnbmFsTmFtZTogImxvYWRTdWNjZWVkZWQiCisgICAgfQorCisgICAgRGVza3RvcFdlYlZp
ZXcgeworICAgICAgICBpZDogb3RoZXJXZWJWaWV3CisgICAgfQorCisgICAgU2lnbmFsU3B5IHsK
KyAgICAgICAgaWQ6IG90aGVyU3B5CisgICAgICAgIHRhcmdldDogb3RoZXJXZWJWaWV3CisgICAg
ICAgIHNpZ25hbE5hbWU6ICJsb2FkU3VjY2VlZGVkIgorICAgIH0KKworICAgIFRlc3RDYXNlIHsK
KyAgICAgICAgbmFtZTogIkRlc2t0b3BXZWJWaWV3TmF2aWdhdGlvblJlcXVlc3RlZCIKKworICAg
ICAgICAvLyBEZWxheWVkIHdpbmRvd1Nob3duIHRvIHdvcmthcm91bmQgcHJvYmxlbXMgd2l0aCBR
dDUgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgd2hlbjogZmFsc2UKKyAgICAgICAgVGltZXIgewor
ICAgICAgICAgICAgcnVubmluZzogcGFyZW50LndpbmRvd1Nob3duCisgICAgICAgICAgICByZXBl
YXQ6IGZhbHNlCisgICAgICAgICAgICBpbnRlcnZhbDogMQorICAgICAgICAgICAgb25UcmlnZ2Vy
ZWQ6IHBhcmVudC53aGVuID0gdHJ1ZQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVz
dF91c2VQb2xpY3koKSB7CisgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwo
Ii4uL2NvbW1vbi90ZXN0Mi5odG1sIikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAgICAg
ICAgICBzcHkuY2xlYXIoKQorICAgICAgICAgICAgbW91c2VDbGljayh3ZWJWaWV3LCAxMDAsIDEw
MCwgUXQuTGVmdEJ1dHRvbikKKyAgICAgICAgICAgIHNweS53YWl0KCkKKyAgICAgICAgICAgIGNv
bXBhcmUoc3B5LmNvdW50LCAxKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAi
VGVzdCBwYWdlIDEiKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9pZ25vcmVQ
b2xpY3koKSB7CisgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2Nv
bW1vbi90ZXN0Mi5odG1sIikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAgICAgICAgICBz
cHkuY2xlYXIoKQorICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCisgICAgICAgICAg
ICBjb21wYXJlKG90aGVyU3B5LmNvdW50LCAwKQorICAgICAgICAgICAgbW91c2VDbGljayh3ZWJW
aWV3LCAxMDAsIDEwMCwgUXQuTWlkZGxlQnV0dG9uLCBRdC5Db250cm9sTW9kaWZpZXIpCisgICAg
ICAgICAgICBvdGhlclNweS53YWl0KCkKKyAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAw
KQorICAgICAgICAgICAgY29tcGFyZShvdGhlclNweS5jb3VudCwgMSkKKyAgICAgICAgICAgIGNv
bXBhcmUob3RoZXJXZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEiKQorICAgICAgICB9CisgICAg
fQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9xbWx0ZXN0cy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwppbmRleCA3NTM1ZmI4MWU5MGNkMTQ1MDI3MGM4NmZj
ZDE5NzFkZGRlYjBlMjBmLi43MWI4NTQ5MzgzOWJiNjA4ZDRlMzU4NmIzZjk5NjgzM2M3OWY3MDlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL3FtbHRlc3RzLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwpAQCAtMjcsNSArMjcsNSBAQCBPVEhFUl9GSUxFUyAr
PSBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9saW5rSG92ZXJlZC5xbWwgXAogICAgIERlc2t0
b3BCZWhhdmlvci90c3RfbWVzc2FnaW5nLnFtbCBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9k
b3dubG9hZC5xbWwgXAotICAgIERlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblBvbGljeUZv
clVybC5xbWwgXAorICAgIERlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5x
bWwgXAogICAgIERlc2t0b3BCZWhhdmlvci90c3RfbG9hZEh0bWwucW1sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUG9saWN5Q2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwCmluZGV4
IDJmYWZkZmUzYThmNmUwODg4NzdkYmQ1MThiZGYxMDZjZDJjMTYxOWIuLjBjMGNhNjRmZjQ3YWFl
ODQ1YjQzMDgyNmFlYjM1NjgyZjllMDg0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwCkBAIC0yNCw5ICsyNCw0OSBA
QAogI2luY2x1ZGUgIldLVVJMUXQuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKICNp
bmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgorI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0Pgog
I2luY2x1ZGUgPFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdLVVJMUmVxdWVz
dC5oPgogCitjbGFzcyBOYXZpZ2F0aW9uUmVxdWVzdCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBR
X09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVBRCB1cmwgQ09OU1RBTlQgRklOQUwp
CisgICAgUV9QUk9QRVJUWShpbnQgYnV0dG9uIFJFQUQgYnV0dG9uIENPTlNUQU5UIEZJTkFMKQor
ICAgIFFfUFJPUEVSVFkoaW50IG1vZGlmaWVycyBSRUFEIG1vZGlmaWVycyBDT05TVEFOVCBGSU5B
TCkKKyAgICBRX1BST1BFUlRZKGludCBhY3Rpb24gUkVBRCBhY3Rpb24gV1JJVEUgc2V0QWN0aW9u
IE5PVElGWSBhY3Rpb25DaGFuZ2VkIEZJTkFMKQorCitwdWJsaWM6CisgICAgTmF2aWdhdGlvblJl
cXVlc3QoY29uc3QgUVVybCYgdXJsLCBRdDo6TW91c2VCdXR0b24gYnV0dG9uLCBRdDo6S2V5Ym9h
cmRNb2RpZmllcnMgbW9kaWZpZXJzKQorICAgICAgICA6IG1fdXJsKHVybCkKKyAgICAgICAgLCBt
X2J1dHRvbihidXR0b24pCisgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQorICAgICAg
ICAsIG1fYWN0aW9uKFFRdWlja1dlYlZpZXc6OkFjY2VwdFJlcXVlc3QpCisgICAgeworICAgIH0K
KworICAgIFFVcmwgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KKyAgICBpbnQgYnV0dG9u
KCkgY29uc3QgeyByZXR1cm4gaW50KG1fYnV0dG9uKTsgfQorICAgIGludCBtb2RpZmllcnMoKSBj
b25zdCB7IHJldHVybiBpbnQobV9tb2RpZmllcnMpOyB9CisKKyAgICBpbnQgYWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gaW50KG1fYWN0aW9uKTsgfQorICAgIHZvaWQgc2V0QWN0aW9uKGludCBhY3Rp
b24pCisgICAgeworICAgICAgICBpZiAobV9hY3Rpb24gPT0gYWN0aW9uKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBtX2FjdGlvbiA9IGFjdGlvbjsKKyAgICAgICAgZW1pdCBhY3Rpb25D
aGFuZ2VkKCk7CisgICAgfQorCitRX1NJR05BTFM6CisgICAgdm9pZCBhY3Rpb25DaGFuZ2VkKCk7
CisKK3ByaXZhdGU6CisgICAgUVVybCBtX3VybDsKKyAgICBRdDo6TW91c2VCdXR0b24gbV9idXR0
b247CisgICAgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1fbW9kaWZpZXJzOworICAgIGludCBtX2Fj
dGlvbjsKK307CisKIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50
KFdLUGFnZVJlZiBwYWdlUmVmLCBRUXVpY2tXZWJWaWV3KiB3ZWJWaWV3KQogICAgIDogbV93ZWJW
aWV3KHdlYlZpZXcpCiB7CkBAIC0zOSw5ICs3OSwyNSBAQCBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6
OlF0V2ViUGFnZVBvbGljeUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgUVF1aWNrV2ViVmlldyog
dwogICAgIFdLUGFnZVNldFBhZ2VQb2xpY3lDbGllbnQocGFnZVJlZiwgJnBvbGljeUNsaWVudCk7
CiB9CiAKLVF0V2ViUGFnZVBvbGljeUNsaWVudDo6UG9saWN5QWN0aW9uIFF0V2ViUGFnZVBvbGlj
eUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBRVXJsJiB1cmws
IFF0OjpNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgUXQ6OktleWJvYXJkTW9kaWZpZXJzIGtleWJv
YXJkTW9kaWZpZXJzKQordm9pZCBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oY29uc3QgUVVybCYgdXJsLCBRdDo6TW91c2VCdXR0b24gbW91c2VC
dXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVycyBrZXlib2FyZE1vZGlmaWVycywgV0tGcmFtZVBv
bGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyKQogewotICAgIHJldHVybiBtX3dlYlZpZXctPmRfZnVu
YygpLT5uYXZpZ2F0aW9uUG9saWN5Rm9yVVJMKHVybCwgbW91c2VCdXR0b24sIGtleWJvYXJkTW9k
aWZpZXJzKTsKKyAgICAvLyBOT1RFOiBldmVuIHRob3VnaCB0aGUgQyBBUEkgKGFuZCB0aGUgV2Vi
S2l0MiBJUEMpIHN1cHBvcnRzIGFuIGFzeW5jaHJvbm91cyBhbnN3ZXIsIHRoaXMgaXMgbm90IGN1
cnJlbnRseSB3b3JraW5nLgorICAgIC8vIFdlIGFyZSBleHBlY3RlZCB0byBjYWxsIHRoZSBsaXN0
ZW5lciBpbW1lZGlhdGVseS4gU2VlIHRoZSBwYXRjaCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUzNzg1LgorICAgIE5hdmlnYXRpb25SZXF1ZXN0IG5hdmlnYXRp
b25SZXF1ZXN0KHVybCwgbW91c2VCdXR0b24sIGtleWJvYXJkTW9kaWZpZXJzKTsKKyAgICBlbWl0
IG1fd2ViVmlldy0+bmF2aWdhdGlvblJlcXVlc3RlZCgmbmF2aWdhdGlvblJlcXVlc3QpOworCisg
ICAgc3dpdGNoIChRUXVpY2tXZWJWaWV3OjpOYXZpZ2F0aW9uUmVxdWVzdEFjdGlvbihuYXZpZ2F0
aW9uUmVxdWVzdC5hY3Rpb24oKSkpIHsKKyAgICBjYXNlIFFRdWlja1dlYlZpZXc6Oklnbm9yZVJl
cXVlc3Q6CisgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lcklnbm9yZShsaXN0ZW5lcik7Cisg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIFFRdWlja1dlYlZpZXc6OkRvd25sb2FkUmVxdWVzdDoK
KyAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOworICAgICAg
ICByZXR1cm47CisgICAgY2FzZSBRUXVpY2tXZWJWaWV3OjpBY2NlcHRSZXF1ZXN0OgorICAgICAg
ICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiBzdGF0aWMgaW5saW5lIFF0V2Vi
UGFnZVBvbGljeUNsaWVudCogdG9RdFdlYlBhZ2VQb2xpY3lDbGllbnQoY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKQEAgLTg1LDIwICsxNDEsNyBAQCB2b2lkIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZQogICAg
IFdLVVJMUmVmIHJlcXVlc3RVUkwgPSBXS1VSTFJlcXVlc3RDb3B5VVJMKHJlcXVlc3QpOwogICAg
IFFVcmwgcVVybCA9IFdLVVJMQ29weVFVcmwocmVxdWVzdFVSTCk7CiAgICAgV0tSZWxlYXNlKHJl
cXVlc3RVUkwpOwotCi0gICAgUG9saWN5QWN0aW9uIGFjdGlvbiA9IHRvUXRXZWJQYWdlUG9saWN5
Q2xpZW50KGNsaWVudEluZm8pLT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHFVcmws
IHRvUXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksIHRvUXRLZXlib2FyZE1vZGlmaWVycyhtb2Rp
ZmllcnMpKTsKLSAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgIGNhc2UgVXNlOgotICAgICAgICBX
S0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwotICAgICAgICByZXR1cm47Ci0gICAg
Y2FzZSBEb3dubG9hZDoKLSAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlz
dGVuZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJZ25vcmU6Ci0gICAgICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lcklnbm9yZShsaXN0ZW5lcik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgdG9RdFdlYlBhZ2VQb2xpY3lDbGllbnQo
Y2xpZW50SW5mbyktPmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24ocVVybCwgdG9RdE1v
dXNlQnV0dG9uKG1vdXNlQnV0dG9uKSwgdG9RdEtleWJvYXJkTW9kaWZpZXJzKG1vZGlmaWVycyks
IGxpc3RlbmVyKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3Bv
bnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJl
ZiBsaXN0ZW5lciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKikKQEAgLTEyOCwzICsxNzEsNCBAQCB2
b2lkIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZgogICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0
ZW5lcik7CiB9CiAKKyNpbmNsdWRlICJRdFdlYlBhZ2VQb2xpY3lDbGllbnQubW9jIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVBvbGljeUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVBvbGljeUNsaWVudC5oCmlu
ZGV4IGU0MTFiZjZmMzgyOTlmZGYwNTg4ZmM0YzU0NmM3YTlmMzkyM2I4MTIuLjkzNmE4NDdiMjkz
N2QyYzI0ZjVlZTkwZjAxZjcwNmRkYzBhM2YwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUG9saWN5Q2xpZW50LmgKQEAgLTMwLDE0ICszMCw4IEBA
IGNsYXNzIFF0V2ViUGFnZVBvbGljeUNsaWVudCB7CiBwdWJsaWM6CiAgICAgUXRXZWJQYWdlUG9s
aWN5Q2xpZW50KFdLUGFnZVJlZiwgUVF1aWNrV2ViVmlldyopOwogCi0gICAgZW51bSBQb2xpY3lB
Y3Rpb24gewotICAgICAgICBVc2UsCi0gICAgICAgIERvd25sb2FkLAotICAgICAgICBJZ25vcmUK
LSAgICB9OwotCiBwcml2YXRlOgotICAgIFBvbGljeUFjdGlvbiBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKGNvbnN0IFFVcmwmLCBRdDo6TW91c2VCdXR0b24sIFF0OjpLZXlib2FyZE1v
ZGlmaWVycyk7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IFFVcmwmLCBRdDo6TW91c2VCdXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVycywgV0tGcmFtZVBv
bGljeUxpc3RlbmVyUmVmKTsKIAogICAgIC8vIFdLUGFnZVBvbGljeUNsaWVudCBjYWxsYmFja3Mu
CiAgICAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VS
ZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycywg
V0tFdmVudE1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5l
clJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
</data>
<flag name="review"
          id="115495"
          type_id="1"
          status="+"
          setter="vestbo"
    />
          </attachment>
      

    </bug>

</bugzilla>