<?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>14348</bug_id>
          
          <creation_ts>2007-06-23 15:57:21 -0700</creation_ts>
          <short_desc>Messing up the inspector by dragging an URL into it</short_desc>
          <delta_ts>2008-02-27 15:19:28 -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>Web Inspector (Deprecated)</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hannes Petri">mail</reporter>
          <assigned_to name="Matt Lilek">dev+webkit</assigned_to>
          <cc>aroben</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>6528</commentid>
    <comment_count>0</comment_count>
    <who name="Hannes Petri">mail</who>
    <bug_when>2007-06-23 15:57:21 -0700</bug_when>
    <thetext>If you bring up the Web Inspector, and then drag a URL into it, the page located at the URL will be loaded inside the inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6311</commentid>
    <comment_count>1</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2007-06-25 14:10:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/5283620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68609</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-01-29 10:57:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/5712808&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71168</commentid>
    <comment_count>3</comment_count>
      <attachid>19217</attachid>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-02-19 17:52:37 -0800</bug_when>
    <thetext>Created attachment 19217
implement drag destination delegate

Two questions:

- On Windows, do I actually need to implement the ref counting or does the Drosera approach work here as well (that code &amp; comments are just copied and pasted from Drosera) - I don&apos;t think I do, but I&apos;m not 100% sure.

- Which radar is the right one to put in the ChangeLogs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71257</commentid>
    <comment_count>4</comment_count>
      <attachid>19217</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-02-20 09:22:11 -0800</bug_when>
    <thetext>Comment on attachment 19217
implement drag destination delegate

Looks good.

+        * ChangeLog:

Should not be in there.

+#ifndef WebInspectorBaseDelegate_H

Should be _h, not _H.

+    // COM ref-counting isn&apos;t useful to us because we&apos;re in charge of the lifetime of the WebView.

Are you sure this is OK?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71910</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-02-25 14:35:13 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; - On Windows, do I actually need to implement the ref counting or does the
&gt; Drosera approach work here as well (that code &amp; comments are just copied and
&gt; pasted from Drosera) - I don&apos;t think I do, but I&apos;m not 100% sure.

The WebInspectorClient must not be deleted before a) inspectorDestroyed() is called, and b) the last reference to it is released. Currently we delete the WebInspectorClient within inspectorDestroyed(). There&apos;s nothing in this patch that guarantees that the last reference has been released by then, so I think we&apos;re playing with fire here. I think the simplest solution is to make a separate object that functions as the UI delegate for this new WebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71913</commentid>
    <comment_count>6</comment_count>
      <attachid>19217</attachid>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-02-25 14:37:52 -0800</bug_when>
    <thetext>Comment on attachment 19217
implement drag destination delegate

Clearing review flag based on Adam&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71964</commentid>
    <comment_count>7</comment_count>
      <attachid>19369</attachid>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-02-25 19:39:37 -0800</bug_when>
    <thetext>Created attachment 19369
revised patch

Revised to address Adam&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71965</commentid>
    <comment_count>8</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-02-25 19:43:50 -0800</bug_when>
    <thetext>Forgot to mention in the mac ChangeLog that removing this line:

166      [preferences setLoadsImagesAutomatically:YES];

is removing a dupe setting, not removing that setting :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72105</commentid>
    <comment_count>9</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-02-26 21:35:53 -0800</bug_when>
    <thetext>We should really do this with a policy delegate too to prevent loading any page that isn&apos;t the inspector.html file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72178</commentid>
    <comment_count>10</comment_count>
      <attachid>19369</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-02-27 13:55:21 -0800</bug_when>
    <thetext>Comment on attachment 19369
revised patch

+    , m_delegate(new WebInspectorDelegate())

I don&apos;t think there&apos;s any need for the WebInspectorClient to hold onto the delegate.

+class WebInspectorDelegate : public IWebUIDelegate {
+public:
+    WebInspectorDelegate();

Our COM classes normally have a private constructor/destructor and a static createInstance() method that returns a new instance with a refcount of 1. You should make this class follow that pattern.

Other than those comments, this looks good to me. r- so we can get those things fixed up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72181</commentid>
    <comment_count>11</comment_count>
      <attachid>19407</attachid>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-02-27 14:30:44 -0800</bug_when>
    <thetext>Created attachment 19407
revised patch round 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72182</commentid>
    <comment_count>12</comment_count>
      <attachid>19407</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-02-27 14:36:55 -0800</bug_when>
    <thetext>Comment on attachment 19407
revised patch round 2

+    if (FAILED(m_webView-&gt;setUIDelegate(WebInspectorDelegate::createInstance())))
+        return 0;

I think this is now leaking the delegate. On Windows, WebView retains its delegates (this doesn&apos;t match the Mac model, and we may change it someday). You should be able to fix the leak by doing this:

m_webView-&gt;setUIDelegate(COMPtr&lt;WebInspectorDelegate&gt;(AdoptCOM, WebInspectorDelegate::createInstance()).get())

+WebInspectorDelegate::WebInspectorDelegate()
+    :m_refCount(1)
+{
+}
+
+WebInspectorDelegate* WebInspectorDelegate::createInstance()
+{
+    WebInspectorDelegate* instance = new WebInspectorDelegate();
+    return instance;
+}

Normally our COM classes start out with a refcount of 0 and then we call AddRef inside the createInstance method.

You can also just say &quot;new WebInspectorDelegate&quot; without the parentheses.

r=me if you fix the issues above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72191</commentid>
    <comment_count>13</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-02-27 15:10:17 -0800</bug_when>
    <thetext>Landed in &lt;http://trac.webkit.org/projects/webkit/changeset/30631&gt; with the changes Adam mentioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72194</commentid>
    <comment_count>14</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-02-27 15:19:28 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; We should really do this with a policy delegate too to prevent loading any page
&gt; that isn&apos;t the inspector.html file.
&gt; 

Filed bug 17577.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19217</attachid>
            <date>2008-02-19 17:52:37 -0800</date>
            <delta_ts>2008-02-25 19:39:37 -0800</delta_ts>
            <desc>implement drag destination delegate</desc>
            <filename>Bug14348</filename>
            <type>text/plain</type>
            <size>22535</size>
            <attacher name="Matt Lilek">dev+webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IG1hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbWFjL0NoYW5nZUxvZwkocmV2aXNp
b24gMzA0MTYpCisrKyBtYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMDgtMDItMTkgIE1hdHQgTGlsZWsgIDx3ZWJraXRAbWF0dGxpbGVrLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMTQzNDg6IE1l
c3NpbmcgdXAgdGhlIGluc3BlY3RvciBieSBkcmFnZ2luZyBhbiBVUkwgaW50byBpdAorICAgICAg
ICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0OAorCisgICAgICAg
IEltcGxlbWVudCB0aGUgZHJhZyBkZXN0aW5hdGlvbiBkZWxlZ2F0ZS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5zcGVj
dG9yV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRv
d0NvbnRyb2xsZXIgd2ViVmlldzpkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJ
bmZvOl0pOgorCiAyMDA4LTAyLTE5ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBtYWMvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIG1hYy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQubW0JKHJldmlzaW9uIDMwNDE1KQorKysgbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUs
NyBAQAogCiAjaW1wb3J0IDxXZWJLaXQvRE9NQ29yZS5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUV4
dGVuc2lvbnMuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJVSURlbGVnYXRlLmg+CiAKICNpbXBvcnQg
PFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogCkBAIC0xNzUsNiArMTc2LDcgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JDbGllbnQ6OnVwZGF0ZVdpbmRvd1RpdAogICAgIFtfd2ViVmlldyBzZXRQcmVmZXJl
bmNlczpwcmVmZXJlbmNlc107CiAgICAgW193ZWJWaWV3IHNldERyYXdzQmFja2dyb3VuZDpOT107
CiAgICAgW193ZWJWaWV3IHNldFByb2hpYml0c01haW5GcmFtZVNjcm9sbGluZzpZRVNdOworICAg
IFtfd2ViVmlldyBzZXRVSURlbGVnYXRlOnNlbGZdOwogCiAgICAgW3ByZWZlcmVuY2VzIHJlbGVh
c2VdOwogCkBAIC00ODksNiArNDkxLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OnVwZGF0
ZVdpbmRvd1RpdAogfQogCiAjcHJhZ21hIG1hcmsgLQorI3ByYWdtYSBtYXJrIEFuaW1hdGlvbiBk
ZWxlZ2F0ZQogCiAtICh2b2lkKWFuaW1hdGlvbkRpZEVuZDooTlNBbmltYXRpb24qKWFuaW1hdGlv
bgogewpAQCAtNTAyLDYgKzUwNSwxMyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6dXBkYXRl
V2luZG93VGl0CiAgICAgfQogfQogCisjcHJhZ21hIG1hcmsgLQorI3ByYWdtYSBtYXJrIFVJIERl
bGVnYXRlCisKKy0gKHVuc2lnbmVkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFn
Z2luZ0luZm8KK3sKKyAgICByZXR1cm4gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTm9uZTsKK30K
IAogI3ByYWdtYSBtYXJrIC0KIApJbmRleDogd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3
aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAzMDQxNikKKysrIHdpbi9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAwOC0wMi0xOSAgTWF0dCBMaWxlayAgPHdlYmtpdEBt
YXR0bGlsZWsuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJ1ZyAxNDM0ODogTWVzc2luZyB1cCB0aGUgaW5zcGVjdG9yIGJ5IGRyYWdnaW5nIGFu
IFVSTCBpbnRvIGl0CisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MzQ4CisKKyAgICAgICAgQ3JlYXRlIGEgYmFzZSBkZWxlZ2F0ZSBmb3IgdGhlIGluc3Bl
Y3RvciBhbmQgaW1wbGVtZW50IHRoZSBkcmFnIGRlc3RpbmF0aW9uIGRlbGVnYXRlLgorCisgICAg
ICAgICogQ2hhbmdlTG9nOgorICAgICAgICAqIFdlYkluc3BlY3RvckJhc2VEZWxlZ2F0ZS5oOiBD
b3BpZWQgZnJvbSAuLi9XZWJLaXRUb29scy9Ecm9zZXJhL3dpbi9CYXNlRGVsZWdhdGUuaC4KKyAg
ICAgICAgKiBXZWJJbnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xp
ZW50OjpBZGRSZWYpOgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xpZW50OjpSZWxlYXNlKToKKyAg
ICAgICAgKFdlYkluc3BlY3RvckNsaWVudDo6Y3JlYXRlUGFnZSk6CisgICAgICAgIChkcmFnRGVz
dGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvKToKKyAgICAgICAgKiBXZWJJbnNwZWN0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2o6CisKIDIw
MDgtMDItMTggIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYWtlIERyb3NlcmEgd29yayBvbiBWaXN0YS4KSW5kZXg6IHdpbi9XZWJJbnNwZWN0b3JCYXNl
RGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3aW4vV2ViSW5zcGVjdG9yQmFzZURlbGVnYXRlLmgJ
KHJldmlzaW9uIDMwMzkzKQkoZnJvbSAuLi9XZWJLaXRUb29scy9Ecm9zZXJhL3dpbi9CYXNlRGVs
ZWdhdGUuaDozMDM5MykKKysrIHdpbi9XZWJJbnNwZWN0b3JCYXNlRGVsZWdhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDMxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisg
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQmFzZURlbGVnYXRl
X0gKKyNkZWZpbmUgQmFzZURlbGVnYXRlX0gKKworI2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4K
Kworc3RydWN0IElEYXRhT2JqZWN0Oworc3RydWN0IElQcm9wZXJ0eUJhZzsKK3N0cnVjdCBJV2Vi
VmlldzsKK3N0cnVjdCBJV2ViRnJhbWU7CitzdHJ1Y3QgSVdlYkVycm9yOworc3RydWN0IElXZWJV
UkxSZXF1ZXN0Oworc3RydWN0IElXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKKworY2xhc3Mg
QmFzZURlbGVnYXRlIDogcHVibGljIElXZWJGcmFtZUxvYWREZWxlZ2F0ZSwgcHVibGljIElXZWJV
SURlbGVnYXRlIHsKK3B1YmxpYzoKKyAgICAvLyBJVW5rbm93bgorICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZSgKKyAgICAgICAgLyogW2luXSAqLyBS
RUZJSUQsCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gdm9pZCoqKQorICAgICAgICB7IHJl
dHVybiBFX05PVElNUEw7IH07CisKKyAgICAvLyBJV2ViRnJhbWVMb2FkRGVsZWdhdGUKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkRmluaXNoTG9hZEZvckZyYW1lKCAK
KyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYkZy
YW1lKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9OworCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHdpbmRvd1NjcmlwdE9iamVjdEF2YWlsYWJsZSggCisgICAgICAgIC8qIFtp
bl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIEpTQ29udGV4dFJlZiwKKyAgICAg
ICAgLyogW2luXSAqLyBKU09iamVjdFJlZikgeyByZXR1cm4gRV9OT1RJTVBMOyB9OworCisgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2lu
XSAqLyBJV2ViRnJhbWUqKSB7IHJldHVybiBFX05PVElNUEw7IH07CisgICAgCisgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisg
ICAgICAgIC8qIFtpbl0gKi8gSVdlYkZyYW1lKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisgICAg
CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZEZhaWxQcm92aXNpb25h
bExvYWRXaXRoRXJyb3IoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAg
LyogW2luXSAqLyBJV2ViRXJyb3IqLAorICAgICAgICAvKiBbaW5dICovIElXZWJGcmFtZSopIHsg
cmV0dXJuIEVfTk9USU1QTDsgfQorICAgIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBkaWRDb21taXRMb2FkRm9yRnJhbWUoIAorICAgICAgICAvKiBbaW5dICovIElXZWJW
aWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBJV2ViRnJhbWUqKSB7IHJldHVybiBFX05PVElNUEw7
IH0KKyAgICAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkUmVjZWl2
ZVRpdGxlKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0g
Ki8gQlNUUiwKKyAgICAgICAgLyogW2luXSAqLyBJV2ViRnJhbWUqKSB7IHJldHVybiBFX05PVElN
UEw7IH0KKyAgICAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkUmVj
ZWl2ZUljb24oIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2lu
XSAqLyBPTEVfSEFORExFLAorICAgICAgICAvKiBbaW5dICovIElXZWJGcmFtZSopIHsgcmV0dXJu
IEVfTk9USU1QTDsgfQorICAgIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBkaWRGYWlsTG9hZFdpdGhFcnJvciggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAor
ICAgICAgICAvKiBbaW5dICovIElXZWJFcnJvciosCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYkZy
YW1lKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisgICAgCisgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lKCAKKyAg
ICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYkZyYW1l
KikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisgICAgCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTCggCisgICAgICAgIC8q
IFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIEJTVFIsCisgICAgICAgIC8q
IFtpbl0gKi8gZG91YmxlIC8qZGVsYXlTZWNvbmRzKi8sCisgICAgICAgIC8qIFtpbl0gKi8gREFU
RSwKKyAgICAgICAgLyogW2luXSAqLyBJV2ViRnJhbWUqKSB7IHJldHVybiBFX05PVElNUEw7IH0K
KyAgICAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkQ2FuY2VsQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAg
ICAgICAvKiBbaW5dICovIElXZWJGcmFtZSopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorICAgIAor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3aWxsQ2xvc2VGcmFtZSggCisg
ICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIElXZWJGcmFt
ZSopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorICAgIAorICAgIC8vIElXZWJVSURlbGVnYXRlCisg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNyZWF0ZVdlYlZpZXdXaXRoUmVx
dWVzdCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICov
IElXZWJVUkxSZXF1ZXN0KiwKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBJV2ViVmlldyoq
KSB7IHJldHVybiBFX05PVElNUEw7IH0KKyAgICAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgd2ViVmlld1Nob3coIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3Kikg
eyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgd2ViVmlld0Nsb3NlKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyopIHsgcmV0
dXJuIEVfTk9USU1QTDsgfQorICAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgd2ViVmlld0ZvY3VzKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyopIHsgcmV0dXJu
IEVfTk9USU1QTDsgfQorICAgIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSB3ZWJWaWV3VW5mb2N1cyggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqKSB7IHJldHVy
biBFX05PVElNUEw7IH0KKyAgICAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgd2ViVmlld0ZpcnN0UmVzcG9uZGVyKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyos
CisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gT0xFX0hBTkRMRSopIHsgcmV0dXJuIEVfTk9U
SU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG1ha2VGaXJz
dFJlc3BvbmRlciggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBb
aW5dICovIE9MRV9IQU5ETEUpIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFN0YXR1c1RleHQoIAorICAgICAgICAvKiBbaW5d
ICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBCU1RSKSB7IHJldHVybiBFX05PVElN
UEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3ZWJWaWV3U3Rh
dHVzVGV4dCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbcmV0
dmFsXVtvdXRdICovIEJTVFIqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3ZWJWaWV3QXJlVG9vbGJhcnNWaXNpYmxlKCAKKyAg
ICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8g
Qk9PTCopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHNldFRvb2xiYXJzVmlzaWJsZSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdl
YlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIEJPT0wpIHsgcmV0dXJuIEVfTk9USU1QTDsgfQor
CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZpZXdJc1N0YXR1c0Jh
clZpc2libGUoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW3Jl
dHZhbF1bb3V0XSAqLyBCT09MKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0U3RhdHVzQmFyVmlzaWJsZSggCisgICAgICAg
IC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIEJPT0wpIHsgcmV0dXJu
IEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdl
YlZpZXdJc1Jlc2l6YWJsZSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAg
ICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRSZXNpemFibGUoIAorICAgICAg
ICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBCT09MKSB7IHJldHVy
biBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRGcmFtZSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5d
ICovIFJFQ1QqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSB3ZWJWaWV3RnJhbWUoIAorICAgICAgICAvKiBbaW5dICovIElXZWJW
aWV3KiwKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBSRUNUKikgeyByZXR1cm4gRV9OT1RJ
TVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q29udGVu
dFJlY3QoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAq
LyBSRUNUKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgd2ViVmlld0NvbnRlbnRSZWN0KCAKKyAgICAgICAgLyogW2luXSAqLyBJ
V2ViVmlldyosCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gUkVDVCopIHsgcmV0dXJuIEVf
Tk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJ1bkph
dmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2UoIAorICAgICAgICAvKiBbaW5dICovIElXZWJW
aWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBCU1RSKSB7IHJldHVybiBFX05PVElNUEw7IH0KKwor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBydW5KYXZhU2NyaXB0Q29uZmly
bVBhbmVsV2l0aE1lc3NhZ2UoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAg
ICAgLyogW2luXSAqLyBCU1RSLAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqKSB7
IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0KCAKKyAgICAgICAgLyog
W2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gQlNUUiAvKm1lc3NhZ2UqLywK
KyAgICAgICAgLyogW2luXSAqLyBCU1RSIC8qZGVmYXVsdFRleHQqLywKKyAgICAgICAgLyogW3Jl
dHZhbF1bb3V0XSAqLyBCU1RSKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0
aE1lc3NhZ2UoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2lu
XSAqLyBCU1RSIC8qbWVzc2FnZSovLAorICAgICAgICAvKiBbaW5dICovIElXZWJGcmFtZSogIC8q
aW5pdGlhdGVkQnlGcmFtZSovLAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqKSB7
IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBydW5PcGVuUGFuZWxGb3JGaWxlQnV0dG9uV2l0aFJlc3VsdExpc3RlbmVyKCAKKyAgICAg
ICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoIAorICAgICAg
ICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBJUHJvcGVydHlCYWcq
LAorICAgICAgICAvKiBbaW5dICovIFVJTlQgLyptb2RpZmllckZsYWdzKi8pIHsgcmV0dXJuIEVf
Tk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNvbnRl
eHRNZW51SXRlbXNGb3JFbGVtZW50KCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisg
ICAgICAgIC8qIFtpbl0gKi8gSVByb3BlcnR5QmFnKiwKKyAgICAgICAgLyogW2luXSAqLyBPTEVf
SEFORExFLAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIE9MRV9IQU5ETEUqKSB7IHJldHVy
biBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB2
YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyos
CisgICAgICAgIC8qIFtpbl0gKi8gVUlOVCwKKyAgICAgICAgLyogW2luXSAqLyBCT09MLAorICAg
ICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKwor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzaG91bGRQZXJmb3JtQWN0aW9u
KCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gVUlO
VCAvKml0ZW1Db21tYW5kSUQqLywKKyAgICAgICAgLyogW2luXSAqLyBVSU5UIC8qc2VuZGVyKi8p
IHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm8oIAorICAgICAg
ICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBJRGF0YU9iamVjdCos
CisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKikg
eyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgd2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24oIAorICAgICAgICAvKiBbaW5d
ICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBXZWJEcmFnRGVzdGluYXRpb25BY3Rp
b24sCisgICAgICAgIC8qIFtpbl0gKi8gSURhdGFPYmplY3QqKSB7IHJldHVybiBFX05PVElNUEw7
IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkcmFnU291cmNlQWN0
aW9uTWFza0ZvclBvaW50KCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAg
IC8qIFtpbl0gKi8gTFBQT0lOVCwKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBXZWJEcmFn
U291cmNlQWN0aW9uKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKCAKKyAgICAg
ICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gV2ViRHJhZ1NvdXJj
ZUFjdGlvbiwKKyAgICAgICAgLyogW2luXSAqLyBMUFBPSU5ULAorICAgICAgICAvKiBbaW5dICov
IElEYXRhT2JqZWN0KikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoIAorICAgICAgICAv
KiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyB2b2lkKiAgLyppdGVtKi8s
CisgICAgICAgIC8qIFtpbl0gKi8gSVByb3BlcnR5QmFnKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9
CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaGFzQ3VzdG9tTWVudUlt
cGxlbWVudGF0aW9uKCAKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKikgeyByZXR1
cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
dHJhY2tDdXN0b21Qb3B1cE1lbnUoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAg
ICAgICAgLyogW2luXSAqLyBPTEVfSEFORExFLAorICAgICAgICAvKiBbaW5dICovIExQUE9JTlQp
IHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIG1lYXN1cmVDdXN0b21NZW51SXRlbSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZp
ZXcqLAorICAgICAgICAvKiBbaW5dICovIHZvaWQqICAvKm1lYXN1cmVJdGVtKi8pIHsgcmV0dXJu
IEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRy
YXdDdXN0b21NZW51SXRlbSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAg
ICAvKiBbaW5dICovIHZvaWQqICAvKmRyYXdJdGVtKi8pIHsgcmV0dXJuIEVfTk9USU1QTDsgfQor
CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFkZEN1c3RvbU1lbnVEcmF3
aW5nRGF0YSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5d
ICovIE9MRV9IQU5ETEUpIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIGNsZWFuVXBDdXN0b21NZW51RHJhd2luZ0RhdGEoIAorICAg
ICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBPTEVfSEFORExF
KSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBjYW5UYWtlRm9jdXMoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAg
ICAgICAgLyogW2luXSAqLyBCT09MIC8qZm9yd2FyZCovLAorICAgICAgICAvKiBbb3V0XSAqLyBC
T09MKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgdGFrZUZvY3VzKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisg
ICAgICAgIC8qIFtpbl0gKi8gQk9PTCAvKmZvcndhcmQqLykgeyByZXR1cm4gRV9OT1RJTVBMOyB9
CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVnaXN0ZXJVbmRvV2l0
aFRhcmdldCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlVuZG9UYXJnZXQqLAorICAgICAgICAv
KiBbaW5dICovIEJTVFIgLyphY3Rpb25OYW1lKi8sCisgICAgICAgIC8qIFtpbl0gKi8gSVVua25v
d24qICAvKmFjdGlvbkFyZyovKSB7IHJldHVybiBFX05PVElNUEw7IH0KKyAgICAKKyAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlQWxsQWN0aW9uc1dpdGhUYXJnZXQo
IAorICAgICAgICAvKiBbaW5dICovIElXZWJVbmRvVGFyZ2V0KikgeyByZXR1cm4gRV9OT1RJTVBM
OyB9CisgICAgCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEFjdGlv
blRpdGxlKCAKKyAgICAgICAgLyogW2luXSAqLyBCU1RSKSB7IHJldHVybiBFX05PVElNUEw7IH0K
KyAgICAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdW5kbyggdm9pZCkg
eyByZXR1cm4gRV9OT1RJTVBMOyB9CisgICAgCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHJlZG8oIHZvaWQpIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorICAgIAorICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjYW5VbmRvKCAKKyAgICAgICAgLyogW3Jl
dHZhbF1bb3V0XSAqLyBCT09MKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisgICAgCisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNhblJlZG8oIAorICAgICAgICAvKiBbcmV0
dmFsXVtvdXRdICovIEJPT0wqKSB7IHJldHVybiBFX05PVElNUEw7IH0KK307CisKKyNlbmRpZiAv
L0Jhc2VEZWxlZ2F0ZV9ICkluZGV4OiB3aW4vV2ViSW5zcGVjdG9yQmFzZURlbGVnYXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gd2luL1dlYkluc3BlY3RvckJhc2VEZWxlZ2F0ZS5oCShyZXZpc2lvbiAzMDM5
MykKKysrIHdpbi9XZWJJbnNwZWN0b3JCYXNlRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MjYsOCArMjYsOCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEJhc2VEZWxlZ2F0ZV9I
Ci0jZGVmaW5lIEJhc2VEZWxlZ2F0ZV9ICisjaWZuZGVmIFdlYkluc3BlY3RvckJhc2VEZWxlZ2F0
ZV9ICisjZGVmaW5lIFdlYkluc3BlY3RvckJhc2VEZWxlZ2F0ZV9ICiAKICNpbmNsdWRlIDxXZWJL
aXQvV2ViS2l0Lmg+CiAKQEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IElXZWJFcnJvcjsKIHN0cnVj
dCBJV2ViVVJMUmVxdWVzdDsKIHN0cnVjdCBJV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAK
LWNsYXNzIEJhc2VEZWxlZ2F0ZSA6IHB1YmxpYyBJV2ViRnJhbWVMb2FkRGVsZWdhdGUsIHB1Ymxp
YyBJV2ViVUlEZWxlZ2F0ZSB7CitjbGFzcyBXZWJJbnNwZWN0b3JCYXNlRGVsZWdhdGUgOiBwdWJs
aWMgSVdlYlVJRGVsZWdhdGUgewogcHVibGljOgogICAgIC8vIElVbmtub3duCiAgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFF1ZXJ5SW50ZXJmYWNlKApAQCAtNDcsNjcgKzQ3
LDYgQEAgcHVibGljOgogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIHZvaWQqKikKICAgICAg
ICAgeyByZXR1cm4gRV9OT1RJTVBMOyB9OwogCi0gICAgLy8gSVdlYkZyYW1lTG9hZERlbGVnYXRl
Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZEZpbmlzaExvYWRGb3JG
cmFtZSggCi0gICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAotICAgICAgICAvKiBbaW5dICov
IElXZWJGcmFtZSopIHsgcmV0dXJuIEVfTk9USU1QTDsgfTsKLQotICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSB3aW5kb3dTY3JpcHRPYmplY3RBdmFpbGFibGUoIAotICAgICAg
ICAvKiBbaW5dICovIElXZWJWaWV3KiwKLSAgICAgICAgLyogW2luXSAqLyBKU0NvbnRleHRSZWYs
Ci0gICAgICAgIC8qIFtpbl0gKi8gSlNPYmplY3RSZWYpIHsgcmV0dXJuIEVfTk9USU1QTDsgfTsK
LQotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKCAKLSAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCi0gICAgICAg
IC8qIFtpbl0gKi8gSVdlYkZyYW1lKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9OwotICAgIAotICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSggCi0gICAgICAgIC8qIFtpbl0gKi8gSVdlYlZp
ZXcqLAotICAgICAgICAvKiBbaW5dICovIElXZWJGcmFtZSopIHsgcmV0dXJuIEVfTk9USU1QTDsg
fQotICAgIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkV2l0aEVycm9yKCAKLSAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCi0g
ICAgICAgIC8qIFtpbl0gKi8gSVdlYkVycm9yKiwKLSAgICAgICAgLyogW2luXSAqLyBJV2ViRnJh
bWUqKSB7IHJldHVybiBFX05PVElNUEw7IH0KLSAgICAKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgZGlkQ29tbWl0TG9hZEZvckZyYW1lKCAKLSAgICAgICAgLyogW2luXSAq
LyBJV2ViVmlldyosCi0gICAgICAgIC8qIFtpbl0gKi8gSVdlYkZyYW1lKikgeyByZXR1cm4gRV9O
T1RJTVBMOyB9Ci0gICAgCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRp
ZFJlY2VpdmVUaXRsZSggCi0gICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAotICAgICAgICAv
KiBbaW5dICovIEJTVFIsCi0gICAgICAgIC8qIFtpbl0gKi8gSVdlYkZyYW1lKikgeyByZXR1cm4g
RV9OT1RJTVBMOyB9Ci0gICAgCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IGRpZFJlY2VpdmVJY29uKCAKLSAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCi0gICAgICAg
IC8qIFtpbl0gKi8gT0xFX0hBTkRMRSwKLSAgICAgICAgLyogW2luXSAqLyBJV2ViRnJhbWUqKSB7
IHJldHVybiBFX05PVElNUEw7IH0KLSAgICAKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgZGlkRmFpbExvYWRXaXRoRXJyb3IoIAotICAgICAgICAvKiBbaW5dICovIElXZWJW
aWV3KiwKLSAgICAgICAgLyogW2luXSAqLyBJV2ViRXJyb3IqLAotICAgICAgICAvKiBbaW5dICov
IElXZWJGcmFtZSopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQotICAgIAotICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFt
ZSggCi0gICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAotICAgICAgICAvKiBbaW5dICovIElX
ZWJGcmFtZSopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQotICAgIAotICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkwoIAotICAg
ICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKLSAgICAgICAgLyogW2luXSAqLyBCU1RSLAotICAg
ICAgICAvKiBbaW5dICovIGRvdWJsZSAvKmRlbGF5U2Vjb25kcyovLAotICAgICAgICAvKiBbaW5d
ICovIERBVEUsCi0gICAgICAgIC8qIFtpbl0gKi8gSVdlYkZyYW1lKikgeyByZXR1cm4gRV9OT1RJ
TVBMOyB9Ci0gICAgCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZENh
bmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoIAotICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3
KiwKLSAgICAgICAgLyogW2luXSAqLyBJV2ViRnJhbWUqKSB7IHJldHVybiBFX05PVElNUEw7IH0K
LSAgICAKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgd2lsbENsb3NlRnJh
bWUoIAotICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKLSAgICAgICAgLyogW2luXSAqLyBJ
V2ViRnJhbWUqKSB7IHJldHVybiBFX05PVElNUEw7IH0KLSAgICAKICAgICAvLyBJV2ViVUlEZWxl
Z2F0ZQogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjcmVhdGVXZWJWaWV3
V2l0aFJlcXVlc3QoIAogICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKQEAgLTMxMCw0ICsy
NDksNCBAQCBwdWJsaWM6CiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCopIHsgcmV0
dXJuIEVfTk9USU1QTDsgfQogfTsKIAotI2VuZGlmIC8vQmFzZURlbGVnYXRlX0gKKyNlbmRpZiAv
L1dlYkluc3BlY3RvckJhc2VEZWxlZ2F0ZV9ICkluZGV4OiB3aW4vV2ViSW5zcGVjdG9yQ2xpZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSB3aW4vV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAkocmV2aXNpb24g
MzA0MTUpCisrKyB3aW4vV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTAsNiArOTAsMTggQEAgV2ViSW5zcGVjdG9yQ2xpZW50Ojp+V2ViSW5zcGVjdG9yQ2xpZW50KAog
ICAgICAgICA6OkRlc3Ryb3lXaW5kb3cobV9od25kKTsKIH0KIAorVUxPTkcgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViSW5zcGVjdG9yQ2xpZW50OjpBZGRSZWYoKQoreworICAgIC8vIENPTSByZWYtY291
bnRpbmcgaXNuJ3QgdXNlZnVsIHRvIHVzIGJlY2F1c2Ugd2UncmUgaW4gY2hhcmdlIG9mIHRoZSBs
aWZldGltZSBvZiB0aGUgV2ViVmlldy4KKyAgICByZXR1cm4gMTsKK30KKworVUxPTkcgU1RETUVU
SE9EQ0FMTFRZUEUgV2ViSW5zcGVjdG9yQ2xpZW50OjpSZWxlYXNlKCkKK3sKKyAgICAvLyBDT00g
cmVmLWNvdW50aW5nIGlzbid0IHVzZWZ1bCB0byB1cyBiZWNhdXNlIHdlJ3JlIGluIGNoYXJnZSBv
ZiB0aGUgbGlmZXRpbWUgb2YgdGhlIFdlYlZpZXcuCisgICAgcmV0dXJuIDE7Cit9CisKIHZvaWQg
V2ViSW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0b3JEZXN0cm95ZWQoKQogewogICAgIGRlbGV0ZSB0
aGlzOwpAQCAtMTY1LDYgKzE3Nyw3IEBAIFBhZ2UqIFdlYkluc3BlY3RvckNsaWVudDo6Y3JlYXRl
UGFnZSgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgbV93ZWJWaWV3LT5zZXRQcm9oaWJpdHNN
YWluRnJhbWVTY3JvbGxpbmcoVFJVRSk7CisgICAgbV93ZWJWaWV3LT5zZXRVSURlbGVnYXRlKHRo
aXMpOwogCiAgICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPnZpZXdXaW5kb3cocmVpbnRlcnByZXRf
Y2FzdDxPTEVfSEFORExFKj4oJm1fd2ViVmlld0h3bmQpKSkpCiAgICAgICAgIHJldHVybiAwOwpA
QCAtMzQ1LDYgKzM1OCwxNiBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6b25XZWJWaWV3V2lu
ZG93CiAgICAgOjpTZXRXaW5kb3dQb3MobV93ZWJWaWV3SHduZCwgMCwgd2luZG93UG9zLT54LCB3
aW5kb3dQb3MtPnkgKyB3aW5kb3dQb3MtPmN5LCB3aW5kb3dQb3MtPmN4LCBkZWZhdWx0QXR0YWNo
ZWRIZWlnaHQsIFNXUF9OT1pPUkRFUik7CiB9CiAKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbyggCisgICAgICAgIC8qIFtp
bl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIElEYXRhT2JqZWN0KiwKKyAgICAg
ICAgLyogW3JldHZhbF1bb3V0XSAqLyBXZWJEcmFnRGVzdGluYXRpb25BY3Rpb24qIGFjdGlvbikK
K3sKKyAgICAqYWN0aW9uID0gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTm9uZTsKKworICAgIHJl
dHVybiBTX09LOworfQorCiBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXZWJJbnNwZWN0b3JXbmRQ
cm9jKEhXTkQgaHduZCwgVUlOVCBtc2csIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7
CiAgICAgV2ViSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQgPSByZWludGVycHJldF9jYXN0PFdlYklu
c3BlY3RvckNsaWVudCo+KDo6R2V0UHJvcChod25kLCBrV2ViSW5zcGVjdG9yUG9pbnRlclByb3Ap
KTsKSW5kZXg6IHdpbi9XZWJJbnNwZWN0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3aW4vV2Vi
SW5zcGVjdG9yQ2xpZW50LmgJKHJldmlzaW9uIDMwNDE1KQorKysgd2luL1dlYkluc3BlY3RvckNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaWZuZGVmIFdlYkluc3Bl
Y3RvckNsaWVudF9oCiAjZGVmaW5lIFdlYkluc3BlY3RvckNsaWVudF9oCiAKKyNpbmNsdWRlICJX
ZWJJbnNwZWN0b3JCYXNlRGVsZWdhdGUuaCIKKwogI2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtU3RyaW5nLmg+CkBAIC0zOCw3ICs0MCw3IEBACiBjbGFzcyBXZWJOb2RlSGlnaGxp
Z2h0OwogY2xhc3MgV2ViVmlldzsKIAotY2xhc3MgV2ViSW5zcGVjdG9yQ2xpZW50IDogcHVibGlj
IFdlYkNvcmU6Okluc3BlY3RvckNsaWVudCB7CitjbGFzcyBXZWJJbnNwZWN0b3JDbGllbnQgOiBw
dWJsaWMgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50LCBwdWJsaWMgV2ViSW5zcGVjdG9yQmFzZURl
bGVnYXRlIHsKIHB1YmxpYzoKICAgICBXZWJJbnNwZWN0b3JDbGllbnQoV2ViVmlldyopOwogCkBA
IC02NCw2ICs2NiwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIH5XZWJJbnNwZWN0b3JDbGll
bnQoKTsKIAorICAgIC8vIElVbmtub3duCisgICAgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRk
UmVmKCk7CisgICAgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpOworCiAgICAgdm9p
ZCB1cGRhdGVXaW5kb3dUaXRsZSgpOwogCiAgICAgTFJFU1VMVCBvbkdldE1pbk1heEluZm8oV1BB
UkFNLCBMUEFSQU0pOwpAQCAtNzIsNiArNzgsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgb25X
ZWJWaWV3V2luZG93UG9zQ2hhbmdpbmcoV1BBUkFNLCBMUEFSQU0pOwogCisgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFn
Z2luZ0luZm8oIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2lu
XSAqLyBJRGF0YU9iamVjdCosCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uKik7CisKICAgICBXZWJWaWV3KiBtX2luc3BlY3RlZFdlYlZpZXc7CiAg
ICAgSFdORCBtX2luc3BlY3RlZFdlYlZpZXdId25kOwogICAgIEhXTkQgbV9od25kOwpJbmRleDog
d2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3aW4vV2ViS2l0
LnZjcHJvai9XZWJLaXQudmNwcm9qCShyZXZpc2lvbiAzMDQxNSkKKysrIHdpbi9XZWJLaXQudmNw
cm9qL1dlYktpdC52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ3aW5kb3dzLTEyNTEiPz4NCis8P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQ
cm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOCwwMCINCisJVmVyc2lvbj0iOC4w
MCINCiAJTmFtZT0iV2ViS2l0Ig0KIAlQcm9qZWN0R1VJRD0iezA2NjJBOEE5LTgyQTMtNDYzOC05
N0Q4LUVDNDI1RDhEODdDOX0iDQogCVJvb3ROYW1lc3BhY2U9IldlYktpdCINCkBAIC00MzgsNiAr
NDM4LDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFdlYkluc3BlY3RvckJhc2VEZWxlZ2F0ZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViSW5zcGVjdG9yQ2xpZW50LmgiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19369</attachid>
            <date>2008-02-25 19:39:37 -0800</date>
            <delta_ts>2008-02-27 14:30:44 -0800</delta_ts>
            <desc>revised patch</desc>
            <filename>Bug14348v2</filename>
            <type>text/plain</type>
            <size>21100</size>
            <attacher name="Matt Lilek">dev+webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IG1hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbWFjL0NoYW5nZUxvZwkocmV2aXNp
b24gMzA1ODUpCisrKyBtYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMDgtMDItMjUgIE1hdHQgTGlsZWsgIDx3ZWJraXRAbWF0dGxpbGVrLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMTQzNDg6IE1l
c3NpbmcgdXAgdGhlIGluc3BlY3RvciBieSBkcmFnZ2luZyBhbiBVUkwgaW50byBpdAorICAgICAg
ICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTI4MzYyMD4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxl
ciBpbml0XSk6CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgd2ViVmll
dzpkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOl0pOgorCiAyMDA4LTAy
LTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtLgpJbmRleDogbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBtYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCShy
ZXZpc2lvbiAzMDU4MykKKysrIG1hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0L0RP
TUNvcmUuaD4KICNpbXBvcnQgPFdlYktpdC9ET01FeHRlbnNpb25zLmg+CisjaW1wb3J0IDxXZWJL
aXQvVUlEZWxlZ2F0ZS5oPgogCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIApA
QCAtMTYzLDcgKzE2NCw2IEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50Ojp1cGRhdGVXaW5kb3dU
aXQKICAgICBbcHJlZmVyZW5jZXMgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6WUVTXTsK
ICAgICBbcHJlZmVyZW5jZXMgc2V0SmF2YVNjcmlwdEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVy
ZW5jZXMgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXM6WUVTXTsKLSAgICBbcHJlZmVyZW5jZXMgc2V0
TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldFBsdWdJ
bnNFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0SmF2YUVuYWJsZWQ6Tk9dOwogICAg
IFtwcmVmZXJlbmNlcyBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQ6Tk9dOwpAQCAtMTc1LDYgKzE3
NSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50Ojp1cGRhdGVXaW5kb3dUaXQKICAgICBbX3dl
YlZpZXcgc2V0UHJlZmVyZW5jZXM6cHJlZmVyZW5jZXNdOwogICAgIFtfd2ViVmlldyBzZXREcmF3
c0JhY2tncm91bmQ6Tk9dOwogICAgIFtfd2ViVmlldyBzZXRQcm9oaWJpdHNNYWluRnJhbWVTY3Jv
bGxpbmc6WUVTXTsKKyAgICBbX3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpzZWxmXTsKIAogICAgIFtw
cmVmZXJlbmNlcyByZWxlYXNlXTsKIApAQCAtNDg5LDYgKzQ5MCw3IEBAIHZvaWQgV2ViSW5zcGVj
dG9yQ2xpZW50Ojp1cGRhdGVXaW5kb3dUaXQKIH0KIAogI3ByYWdtYSBtYXJrIC0KKyNwcmFnbWEg
bWFyayBBbmltYXRpb24gZGVsZWdhdGUKIAogLSAodm9pZClhbmltYXRpb25EaWRFbmQ6KE5TQW5p
bWF0aW9uKilhbmltYXRpb24KIHsKQEAgLTUwMiw2ICs1MDQsMTMgQEAgdm9pZCBXZWJJbnNwZWN0
b3JDbGllbnQ6OnVwZGF0ZVdpbmRvd1RpdAogICAgIH0KIH0KIAorI3ByYWdtYSBtYXJrIC0KKyNw
cmFnbWEgbWFyayBVSSBkZWxlZ2F0ZQorCistICh1bnNpZ25lZCl3ZWJWaWV3OihXZWJWaWV3ICop
c2VuZGVyIGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86KGlkIDxOU0Ry
YWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCit7CisgICAgcmV0dXJuIFdlYkRyYWdEZXN0aW5hdGlv
bkFjdGlvbk5vbmU7Cit9CiAKICNwcmFnbWEgbWFyayAtCiAKSW5kZXg6IHdpbi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMzA1ODUpCisrKyB3aW4vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzMgQEAKKzIwMDgtMDItMjUgIE1hdHQg
TGlsZWsgIDx3ZWJraXRAbWF0dGxpbGVrLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMTQzNDg6IE1lc3NpbmcgdXAgdGhlIGluc3BlY3Rv
ciBieSBkcmFnZ2luZyBhbiBVUkwgaW50byBpdAorICAgICAgICBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTI4MzYy
MD4KKworICAgICAgICBBZGQgYSBuZXcgY2xhc3MgdG8gaGFuZGxlIHRoZSBJbnNwZWN0b3IncyBk
ZWxlZ2F0ZSBjYWxscy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJJbnNwZWN0b3JDbGllbnQ6OldlYkluc3BlY3RvckNsaWVu
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3JDbGllbnQ6OmNyZWF0ZVBhZ2UpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckRlbGVnYXRlLmNwcDogQWRkZWQuCisgICAgICAgICg6bV9yZWZD
b3VudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6QWRkUmVmKToKKyAgICAgICAg
KFdlYkluc3BlY3RvckRlbGVnYXRlOjpSZWxlYXNlKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRl
bGVnYXRlOjpkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JEZWxlZ2F0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpRdWVyeUludGVyZmFjZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3JEZWxlZ2F0ZTo6Y3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0KToKKyAgICAgICAgKFdl
Ykluc3BlY3RvckRlbGVnYXRlOjp3ZWJWaWV3U2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3JE
ZWxlZ2F0ZTo6d2ViVmlld0Nsb3NlKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjp3
ZWJWaWV3Rm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OndlYlZpZXdVbmZv
Y3VzKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjp3ZWJWaWV3Rmlyc3RSZXNwb25k
ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6Om1ha2VGaXJzdFJlc3BvbmRlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6c2V0U3RhdHVzVGV4dCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6d2ViVmlld1N0YXR1c1RleHQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yRGVsZWdhdGU6OndlYlZpZXdBcmVUb29sYmFyc1Zpc2libGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yRGVsZWdhdGU6OnNldFRvb2xiYXJzVmlzaWJsZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3JEZWxlZ2F0ZTo6d2ViVmlld0lzU3RhdHVzQmFyVmlzaWJsZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6c2V0U3RhdHVzQmFyVmlzaWJsZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3JEZWxlZ2F0ZTo6d2ViVmlld0lzUmVzaXphYmxlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3RvckRlbGVnYXRlOjpzZXRSZXNpemFibGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdh
dGU6OnNldEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjp3ZWJWaWV3RnJh
bWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnNldENvbnRlbnRSZWN0KToKKyAg
ICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjp3ZWJWaWV3Q29udGVudFJlY3QpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnJ1bkphdmFTY3JpcHRDb25maXJt
UGFuZWxXaXRoTWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6cnVuSmF2
YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3JE
ZWxlZ2F0ZTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2UpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnJ1bk9wZW5QYW5lbEZvckZpbGVCdXR0b25XaXRoUmVz
dWx0TGlzdGVuZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6Om1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpjb250ZXh0TWVu
dUl0ZW1zRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6dmFsaWRh
dGVVc2VySW50ZXJmYWNlSXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6c2hv
dWxkUGVyZm9ybUFjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6d2lsbFBl
cmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdh
dGU6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
RGVsZWdhdGU6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3JEZWxlZ2F0ZTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yRGVsZWdhdGU6Omhhc0N1c3RvbU1lbnVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6dHJhY2tDdXN0b21Qb3B1cE1lbnUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yRGVsZWdhdGU6Om1lYXN1cmVDdXN0b21NZW51SXRlbSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3JEZWxlZ2F0ZTo6ZHJhd0N1c3RvbU1lbnVJdGVtKToKKyAgICAgICAgKFdlYkluc3Bl
Y3RvckRlbGVnYXRlOjphZGRDdXN0b21NZW51RHJhd2luZ0RhdGEpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yRGVsZWdhdGU6OmNsZWFuVXBDdXN0b21NZW51RHJhd2luZ0RhdGEpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yRGVsZWdhdGU6OmNhblRha2VGb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3JEZWxlZ2F0ZTo6dGFrZUZvY3VzKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpy
ZWdpc3RlclVuZG9XaXRoVGFyZ2V0KToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpy
ZW1vdmVBbGxBY3Rpb25zV2l0aFRhcmdldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0
ZTo6c2V0QWN0aW9uVGl0bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnVuZG8p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnJlZG8pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yRGVsZWdhdGU6OmNhblVuZG8pOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6
OmNhblJlZG8pOgorICAgICAgICAqIFdlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvajoKKwogMjAw
OC0wMi0yNSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBw
bHVnaW4tcmVsYXRlZCBtZXRob2RzIHRvIFdlYkZyYW1lTG9hZGVyQ2xpZW50CkluZGV4OiB3aW4v
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3aW4v
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gMzA1ODMpCisr
KyB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYklu
c3BlY3RvckNsaWVudC5oIgogCi0jaW5jbHVkZSAiV2ViSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViTXV0YWJsZVVSTFJlcXVlc3QuaCIKICNpbmNs
dWRlICJXZWJOb2RlSGlnaGxpZ2h0LmgiCkBAIC02OSw2ICs2OCw3IEBAIHN0YXRpYyBDRkJ1bmRs
ZVJlZiBnZXRXZWJLaXRCdW5kbGUoKQogCiBXZWJJbnNwZWN0b3JDbGllbnQ6OldlYkluc3BlY3Rv
ckNsaWVudChXZWJWaWV3KiB3ZWJWaWV3KQogICAgIDogbV9pbnNwZWN0ZWRXZWJWaWV3KHdlYlZp
ZXcpCisgICAgLCBtX2RlbGVnYXRlKG5ldyBXZWJJbnNwZWN0b3JEZWxlZ2F0ZSgpKQogICAgICwg
bV9od25kKDApCiAgICAgLCBtX3dlYlZpZXdId25kKDApCiAgICAgLCBtX29yaWdpbmFsV2ViVmll
d1duZFByb2MoMCkKQEAgLTEyMyw2ICsxMjMsOSBAQCBQYWdlKiBXZWJJbnNwZWN0b3JDbGllbnQ6
OmNyZWF0ZVBhZ2UoKQogICAgIGlmIChGQUlMRUQobV93ZWJWaWV3LT5pbml0V2l0aEZyYW1lKHJl
Y3QsIDAsIDApKSkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAoRkFJTEVEKG1fd2ViVmll
dy0+c2V0VUlEZWxlZ2F0ZShtX2RlbGVnYXRlKSkpCisgICAgICAgIHJldHVybiAwOworCiAgICAg
Ly8gS2VlcCBwcmVmZXJlbmNlcyBzZXBhcmF0ZSBmcm9tIHRoZSByZXN0IG9mIHRoZSBjbGllbnQs
IG1ha2luZyBzdXJlIHdlIGFyZSB1c2luZyBleHBlY3RlZCBwcmVmZXJlbmNlIHZhbHVlcy4KICAg
ICAvLyBPbmUgcmVhc29uIHRoaXMgaXMgZ29vZCBpcyB0aGF0IGl0IGtlZXBzIHRoZSBpbnNwZWN0
b3Igb3V0IG9mIGhpc3RvcnkgdmlhICJwcml2YXRlIGJyb3dzaW5nIi4KICAgICAvLyBGSVhNRTog
SXQncyBjcmF6eSB0aGF0IHdlIGhhdmUgdG8gZG8gdGhpcyBzb25nIGFuZCBkYW5jZSB0byBlbmQg
dXAgd2l0aApJbmRleDogd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHdpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaAkocmV2
aXNpb24gMzA1ODMpCisrKyB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAjaW5jbHVkZSA8d2luZG93cy5oPgogCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yRGVsZWdhdGUu
aCIKKwogY2xhc3MgV2ViTm9kZUhpZ2hsaWdodDsKIGNsYXNzIFdlYlZpZXc7CiAKQEAgLTc0LDYg
Kzc2LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlZpZXcqIG1faW5zcGVjdGVkV2ViVmlldzsKICAg
ICBIV05EIG1faW5zcGVjdGVkV2ViVmlld0h3bmQ7CisgICAgV2ViSW5zcGVjdG9yRGVsZWdhdGUq
IG1fZGVsZWdhdGU7CiAgICAgSFdORCBtX2h3bmQ7CiAgICAgQ09NUHRyPFdlYlZpZXc+IG1fd2Vi
VmlldzsKICAgICBIV05EIG1fd2ViVmlld0h3bmQ7CkluZGV4OiB3aW4vV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yRGVsZWdhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdpbi9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JEZWxlZ2F0ZS5jcHAJKHJldmlzaW9uIDApCisrKyB3aW4vV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yRGVsZWdhdGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hdHQgTGlsZWsgPHdlYmtpdEBtYXR0bGls
ZWsuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JEZWxl
Z2F0ZS5oIgorCitXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6V2ViSW5zcGVjdG9yRGVsZWdhdGUoKQor
ICAgIDptX3JlZkNvdW50KDApCit7Cit9CisKK1VMT05HIFNURE1FVEhPRENBTExUWVBFIFdlYklu
c3BlY3RvckRlbGVnYXRlOjpBZGRSZWYoKQoreworICAgIHJldHVybiArK21fcmVmQ291bnQ7Cit9
CisKK1VMT05HIFNURE1FVEhPRENBTExUWVBFIFdlYkluc3BlY3RvckRlbGVnYXRlOjpSZWxlYXNl
KCkKK3sKKyAgICBVTE9ORyBuZXdSZWYgPSAtLW1fcmVmQ291bnQ7CisgICAgaWYgKCFuZXdSZWYp
CisgICAgICAgIGRlbGV0ZSh0aGlzKTsKKworICAgIHJldHVybiBuZXdSZWY7Cit9CisKK0hSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViSW5zcGVjdG9yRGVsZWdhdGU6OmRyYWdEZXN0aW5hdGlv
bkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm8oCisgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisg
ICAgLyogW2luXSAqLyBJRGF0YU9iamVjdCosCisgICAgLyogW3JldHZhbF1bb3V0XSAqLyBXZWJE
cmFnRGVzdGluYXRpb25BY3Rpb24qIGFjdGlvbikKK3sKKyAgICAqYWN0aW9uID0gV2ViRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uTm9uZTsKKworICAgIHJldHVybiBTX09LOworfQpJbmRleDogd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckRlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckRlbGVnYXRlLmgJKHJldmlzaW9uIDApCisrKyB3aW4v
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRGVsZWdhdGUuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWF0dCBMaWxlayA8d2Via2l0
QG1hdHRsaWxlay5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisg
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJbnNwZWN0b3JEZWxlZ2F0ZV9oCisjZGVmaW5l
IFdlYkluc3BlY3RvckRlbGVnYXRlX2gKKworc3RydWN0IElEYXRhT2JqZWN0Oworc3RydWN0IElQ
cm9wZXJ0eUJhZzsKK3N0cnVjdCBJV2ViVmlldzsKK3N0cnVjdCBJV2ViRnJhbWU7CitzdHJ1Y3Qg
SVdlYkVycm9yOworc3RydWN0IElXZWJVUkxSZXF1ZXN0Oworc3RydWN0IElXZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lcjsKKworY2xhc3MgV2ViSW5zcGVjdG9yRGVsZWdhdGUgOiBwdWJsaWMgSVdl
YlVJRGVsZWdhdGUgeworcHVibGljOgorICAgIFdlYkluc3BlY3RvckRlbGVnYXRlKCk7CisKKyAg
ICBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKTsKKyAgICBVTE9ORyBTVERNRVRIT0RD
QUxMVFlQRSBSZWxlYXNlKCk7CisKKyAgICAvLyBJVW5rbm93bgorICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZSgKKyAgICAgICAgLyogW2luXSAqLyBS
RUZJSUQsCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gdm9pZCoqKQorICAgICAgICB7IHJl
dHVybiBFX05PVElNUEw7IH07CisKKyAgICAvLyBJV2ViVUlEZWxlZ2F0ZQorICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJh
Z2dpbmdJbmZvKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtp
bl0gKi8gSURhdGFPYmplY3QqLAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYkRyYWdE
ZXN0aW5hdGlvbkFjdGlvbiogYWN0aW9uKTsKKworICAgIC8vIE5vdCBpbXBsZW1lbnRlZAorICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjcmVhdGVXZWJWaWV3V2l0aFJlcXVl
c3QoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBJ
V2ViVVJMUmVxdWVzdCosCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gSVdlYlZpZXcqKikg
eyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgd2ViVmlld1Nob3coIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KikgeyByZXR1
cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
d2ViVmlld0Nsb3NlKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyopIHsgcmV0dXJuIEVf
Tk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZp
ZXdGb2N1cyggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqKSB7IHJldHVybiBFX05PVElN
UEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3ZWJWaWV3VW5m
b2N1cyggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqKSB7IHJldHVybiBFX05PVElNUEw7
IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3ZWJWaWV3Rmlyc3RS
ZXNwb25kZXIoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW3Jl
dHZhbF1bb3V0XSAqLyBPTEVfSEFORExFKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgbWFrZUZpcnN0UmVzcG9uZGVyKCAKKyAg
ICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gT0xFX0hBTkRM
RSkgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgc2V0U3RhdHVzVGV4dCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAor
ICAgICAgICAvKiBbaW5dICovIEJTVFIpIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZpZXdTdGF0dXNUZXh0KCAKKyAgICAg
ICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQlNU
UiopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHdlYlZpZXdBcmVUb29sYmFyc1Zpc2libGUoIAorICAgICAgICAvKiBbaW5dICov
IElXZWJWaWV3KiwKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKikgeyByZXR1cm4g
RV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
VG9vbGJhcnNWaXNpYmxlKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAg
IC8qIFtpbl0gKi8gQk9PTCkgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgd2ViVmlld0lzU3RhdHVzQmFyVmlzaWJsZSggCisgICAg
ICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJP
T0wqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXRTdGF0dXNCYXJWaXNpYmxlKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2Vi
VmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gQk9PTCkgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisK
KyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgd2ViVmlld0lzUmVzaXphYmxl
KCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtyZXR2YWxdW291
dF0gKi8gQk9PTCopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHNldFJlc2l6YWJsZSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdl
YlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIEJPT0wpIHsgcmV0dXJuIEVfTk9USU1QTDsgfQor
CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEZyYW1lKCAKKyAgICAg
ICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gUkVDVCopIHsgcmV0
dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHdlYlZpZXdGcmFtZSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAv
KiBbcmV0dmFsXVtvdXRdICovIFJFQ1QqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDb250ZW50UmVjdCggCisgICAgICAg
IC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIFJFQ1QqKSB7IHJldHVy
biBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3
ZWJWaWV3Q29udGVudFJlY3QoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAg
ICAgLyogW3JldHZhbF1bb3V0XSAqLyBSRUNUKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAv
KiBbaW5dICovIEJTVFIpIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHJ1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRoTWVzc2Fn
ZSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIEJT
VFIsCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCopIHsgcmV0dXJuIEVfTk9USU1Q
TDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJ1bkphdmFTY3Jp
cHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3
KiwKKyAgICAgICAgLyogW2luXSAqLyBCU1RSIC8qbWVzc2FnZSovLAorICAgICAgICAvKiBbaW5d
ICovIEJTVFIgLypkZWZhdWx0VGV4dCovLAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJT
VFIqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZSggCisgICAg
ICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIEJTVFIgLyptZXNz
YWdlKi8sCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYkZyYW1lKiAgLyppbml0aWF0ZWRCeUZyYW1l
Ki8sCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCopIHsgcmV0dXJuIEVfTk9USU1Q
TDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJ1bk9wZW5QYW5l
bEZvckZpbGVCdXR0b25XaXRoUmVzdWx0TGlzdGVuZXIoIAorICAgICAgICAvKiBbaW5dICovIElX
ZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBJV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIq
KSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdl
YlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIElQcm9wZXJ0eUJhZyosCisgICAgICAgIC8qIFtp
bl0gKi8gVUlOVCAvKm1vZGlmaWVyRmxhZ3MqLykgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY29udGV4dE1lbnVJdGVtc0ZvckVs
ZW1lbnQoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAq
LyBJUHJvcGVydHlCYWcqLAorICAgICAgICAvKiBbaW5dICovIE9MRV9IQU5ETEUsCisgICAgICAg
IC8qIFtyZXR2YWxdW291dF0gKi8gT0xFX0hBTkRMRSopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQor
CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHZhbGlkYXRlVXNlckludGVy
ZmFjZUl0ZW0oIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2lu
XSAqLyBVSU5ULAorICAgICAgICAvKiBbaW5dICovIEJPT0wsCisgICAgICAgIC8qIFtyZXR2YWxd
W291dF0gKi8gQk9PTCopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHNob3VsZFBlcmZvcm1BY3Rpb24oIAorICAgICAgICAvKiBb
aW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBVSU5UIC8qaXRlbUNvbW1hbmRJ
RCovLAorICAgICAgICAvKiBbaW5dICovIFVJTlQgLypzZW5kZXIqLykgeyByZXR1cm4gRV9OT1RJ
TVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgd2lsbFBlcmZv
cm1EcmFnRGVzdGluYXRpb25BY3Rpb24oIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwK
KyAgICAgICAgLyogW2luXSAqLyBXZWJEcmFnRGVzdGluYXRpb25BY3Rpb24sCisgICAgICAgIC8q
IFtpbl0gKi8gSURhdGFPYmplY3QqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50
KCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gTFBQ
T0lOVCwKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBXZWJEcmFnU291cmNlQWN0aW9uKikg
eyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKCAKKyAgICAgICAgLyogW2luXSAqLyBJ
V2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gV2ViRHJhZ1NvdXJjZUFjdGlvbiwKKyAgICAg
ICAgLyogW2luXSAqLyBMUFBPSU5ULAorICAgICAgICAvKiBbaW5dICovIElEYXRhT2JqZWN0Kikg
eyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoIAorICAgICAgICAvKiBbaW5dICovIElXZWJW
aWV3KiwKKyAgICAgICAgLyogW2luXSAqLyB2b2lkKiAgLyppdGVtKi8sCisgICAgICAgIC8qIFtp
bl0gKi8gSVByb3BlcnR5QmFnKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaGFzQ3VzdG9tTWVudUltcGxlbWVudGF0aW9uKCAK
KyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9
CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdHJhY2tDdXN0b21Qb3B1
cE1lbnUoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAq
LyBPTEVfSEFORExFLAorICAgICAgICAvKiBbaW5dICovIExQUE9JTlQpIHsgcmV0dXJuIEVfTk9U
SU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG1lYXN1cmVD
dXN0b21NZW51SXRlbSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAv
KiBbaW5dICovIHZvaWQqICAvKm1lYXN1cmVJdGVtKi8pIHsgcmV0dXJuIEVfTk9USU1QTDsgfQor
CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRyYXdDdXN0b21NZW51SXRl
bSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIHZv
aWQqICAvKmRyYXdJdGVtKi8pIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFkZEN1c3RvbU1lbnVEcmF3aW5nRGF0YSggCisgICAg
ICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIE9MRV9IQU5ETEUp
IHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGNsZWFuVXBDdXN0b21NZW51RHJhd2luZ0RhdGEoIAorICAgICAgICAvKiBbaW5dICov
IElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBPTEVfSEFORExFKSB7IHJldHVybiBFX05P
VElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjYW5UYWtl
Rm9jdXMoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAq
LyBCT09MIC8qZm9yd2FyZCovLAorICAgICAgICAvKiBbb3V0XSAqLyBCT09MKikgeyByZXR1cm4g
RV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdGFr
ZUZvY3VzKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0g
Ki8gQk9PTCAvKmZvcndhcmQqLykgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVnaXN0ZXJVbmRvV2l0aFRhcmdldCggCisgICAg
ICAgIC8qIFtpbl0gKi8gSVdlYlVuZG9UYXJnZXQqLAorICAgICAgICAvKiBbaW5dICovIEJTVFIg
LyphY3Rpb25OYW1lKi8sCisgICAgICAgIC8qIFtpbl0gKi8gSVVua25vd24qICAvKmFjdGlvbkFy
ZyovKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSByZW1vdmVBbGxBY3Rpb25zV2l0aFRhcmdldCggCisgICAgICAgIC8qIFtpbl0g
Ki8gSVdlYlVuZG9UYXJnZXQqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRBY3Rpb25UaXRsZSggCisgICAgICAgIC8qIFtp
bl0gKi8gQlNUUikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgdW5kbygpIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlZG8oKSB7IHJldHVybiBFX05PVElNUEw7
IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjYW5VbmRvKCAKKyAg
ICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisK
KyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY2FuUmVkbyggCisgICAgICAg
IC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCitwcml2
YXRlOgorICAgIFVMT05HIG1fcmVmQ291bnQ7Cit9OworCisjZW5kaWYgLy8gV2ViSW5zcGVjdG9y
RGVsZWdhdGVfaApJbmRleDogd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSB3aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCShyZXZpc2lvbiAzMDU4MykK
KysrIHdpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTE2
NTcsNiArMTY1NywxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2Vi
SW5zcGVjdG9yQ2xpZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJJbnNwZWN0b3JEZWxlZ2F0ZS5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxX
ZWJDb3JlU3VwcG9ydFxXZWJJbnNwZWN0b3JEZWxlZ2F0ZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KIAkJPC9GaWx0ZXI+DQogCQk8RmlsZQ0KIAkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViS2l0UHJl
Zml4LmNwcCINCg==
</data>
<flag name="review"
          id="8475"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19407</attachid>
            <date>2008-02-27 14:30:44 -0800</date>
            <delta_ts>2008-02-27 14:36:55 -0800</delta_ts>
            <desc>revised patch round 2</desc>
            <filename>Bug14348v3</filename>
            <type>text/plain</type>
            <size>20506</size>
            <attacher name="Matt Lilek">dev+webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IG1hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbWFjL0NoYW5nZUxvZwkocmV2aXNp
b24gMzA1OTQpCisrKyBtYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMDgtMDItMjUgIE1hdHQgTGlsZWsgIDx3ZWJraXRAbWF0dGxpbGVrLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMTQzNDg6IE1l
c3NpbmcgdXAgdGhlIGluc3BlY3RvciBieSBkcmFnZ2luZyBhbiBVUkwgaW50byBpdAorICAgICAg
ICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTI4MzYyMD4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxl
ciBpbml0XSk6IFJlbW92ZSBkdXBsaWNhdGUgcHJlZmVyZW5jZSBzZXR0aW5nLgorICAgICAgICAo
LVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpdKToKKwogMjAwOC0wMi0yNSAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbS4KSW5kZXg6IG1hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQkocmV2aXNpb24gMzA1OTQpCisrKyBt
YWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC00NSw2ICs0NSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9ET01Db3JlLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvRE9NRXh0ZW5zaW9ucy5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYlVJRGVsZWdhdGUuaD4K
IAogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKQEAgLTE2Myw3ICsxNjQsNiBA
QCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6dXBkYXRlV2luZG93VGl0CiAgICAgW3ByZWZlcmVu
Y2VzIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2Vz
IHNldEphdmFTY3JpcHRFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldEFsbG93c0Fu
aW1hdGVkSW1hZ2VzOllFU107Ci0gICAgW3ByZWZlcmVuY2VzIHNldExvYWRzSW1hZ2VzQXV0b21h
dGljYWxseTpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRQbHVnSW5zRW5hYmxlZDpOT107CiAg
ICAgW3ByZWZlcmVuY2VzIHNldEphdmFFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0
VXNlclN0eWxlU2hlZXRFbmFibGVkOk5PXTsKQEAgLTE3NSw2ICsxNzUsNyBAQCB2b2lkIFdlYklu
c3BlY3RvckNsaWVudDo6dXBkYXRlV2luZG93VGl0CiAgICAgW193ZWJWaWV3IHNldFByZWZlcmVu
Y2VzOnByZWZlcmVuY2VzXTsKICAgICBbX3dlYlZpZXcgc2V0RHJhd3NCYWNrZ3JvdW5kOk5PXTsK
ICAgICBbX3dlYlZpZXcgc2V0UHJvaGliaXRzTWFpbkZyYW1lU2Nyb2xsaW5nOllFU107CisgICAg
W193ZWJWaWV3IHNldFVJRGVsZWdhdGU6c2VsZl07CiAKICAgICBbcHJlZmVyZW5jZXMgcmVsZWFz
ZV07CiAKQEAgLTQ4OSw2ICs0OTAsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6dXBkYXRl
V2luZG93VGl0CiB9CiAKICNwcmFnbWEgbWFyayAtCisjcHJhZ21hIG1hcmsgQW5pbWF0aW9uIGRl
bGVnYXRlCiAKIC0gKHZvaWQpYW5pbWF0aW9uRGlkRW5kOihOU0FuaW1hdGlvbiopYW5pbWF0aW9u
CiB7CkBAIC01MDIsNiArNTA0LDEzIEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50Ojp1cGRhdGVX
aW5kb3dUaXQKICAgICB9CiB9CiAKKyNwcmFnbWEgbWFyayAtCisjcHJhZ21hIG1hcmsgVUkgZGVs
ZWdhdGUKKworLSAodW5zaWduZWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkcmFnRGVzdGlu
YXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdn
aW5nSW5mbworeworICAgIHJldHVybiBXZWJEcmFnRGVzdGluYXRpb25BY3Rpb25Ob25lOworfQog
CiAjcHJhZ21hIG1hcmsgLQogCkluZGV4OiB3aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdp
bi9DaGFuZ2VMb2cJKHJldmlzaW9uIDMwNTk0KQorKysgd2luL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDczIEBACisyMDA4LTAyLTI1ICBNYXR0IExpbGVrICA8d2Via2l0QG1h
dHRsaWxlay5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDE0MzQ4OiBNZXNzaW5nIHVwIHRoZSBpbnNwZWN0b3IgYnkgZHJhZ2dpbmcgYW4g
VVJMIGludG8gaXQKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQzNDgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUyODM2MjA+CisKKyAgICAgICAgQWRk
IGEgbmV3IGNsYXNzIHRvIGhhbmRsZSB0aGUgSW5zcGVjdG9yJ3MgZGVsZWdhdGUgY2FsbHMuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yQ2xpZW50OjpXZWJJbnNwZWN0b3JDbGllbnQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yQ2xpZW50OjpjcmVhdGVQYWdlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JEZWxlZ2F0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoOm1fcmVmQ291bnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yRGVsZWdhdGU6OkFkZFJlZik6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxl
Z2F0ZTo6UmVsZWFzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6ZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yRGVsZWdhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3JE
ZWxlZ2F0ZTo6UXVlcnlJbnRlcmZhY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6
OmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0
ZTo6d2ViVmlld1Nob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OndlYlZpZXdD
bG9zZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6d2ViVmlld0ZvY3VzKToKKyAg
ICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjp3ZWJWaWV3VW5mb2N1cyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6d2ViVmlld0ZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdl
Ykluc3BlY3RvckRlbGVnYXRlOjptYWtlRmlyc3RSZXNwb25kZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yRGVsZWdhdGU6OnNldFN0YXR1c1RleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVs
ZWdhdGU6OndlYlZpZXdTdGF0dXNUZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRl
Ojp3ZWJWaWV3QXJlVG9vbGJhcnNWaXNpYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVn
YXRlOjpzZXRUb29sYmFyc1Zpc2libGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6
OndlYlZpZXdJc1N0YXR1c0JhclZpc2libGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdh
dGU6OnNldFN0YXR1c0JhclZpc2libGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6
OndlYlZpZXdJc1Jlc2l6YWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6c2V0
UmVzaXphYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpzZXRGcmFtZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6d2ViVmlld0ZyYW1lKToKKyAgICAgICAgKFdl
Ykluc3BlY3RvckRlbGVnYXRlOjpzZXRDb250ZW50UmVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3JEZWxlZ2F0ZTo6d2ViVmlld0NvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3RvckRl
bGVnYXRlOjpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlKToKKyAgICAgICAgKFdl
Ykluc3BlY3RvckRlbGVnYXRlOjpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2Up
OgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQ
YW5lbFdpdGhQcm9tcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRl
bGVnYXRlOjpydW5PcGVuUGFuZWxGb3JGaWxlQnV0dG9uV2l0aFJlc3VsdExpc3RlbmVyKToKKyAg
ICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6Y29udGV4dE1lbnVJdGVtc0ZvckVsZW1lbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnZhbGlkYXRlVXNlckludGVyZmFjZUl0
ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnNob3VsZFBlcmZvcm1BY3Rpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpkcmFnU291cmNlQWN0
aW9uTWFza0ZvclBvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjp3aWxsUGVy
Zm9ybURyYWdTb3VyY2VBY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OmNv
bnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpo
YXNDdXN0b21NZW51SW1wbGVtZW50YXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdh
dGU6OnRyYWNrQ3VzdG9tUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRl
OjptZWFzdXJlQ3VzdG9tTWVudUl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6
OmRyYXdDdXN0b21NZW51SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6YWRk
Q3VzdG9tTWVudURyYXdpbmdEYXRhKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpj
bGVhblVwQ3VzdG9tTWVudURyYXdpbmdEYXRhKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVn
YXRlOjpjYW5UYWtlRm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnRha2VG
b2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6cmVnaXN0ZXJVbmRvV2l0aFRh
cmdldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6cmVtb3ZlQWxsQWN0aW9uc1dp
dGhUYXJnZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRGVsZWdhdGU6OnNldEFjdGlvblRpdGxl
KToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjp1bmRvKToKKyAgICAgICAgKFdlYklu
c3BlY3RvckRlbGVnYXRlOjpyZWRvKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpj
YW5VbmRvKToKKyAgICAgICAgKFdlYkluc3BlY3RvckRlbGVnYXRlOjpjYW5SZWRvKToKKyAgICAg
ICAgKiBXZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2o6CisKIDIwMDgtMDItMjUgIEFkYW0gUm9i
ZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgcGx1Z2luLXJlbGF0ZWQgbWV0
aG9kcyB0byBXZWJGcmFtZUxvYWRlckNsaWVudApJbmRleDogd2luL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd2luL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5jcHAJKHJldmlzaW9uIDMwNTk0KQorKysgd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JDbGllbnQuaCIK
IAotI2luY2x1ZGUgIldlYkluc3BlY3RvckNsaWVudC5oIgorI2luY2x1ZGUgIldlYkluc3BlY3Rv
ckRlbGVnYXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViTXV0YWJsZVVS
TFJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJOb2RlSGlnaGxpZ2h0LmgiCkBAIC0xMjMsNiArMTIz
LDkgQEAgUGFnZSogV2ViSW5zcGVjdG9yQ2xpZW50OjpjcmVhdGVQYWdlKCkKICAgICBpZiAoRkFJ
TEVEKG1fd2ViVmlldy0+aW5pdFdpdGhGcmFtZShyZWN0LCAwLCAwKSkpCiAgICAgICAgIHJldHVy
biAwOwogCisgICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPnNldFVJRGVsZWdhdGUoV2ViSW5zcGVj
dG9yRGVsZWdhdGU6OmNyZWF0ZUluc3RhbmNlKCkpKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAg
ICAvLyBLZWVwIHByZWZlcmVuY2VzIHNlcGFyYXRlIGZyb20gdGhlIHJlc3Qgb2YgdGhlIGNsaWVu
dCwgbWFraW5nIHN1cmUgd2UgYXJlIHVzaW5nIGV4cGVjdGVkIHByZWZlcmVuY2UgdmFsdWVzLgog
ICAgIC8vIE9uZSByZWFzb24gdGhpcyBpcyBnb29kIGlzIHRoYXQgaXQga2VlcHMgdGhlIGluc3Bl
Y3RvciBvdXQgb2YgaGlzdG9yeSB2aWEgInByaXZhdGUgYnJvd3NpbmciLgogICAgIC8vIEZJWE1F
OiBJdCdzIGNyYXp5IHRoYXQgd2UgaGF2ZSB0byBkbyB0aGlzIHNvbmcgYW5kIGRhbmNlIHRvIGVu
ZCB1cCB3aXRoCkluZGV4OiB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRGVsZWdhdGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHdpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JEZWxlZ2F0
ZS5jcHAJKHJldmlzaW9uIDApCisrKyB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRGVs
ZWdhdGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA4IE1hdHQgTGlsZWsgPHdlYmtpdEBtYXR0bGlsZWsuY29tPgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
IAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JEZWxlZ2F0ZS5oIgorCitXZWJJbnNwZWN0
b3JEZWxlZ2F0ZTo6V2ViSW5zcGVjdG9yRGVsZWdhdGUoKQorICAgIDptX3JlZkNvdW50KDEpCit7
Cit9CisKK1dlYkluc3BlY3RvckRlbGVnYXRlKiBXZWJJbnNwZWN0b3JEZWxlZ2F0ZTo6Y3JlYXRl
SW5zdGFuY2UoKQoreworICAgIFdlYkluc3BlY3RvckRlbGVnYXRlKiBpbnN0YW5jZSA9IG5ldyBX
ZWJJbnNwZWN0b3JEZWxlZ2F0ZSgpOworICAgIHJldHVybiBpbnN0YW5jZTsKK30KKworVUxPTkcg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViSW5zcGVjdG9yRGVsZWdhdGU6OkFkZFJlZigpCit7CisgICAg
cmV0dXJuICsrbV9yZWZDb3VudDsKK30KKworVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgV2ViSW5z
cGVjdG9yRGVsZWdhdGU6OlJlbGVhc2UoKQoreworICAgIFVMT05HIG5ld1JlZiA9IC0tbV9yZWZD
b3VudDsKKyAgICBpZiAoIW5ld1JlZikKKyAgICAgICAgZGVsZXRlKHRoaXMpOworCisgICAgcmV0
dXJuIG5ld1JlZjsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJJbnNwZWN0b3JE
ZWxlZ2F0ZTo6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbygKKyAgICAv
KiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAvKiBbaW5dICovIElEYXRhT2JqZWN0KiwKKyAgICAv
KiBbcmV0dmFsXVtvdXRdICovIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbiogYWN0aW9uKQorewor
ICAgICphY3Rpb24gPSBXZWJEcmFnRGVzdGluYXRpb25BY3Rpb25Ob25lOworCisgICAgcmV0dXJu
IFNfT0s7Cit9CkluZGV4OiB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRGVsZWdhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRGVsZWdhdGUu
aAkocmV2aXNpb24gMCkKKysrIHdpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JEZWxlZ2F0
ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBNYXR0IExpbGVrIDx3ZWJraXRAbWF0dGxpbGVrLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
IAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
IAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkluc3Bl
Y3RvckRlbGVnYXRlX2gKKyNkZWZpbmUgV2ViSW5zcGVjdG9yRGVsZWdhdGVfaAorCitzdHJ1Y3Qg
SURhdGFPYmplY3Q7CitzdHJ1Y3QgSVByb3BlcnR5QmFnOworc3RydWN0IElXZWJWaWV3Oworc3Ry
dWN0IElXZWJGcmFtZTsKK3N0cnVjdCBJV2ViRXJyb3I7CitzdHJ1Y3QgSVdlYlVSTFJlcXVlc3Q7
CitzdHJ1Y3QgSVdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOworCitjbGFzcyBXZWJJbnNwZWN0
b3JEZWxlZ2F0ZSA6IHB1YmxpYyBJV2ViVUlEZWxlZ2F0ZSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFdlYkluc3BlY3RvckRlbGVnYXRlKiBjcmVhdGVJbnN0YW5jZSgpOworCisgICAgLy8gSVVua25v
d24KKyAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZigpOw0KKyAgICB2
aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2UoKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlELCB2b2lkKiopIHsg
cmV0dXJuIEVfTk9USU1QTDsgfTsKKworICAgIC8vIElXZWJVSURlbGVnYXRlCisgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JE
cmFnZ2luZ0luZm8oIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyog
W2luXSAqLyBJRGF0YU9iamVjdCosCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViRHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uKiBhY3Rpb24pOworCisgICAgLy8gTm90IGltcGxlbWVudGVkCisg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNyZWF0ZVdlYlZpZXdXaXRoUmVx
dWVzdCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICov
IElXZWJVUkxSZXF1ZXN0KiwKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBJV2ViVmlldyoq
KSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSB3ZWJWaWV3U2hvdyggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqKSB7IHJl
dHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSB3ZWJWaWV3Q2xvc2UoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KikgeyByZXR1cm4g
RV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgd2Vi
Vmlld0ZvY3VzKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyopIHsgcmV0dXJuIEVfTk9U
SU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZpZXdV
bmZvY3VzKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyopIHsgcmV0dXJuIEVfTk9USU1Q
TDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZpZXdGaXJz
dFJlc3BvbmRlciggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBb
cmV0dmFsXVtvdXRdICovIE9MRV9IQU5ETEUqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBtYWtlRmlyc3RSZXNwb25kZXIoIAor
ICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBPTEVfSEFO
RExFKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXRTdGF0dXNUZXh0KCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyos
CisgICAgICAgIC8qIFtpbl0gKi8gQlNUUikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgd2ViVmlld1N0YXR1c1RleHQoIAorICAg
ICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBC
U1RSKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgd2ViVmlld0FyZVRvb2xiYXJzVmlzaWJsZSggCisgICAgICAgIC8qIFtpbl0g
Ki8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqKSB7IHJldHVy
biBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRUb29sYmFyc1Zpc2libGUoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAg
ICAgLyogW2luXSAqLyBCT09MKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3ZWJWaWV3SXNTdGF0dXNCYXJWaXNpYmxlKCAKKyAg
ICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8g
Qk9PTCopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHNldFN0YXR1c0JhclZpc2libGUoIAorICAgICAgICAvKiBbaW5dICovIElX
ZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBCT09MKSB7IHJldHVybiBFX05PVElNUEw7IH0K
KworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3ZWJWaWV3SXNSZXNpemFi
bGUoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW3JldHZhbF1b
b3V0XSAqLyBCT09MKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0UmVzaXphYmxlKCAKKyAgICAgICAgLyogW2luXSAqLyBJ
V2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gQk9PTCkgeyByZXR1cm4gRV9OT1RJTVBMOyB9
CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RnJhbWUoIAorICAg
ICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBSRUNUKikgeyBy
ZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgd2ViVmlld0ZyYW1lKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAg
IC8qIFtyZXR2YWxdW291dF0gKi8gUkVDVCopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldENvbnRlbnRSZWN0KCAKKyAgICAg
ICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gUkVDVCopIHsgcmV0
dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHdlYlZpZXdDb250ZW50UmVjdCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAg
ICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFJFQ1QqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKwor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBydW5KYXZhU2NyaXB0QWxlcnRQ
YW5lbFdpdGhNZXNzYWdlKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAg
IC8qIFtpbl0gKi8gQlNUUikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcnVuSmF2YVNjcmlwdENvbmZpcm1QYW5lbFdpdGhNZXNz
YWdlKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8g
QlNUUiwKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKikgeyByZXR1cm4gRV9OT1RJ
TVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcnVuSmF2YVNj
cmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZp
ZXcqLAorICAgICAgICAvKiBbaW5dICovIEJTVFIgLyptZXNzYWdlKi8sCisgICAgICAgIC8qIFtp
bl0gKi8gQlNUUiAvKmRlZmF1bHRUZXh0Ki8sCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8g
QlNUUiopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlKCAKKyAg
ICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gQlNUUiAvKm1l
c3NhZ2UqLywKKyAgICAgICAgLyogW2luXSAqLyBJV2ViRnJhbWUqICAvKmluaXRpYXRlZEJ5RnJh
bWUqLywKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKikgeyByZXR1cm4gRV9OT1RJ
TVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcnVuT3BlblBh
bmVsRm9yRmlsZUJ1dHRvbldpdGhSZXN1bHRMaXN0ZW5lciggCisgICAgICAgIC8qIFtpbl0gKi8g
SVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIElXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ciopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KCAKKyAgICAgICAgLyogW2luXSAqLyBJ
V2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gSVByb3BlcnR5QmFnKiwKKyAgICAgICAgLyog
W2luXSAqLyBVSU5UIC8qbW9kaWZpZXJGbGFncyovKSB7IHJldHVybiBFX05PVElNUEw7IH0KKwor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjb250ZXh0TWVudUl0ZW1zRm9y
RWxlbWVudCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5d
ICovIElQcm9wZXJ0eUJhZyosCisgICAgICAgIC8qIFtpbl0gKi8gT0xFX0hBTkRMRSwKKyAgICAg
ICAgLyogW3JldHZhbF1bb3V0XSAqLyBPTEVfSEFORExFKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9
CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdmFsaWRhdGVVc2VySW50
ZXJmYWNlSXRlbSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBb
aW5dICovIFVJTlQsCisgICAgICAgIC8qIFtpbl0gKi8gQk9PTCwKKyAgICAgICAgLyogW3JldHZh
bF1bb3V0XSAqLyBCT09MKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2hvdWxkUGVyZm9ybUFjdGlvbiggCisgICAgICAgIC8q
IFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIFVJTlQgLyppdGVtQ29tbWFu
ZElEKi8sCisgICAgICAgIC8qIFtpbl0gKi8gVUlOVCAvKnNlbmRlciovKSB7IHJldHVybiBFX05P
VElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3aWxsUGVy
Zm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbiggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcq
LAorICAgICAgICAvKiBbaW5dICovIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbiwKKyAgICAgICAg
LyogW2luXSAqLyBJRGF0YU9iamVjdCopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9p
bnQoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBM
UFBPSU5ULAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYkRyYWdTb3VyY2VBY3Rpb24q
KSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oIAorICAgICAgICAvKiBbaW5dICov
IElXZWJWaWV3KiwKKyAgICAgICAgLyogW2luXSAqLyBXZWJEcmFnU291cmNlQWN0aW9uLAorICAg
ICAgICAvKiBbaW5dICovIExQUE9JTlQsCisgICAgICAgIC8qIFtpbl0gKi8gSURhdGFPYmplY3Qq
KSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCggCisgICAgICAgIC8qIFtpbl0gKi8gSVdl
YlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIHZvaWQqICAvKml0ZW0qLywKKyAgICAgICAgLyog
W2luXSAqLyBJUHJvcGVydHlCYWcqKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBoYXNDdXN0b21NZW51SW1wbGVtZW50YXRpb24o
IAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqKSB7IHJldHVybiBFX05PVElNUEw7
IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB0cmFja0N1c3RvbVBv
cHVwTWVudSggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5d
ICovIE9MRV9IQU5ETEUsCisgICAgICAgIC8qIFtpbl0gKi8gTFBQT0lOVCkgeyByZXR1cm4gRV9O
T1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgbWVhc3Vy
ZUN1c3RvbU1lbnVJdGVtKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAg
IC8qIFtpbl0gKi8gdm9pZCogIC8qbWVhc3VyZUl0ZW0qLykgeyByZXR1cm4gRV9OT1RJTVBMOyB9
CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZHJhd0N1c3RvbU1lbnVJ
dGVtKCAKKyAgICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8g
dm9pZCogIC8qZHJhd0l0ZW0qLykgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkQ3VzdG9tTWVudURyYXdpbmdEYXRhKCAKKyAg
ICAgICAgLyogW2luXSAqLyBJV2ViVmlldyosCisgICAgICAgIC8qIFtpbl0gKi8gT0xFX0hBTkRM
RSkgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgY2xlYW5VcEN1c3RvbU1lbnVEcmF3aW5nRGF0YSggCisgICAgICAgIC8qIFtpbl0g
Ki8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5dICovIE9MRV9IQU5ETEUpIHsgcmV0dXJuIEVf
Tk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNhblRh
a2VGb2N1cyggCisgICAgICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqLAorICAgICAgICAvKiBbaW5d
ICovIEJPT0wgLypmb3J3YXJkKi8sCisgICAgICAgIC8qIFtvdXRdICovIEJPT0wqKSB7IHJldHVy
biBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB0
YWtlRm9jdXMoIAorICAgICAgICAvKiBbaW5dICovIElXZWJWaWV3KiwKKyAgICAgICAgLyogW2lu
XSAqLyBCT09MIC8qZm9yd2FyZCovKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZWdpc3RlclVuZG9XaXRoVGFyZ2V0KCAKKyAg
ICAgICAgLyogW2luXSAqLyBJV2ViVW5kb1RhcmdldCosCisgICAgICAgIC8qIFtpbl0gKi8gQlNU
UiAvKmFjdGlvbk5hbWUqLywKKyAgICAgICAgLyogW2luXSAqLyBJVW5rbm93biogIC8qYWN0aW9u
QXJnKi8pIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHJlbW92ZUFsbEFjdGlvbnNXaXRoVGFyZ2V0KCAKKyAgICAgICAgLyogW2lu
XSAqLyBJV2ViVW5kb1RhcmdldCopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQorCisgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEFjdGlvblRpdGxlKCAKKyAgICAgICAgLyog
W2luXSAqLyBCU1RSKSB7IHJldHVybiBFX05PVElNUEw7IH0KKworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSB1bmRvKCkgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVkbygpIHsgcmV0dXJuIEVfTk9USU1Q
TDsgfQorCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNhblVuZG8oIAor
ICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqKSB7IHJldHVybiBFX05PVElNUEw7IH0K
KworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjYW5SZWRvKCAKKyAgICAg
ICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CisKK3By
aXZhdGU6CisgICAgV2ViSW5zcGVjdG9yRGVsZWdhdGUoKTsKKworICAgIFVMT05HIG1fcmVmQ291
bnQ7Cit9OworCisjZW5kaWYgLy8gV2ViSW5zcGVjdG9yRGVsZWdhdGVfaApJbmRleDogd2luL1dl
YktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3aW4vV2ViS2l0LnZjcHJv
ai9XZWJLaXQudmNwcm9qCShyZXZpc2lvbiAzMDU5NCkKKysrIHdpbi9XZWJLaXQudmNwcm9qL1dl
YktpdC52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTE2NTcsNiArMTY1NywxNCBAQAogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViSW5zcGVjdG9yQ2xpZW50LmgiDQogCQkJ
CT4NCiAJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3Jl
U3VwcG9ydFxXZWJJbnNwZWN0b3JEZWxlZ2F0ZS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJJbnNwZWN0
b3JEZWxlZ2F0ZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQogCQk8Rmls
ZQ0KIAkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViS2l0UHJlZml4LmNwcCINCg==
</data>
<flag name="review"
          id="8493"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>