<?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>96768</bug_id>
          
          <creation_ts>2012-09-14 06:38:27 -0700</creation_ts>
          <short_desc>[GTK] Don&apos;t use the C API internally in WebKitWebContext</short_desc>
          <delta_ts>2012-10-08 01:05:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>96767</dependson>
          <blocked>96766</blocked>
    
    <blocked>96769</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>720687</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-14 06:38:27 -0700</bug_when>
    <thetext>Use the C++ classes instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720690</commentid>
    <comment_count>1</comment_count>
      <attachid>164128</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-14 06:40:30 -0700</bug_when>
    <thetext>Created attachment 164128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731709</commentid>
    <comment_count>2</comment_count>
      <attachid>166480</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-01 08:39:39 -0700</bug_when>
    <thetext>Created attachment 166480
Updated patch to apply on current git master

Some new patches broke this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731710</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-01 08:41:07 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731712</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-01 08:41:25 -0700</bug_when>
    <thetext>Attachment 166480 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:23:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733429</commentid>
    <comment_count>5</comment_count>
      <attachid>166480</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-10-03 01:26:34 -0700</bug_when>
    <thetext>Comment on attachment 166480
Updated patch to apply on current git master

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

This patch looks good to me, in the context of the meta bug 9766.

&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:23
&gt;&gt; +#include &quot;WebResourceCacheManagerProxy.h&quot;
&gt; 
&gt; Alphabetical sorting problem.  [build/include_order] [4]

This doesn&apos;t look like a false positive.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:167
&gt; +    priv-&gt;geolocationProvider = WebKitGeolocationProvider::create(toAPI(priv-&gt;context-&gt;geolocationManagerProxy()));

I was about to comment on this, but I see you addressed the geolocation specific changes in bug 96778.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733433</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-03 01:32:56 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 166480 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166480&amp;action=review
&gt; 
&gt; This patch looks good to me, in the context of the meta bug 9766.
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:23
&gt; &gt;&gt; +#include &quot;WebResourceCacheManagerProxy.h&quot;
&gt; &gt; 
&gt; &gt; Alphabetical sorting problem.  [build/include_order] [4]
&gt; 
&gt; This doesn&apos;t look like a false positive.

Yes, I will fix this before landing.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:167
&gt; &gt; +    priv-&gt;geolocationProvider = WebKitGeolocationProvider::create(toAPI(priv-&gt;context-&gt;geolocationManagerProxy()));
&gt; 
&gt; I was about to comment on this, but I see you addressed the geolocation specific changes in bug 96778.

Yes, this bug is only about WebKitWebContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735773</commentid>
    <comment_count>7</comment_count>
      <attachid>166480</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-05 11:01:57 -0700</bug_when>
    <thetext>Comment on attachment 166480
Updated patch to apply on current git master

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

Looks good, but seems to violate one of the rules of the style guide. I don&apos;t see this as a huge issue, but it would be nice to follow the rule if it isn&apos;t too hard.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h:36
&gt; +using namespace WebKit;

The style guide doesn&apos;t seem to like namespace declarations in the global scope in headers, since it leaks into implementation files: http://www.webkit.org/coding/coding-style.html (number 1 for &quot;using&quot; Statements).

There are a couple things you can do to make your life easier here though:

1. Put the private methods in the WebKit namespace.
2. Use WebKit:: in the header and put using WebKit at the top of the files that include this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736201</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-06 00:36:01 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 166480 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166480&amp;action=review
&gt; 
&gt; Looks good, but seems to violate one of the rules of the style guide. I don&apos;t see this as a huge issue, but it would be nice to follow the rule if it isn&apos;t too hard.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h:36
&gt; &gt; +using namespace WebKit;
&gt; 
&gt; The style guide doesn&apos;t seem to like namespace declarations in the global scope in headers, since it leaks into implementation files: http://www.webkit.org/coding/coding-style.html (number 1 for &quot;using&quot; Statements).

I think this is a special case because it&apos;s not a C++ header, but a private header to add prototypes of some internal functions. 

&gt; There are a couple things you can do to make your life easier here though:
&gt; 
&gt; 1. Put the private methods in the WebKit namespace.
&gt; 2. Use WebKit:: in the header and put using WebKit at the top of the files that include this file.

Since we are already doing it, and all C API migration patches do it too, do you mind if I fix it all together afterwards?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736331</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-06 23:42:58 -0700</bug_when>
    <thetext>(In reply to comment #8)

&gt; Since we are already doing it, and all C API migration patches do it too, do you mind if I fix it all together afterwards?

Okay. I think it&apos;s probably okay in this case, especially since the style bot didn&apos;t complain. We should probably fix it later though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736332</commentid>
    <comment_count>10</comment_count>
      <attachid>166480</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-06 23:43:28 -0700</bug_when>
    <thetext>Comment on attachment 166480
Updated patch to apply on current git master

Please fix the remaining style error before landing. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736558</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-08 01:05:27 -0700</bug_when>
    <thetext>Committed r130621: &lt;http://trac.webkit.org/changeset/130621&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164128</attachid>
            <date>2012-09-14 06:40:30 -0700</date>
            <delta_ts>2012-10-01 08:39:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-no-c-api-web-context.diff</filename>
            <type>text/plain</type>
            <size>19468</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmZjY2M2ZiLi4zMzYwODhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUg
QEAKKzIwMTItMDktMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIERvbid0IHVzZSB0aGUgQyBBUEkgaW50ZXJuYWxseSBpbiBXZWJL
aXRXZWJDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05Njc2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVzaW5nIHRoZSBDKysgY2xhc3NlcyBkaXJlY3RseSBpbnN0ZWFkIG9mIHRoZSBDIEFQSSB3
cmFwcGVycyB3ZQorICAgICAgICBhdm9pZCBhIGxvdCBvZiB0b0ltcGwvdG9BUEkgY2FzdHMsIHN0
cmluZyBjb252ZXJzaW9ucyBhbmQKKyAgICAgICAgYWxsb2NhdGlvbnMuIFRoZSBjb2RlIGlzIGFs
c28gYSBsb3Qgc2ltcGxlciBhbmQgZWFzaWVyIHRvIHJlYWQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVudC5jcHA6CisgICAgICAgIChkaWRTdGFydCk6
CisgICAgICAgIChkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoZGlkUmVjZWl2ZURhdGEp
OgorICAgICAgICAoZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAg
ICAgICAoZGlkQ3JlYXRlRGVzdGluYXRpb24pOgorICAgICAgICAoZGlkRmFpbCk6CisgICAgICAg
IChkaWRDYW5jZWwpOgorICAgICAgICAoZGlkRmluaXNoKToKKyAgICAgICAgKGF0dGFjaERvd25s
b2FkQ2xpZW50VG9Db250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRS
ZXF1ZXN0TWFuYWdlckNsaWVudC5jcHA6CisgICAgICAgIChhdHRhY2hSZXF1ZXN0TWFuYWdlckNs
aWVudFRvQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29u
dGV4dC5jcHA6CisgICAgICAgIChfV2ViS2l0V2ViQ29udGV4dFByaXZhdGUpOgorICAgICAgICAo
Y3JlYXRlRGVmYXVsdFdlYkNvbnRleHQpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X3Nl
dF9jYWNoZV9tb2RlbCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2NhY2hlX21v
ZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9jbGVhcl9jYWNoZSk6CisgICAgICAg
ICh3ZWJraXRfd2ViX2NvbnRleHRfZG93bmxvYWRfdXJpKToKKyAgICAgICAgKHdlYmtpdF93ZWJf
Y29udGV4dF9nZXRfY29va2llX21hbmFnZXIpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0
X3NldF9hZGRpdGlvbmFsX3BsdWdpbnNfZGlyZWN0b3J5KToKKyAgICAgICAgKHdlYmtpdFdlYkNv
bnRleHRHZXRQbHVnaW5UaHJlYWQpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X3JlZ2lz
dGVyX3VyaV9zY2hlbWUpOgorICAgICAgICAod2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93
bmxvYWQpOgorICAgICAgICAod2Via2l0V2ViQ29udGV4dFJlbW92ZURvd25sb2FkKToKKyAgICAg
ICAgKHdlYmtpdFdlYkNvbnRleHRHZXRDb250ZXh0KToKKyAgICAgICAgKHdlYmtpdFdlYkNvbnRl
eHRHZXRSZXF1ZXN0TWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdDb25zdHJ1Y3RlZCk6CisKIDIwMTIt
MDktMTIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjc4NzYuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVudC5jcHAKaW5k
ZXggNmU3MjQ5Ni4uNzljMWMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0RG93bmxvYWRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkQ2xpZW50LmNwcApAQCAtMzQsMTMgKzM0LDEz
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIHN0YXRpYyB2b2lkIGRpZFN0YXJ0KFdLQ29u
dGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQogewotICAgIEdSZWZQdHI8V2ViS2l0RG93bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0V2ViQ29u
dGV4dEdldE9yQ3JlYXRlRG93bmxvYWQod2tEb3dubG9hZCk7CisgICAgR1JlZlB0cjxXZWJLaXRE
b3dubG9hZD4gZG93bmxvYWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZCh0
b0ltcGwod2tEb3dubG9hZCkpOwogICAgIHdlYmtpdFdlYkNvbnRleHREb3dubG9hZFN0YXJ0ZWQo
V0VCS0lUX1dFQl9DT05URVhUKGNsaWVudEluZm8pLCBkb3dubG9hZC5nZXQoKSk7CiB9CiAKIHN0
YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYg
d2tEb3dubG9hZCwgV0tVUkxSZXNwb25zZVJlZiB3a1Jlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewotICAgIEdSZWZQdHI8V2ViS2l0RG93bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0
V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQod2tEb3dubG9hZCk7CisgICAgR1JlZlB0cjxX
ZWJLaXREb3dubG9hZD4gZG93bmxvYWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3du
bG9hZCh0b0ltcGwod2tEb3dubG9hZCkpOwogICAgIGlmICh3ZWJraXREb3dubG9hZElzQ2FuY2Vs
bGVkKGRvd25sb2FkLmdldCgpKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01MCwxMyArNTAsMTMg
QEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdLQ29udGV4dFJlZiwgV0tEb3dubG9h
ZFJlZiB3a0Rvd25sb2FkLCBXS1VSTFJlc3AKIAogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZURhdGEo
V0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIHVpbnQ2NF90IGxlbmd0aCwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBk
b3dubG9hZCA9IHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKHdrRG93bmxvYWQp
OworICAgIEdSZWZQdHI8V2ViS2l0RG93bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0V2ViQ29udGV4
dEdldE9yQ3JlYXRlRG93bmxvYWQodG9JbXBsKHdrRG93bmxvYWQpKTsKICAgICB3ZWJraXREb3du
bG9hZE5vdGlmeVByb2dyZXNzKGRvd25sb2FkLmdldCgpLCBsZW5ndGgpOwogfQogCiBzdGF0aWMg
V0tTdHJpbmdSZWYgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250
ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVmIGZpbGVuYW1lLCBi
b29sKiBhbGxvd092ZXJ3cml0ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBHUmVm
UHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0
ZURvd25sb2FkKHdrRG93bmxvYWQpOworICAgIEdSZWZQdHI8V2ViS2l0RG93bmxvYWQ+IGRvd25s
b2FkID0gd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQodG9JbXBsKHdrRG93bmxv
YWQpKTsKICAgICBDU3RyaW5nIGRlc3RpbmF0aW9uVVJJID0gd2Via2l0RG93bmxvYWREZWNpZGVE
ZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShkb3dubG9hZC5nZXQoKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0b0ltcGwoZmlsZW5hbWUpLT5zdHJpbmcoKS51dGY4KCkpOwogICAg
IHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhkZXN0aW5hdGlvblVSSS5kYXRh
KCkpOwpAQCAtNjQsMzMgKzY0LDMzIEBAIHN0YXRpYyBXS1N0cmluZ1JlZiBkZWNpZGVEZXN0aW5h
dGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXS0NvbnRleHRSZWYsIFdLRG93bmxvCiAKIHN0YXRp
YyB2b2lkIGRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3
a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiBwYXRoLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewot
ICAgIEdSZWZQdHI8V2ViS2l0RG93bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0V2ViQ29udGV4dEdl
dE9yQ3JlYXRlRG93bmxvYWQod2tEb3dubG9hZCk7CisgICAgR1JlZlB0cjxXZWJLaXREb3dubG9h
ZD4gZG93bmxvYWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZCh0b0ltcGwo
d2tEb3dubG9hZCkpOwogICAgIHdlYmtpdERvd25sb2FkRGVzdGluYXRpb25DcmVhdGVkKGRvd25s
b2FkLmdldCgpLCB0b0ltcGwocGF0aCktPnN0cmluZygpLnV0ZjgoKSk7CiB9CiAKIHN0YXRpYyB2
b2lkIGRpZEZhaWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLRXJy
b3JSZWYgZXJyb3IsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7Ci0gICAgR1JlZlB0cjxXZWJL
aXREb3dubG9hZD4gZG93bmxvYWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9h
ZCh3a0Rvd25sb2FkKTsKKyAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdl
YmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiAg
ICAgaWYgKHdlYmtpdERvd25sb2FkSXNDYW5jZWxsZWQoZG93bmxvYWQuZ2V0KCkpKSB7CiAgICAg
ICAgIC8vIENhbmNlbGxhdGlvbiB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgb3RoZXIgZXJyb3JzLgog
ICAgICAgICB3ZWJraXREb3dubG9hZENhbmNlbGxlZChkb3dubG9hZC5nZXQoKSk7CiAgICAgfSBl
bHNlCiAgICAgICAgIHdlYmtpdERvd25sb2FkRmFpbGVkKGRvd25sb2FkLmdldCgpLCB0b0ltcGwo
ZXJyb3IpLT5wbGF0Zm9ybUVycm9yKCkpOwotICAgIHdlYmtpdFdlYkNvbnRleHRSZW1vdmVEb3du
bG9hZCh3a0Rvd25sb2FkKTsKKyAgICB3ZWJraXRXZWJDb250ZXh0UmVtb3ZlRG93bmxvYWQodG9J
bXBsKHdrRG93bmxvYWQpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkQ2FuY2VsKFdLQ29udGV4dFJl
ZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewot
ICAgIEdSZWZQdHI8V2ViS2l0RG93bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0V2ViQ29udGV4dEdl
dE9yQ3JlYXRlRG93bmxvYWQod2tEb3dubG9hZCk7CisgICAgR1JlZlB0cjxXZWJLaXREb3dubG9h
ZD4gZG93bmxvYWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZCh0b0ltcGwo
d2tEb3dubG9hZCkpOwogICAgIHdlYmtpdERvd25sb2FkQ2FuY2VsbGVkKGRvd25sb2FkLmdldCgp
KTsKLSAgICB3ZWJraXRXZWJDb250ZXh0UmVtb3ZlRG93bmxvYWQod2tEb3dubG9hZCk7CisgICAg
d2Via2l0V2ViQ29udGV4dFJlbW92ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiB9CiAK
IHN0YXRpYyB2b2lkIGRpZEZpbmlzaChXS0NvbnRleHRSZWYgd2tDb250ZXh0LCBXS0Rvd25sb2Fk
UmVmIHdrRG93bmxvYWQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7Ci0gICAgR1JlZlB0cjxX
ZWJLaXREb3dubG9hZD4gZG93bmxvYWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3du
bG9hZCh3a0Rvd25sb2FkKTsKKyAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9
IHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7
CiAgICAgd2Via2l0RG93bmxvYWRGaW5pc2hlZChkb3dubG9hZC5nZXQoKSk7Ci0gICAgd2Via2l0
V2ViQ29udGV4dFJlbW92ZURvd25sb2FkKHdrRG93bmxvYWQpOworICAgIHdlYmtpdFdlYkNvbnRl
eHRSZW1vdmVEb3dubG9hZCh0b0ltcGwod2tEb3dubG9hZCkpOwogfQogCiB2b2lkIGF0dGFjaERv
d25sb2FkQ2xpZW50VG9Db250ZXh0KFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCkBAIC0x
MTAsNiArMTEwLDYgQEAgdm9pZCBhdHRhY2hEb3dubG9hZENsaWVudFRvQ29udGV4dChXZWJLaXRX
ZWJDb250ZXh0KiB3ZWJDb250ZXh0KQogICAgICAgICBkaWRDYW5jZWwsCiAgICAgICAgIDAsIC8v
IHByb2Nlc3NEaWRDcmFzaAogICAgIH07Ci0gICAgV0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQo
d2Via2l0V2ViQ29udGV4dEdldFdLQ29udGV4dCh3ZWJDb250ZXh0KSwgJndrRG93bmxvYWRDbGll
bnQpOworICAgIFdLQ29udGV4dFNldERvd25sb2FkQ2xpZW50KHRvQVBJKHdlYmtpdFdlYkNvbnRl
eHRHZXRDb250ZXh0KHdlYkNvbnRleHQpKSwgJndrRG93bmxvYWRDbGllbnQpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZXF1ZXN0TWFu
YWdlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRS
ZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKaW5kZXggOGVhMDlmMi4uZGU5NGRiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVxdWVzdE1hbmFnZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJl
cXVlc3RNYW5hZ2VyQ2xpZW50LmNwcApAQCAtNDYsNiArNDYsNiBAQCB2b2lkIGF0dGFjaFJlcXVl
c3RNYW5hZ2VyQ2xpZW50VG9Db250ZXh0KFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCiAg
ICAgICAgIGRpZFJlY2VpdmVVUklSZXF1ZXN0LAogICAgICAgICBkaWRGYWlsVG9Mb2FkVVJJUmVx
dWVzdAogICAgIH07Ci0gICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJTZXRDbGllbnQod2Via2l0V2Vi
Q29udGV4dEdldFJlcXVlc3RNYW5hZ2VyKHdlYkNvbnRleHQpLCAmd2tSZXF1ZXN0TWFuYWdlckNs
aWVudCk7CisgICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJTZXRDbGllbnQodG9BUEkod2Via2l0V2Vi
Q29udGV4dEdldFJlcXVlc3RNYW5hZ2VyKHdlYkNvbnRleHQpKSwgJndrUmVxdWVzdE1hbmFnZXJD
bGllbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGU5MjMxZTQuLmMyNmM1NWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3Bw
CkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViQ29udGV4dC5oIgogCi0jaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXRDb29raWVNYW5hZ2Vy
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERvd25sb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViS2l0RG93bmxvYWRQcml2YXRlLmgiCkBAIC00MSw4ICs0MSw2IEBACiAjaW5jbHVkZSA8d3Rm
L2dvYmplY3QvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKLQogZW51bSB7CiAgICAgRE9XTkxPQURfU1RBUlRFRCwKIApA
QCAtOTIsMTAgKzkwLDEwIEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxXZWJLaXRV
UklTY2hlbWVIYW5kbGVyPiA+IFVSSVNjaGVtZUhhbmRsZXJNYXA7CiB0eXBlZGVmIEhhc2hNYXA8
dWludDY0X3QsIEdSZWZQdHI8V2ViS2l0VVJJU2NoZW1lUmVxdWVzdD4gPiBVUklTY2hlbWVSZXF1
ZXN0TWFwOwogCiBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHRQcml2YXRlIHsKLSAgICBXS1JldGFp
blB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQ7CisgICAgUmVmUHRyPFdlYkNvbnRleHQ+IGNvbnRl
eHQ7CiAKICAgICBHUmVmUHRyPFdlYktpdENvb2tpZU1hbmFnZXI+IGNvb2tpZU1hbmFnZXI7Ci0g
ICAgV0tSZXRhaW5QdHI8V0tTb3VwUmVxdWVzdE1hbmFnZXJSZWY+IHJlcXVlc3RNYW5hZ2VyOwor
ICAgIFJlZlB0cjxXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eT4gcmVxdWVzdE1hbmFnZXI7CiAg
ICAgVVJJU2NoZW1lSGFuZGxlck1hcCB1cmlTY2hlbWVIYW5kbGVyczsKICAgICBVUklTY2hlbWVS
ZXF1ZXN0TWFwIHVyaVNjaGVtZVJlcXVlc3RzOwogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKQEAg
LTE1MCwxNyArMTQ4LDIwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19p
bml0KFdlYktpdFdlYkNvbnRleHRDbGFzcyogd2ViQ29udGV4dENsYXNzCiBzdGF0aWMgZ3BvaW50
ZXIgY3JlYXRlRGVmYXVsdFdlYkNvbnRleHQoZ3BvaW50ZXIpCiB7CiAgICAgc3RhdGljIEdSZWZQ
dHI8V2ViS2l0V2ViQ29udGV4dD4gd2ViQ29udGV4dCA9IGFkb3B0R1JlZihXRUJLSVRfV0VCX0NP
TlRFWFQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9DT05URVhULCBOVUxMKSkpOwotICAg
IHdlYkNvbnRleHQtPnByaXYtPmNvbnRleHQgPSBXS0NvbnRleHRDcmVhdGUoKTsKLSAgICB3ZWJD
b250ZXh0LT5wcml2LT5yZXF1ZXN0TWFuYWdlciA9IFdLQ29udGV4dEdldFNvdXBSZXF1ZXN0TWFu
YWdlcih3ZWJDb250ZXh0LT5wcml2LT5jb250ZXh0LmdldCgpKTsKLSAgICBXS0NvbnRleHRTZXRD
YWNoZU1vZGVsKHdlYkNvbnRleHQtPnByaXYtPmNvbnRleHQuZ2V0KCksIGtXS0NhY2hlTW9kZWxQ
cmltYXJ5V2ViQnJvd3Nlcik7CisgICAgV2ViS2l0V2ViQ29udGV4dFByaXZhdGUqIHByaXYgPSB3
ZWJDb250ZXh0LT5wcml2OworCisgICAgcHJpdi0+Y29udGV4dCA9IFdlYkNvbnRleHQ6OmNyZWF0
ZShTdHJpbmcoKSk7CisgICAgcHJpdi0+cmVxdWVzdE1hbmFnZXIgPSB3ZWJDb250ZXh0LT5wcml2
LT5jb250ZXh0LT5zb3VwUmVxdWVzdE1hbmFnZXJQcm94eSgpOworICAgIHByaXYtPmNvbnRleHQt
PnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsKKwogICAgIGF0dGFj
aERvd25sb2FkQ2xpZW50VG9Db250ZXh0KHdlYkNvbnRleHQuZ2V0KCkpOwogICAgIGF0dGFjaFJl
cXVlc3RNYW5hZ2VyQ2xpZW50VG9Db250ZXh0KHdlYkNvbnRleHQuZ2V0KCkpOworCiAjaWYgRU5B
QkxFKEdFT0xPQ0FUSU9OKQotICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIHdrR2VvbG9jYXRp
b25NYW5hZ2VyID0gV0tDb250ZXh0R2V0R2VvbG9jYXRpb25NYW5hZ2VyKHdlYkNvbnRleHQtPnBy
aXYtPmNvbnRleHQuZ2V0KCkpOwotICAgIHdlYkNvbnRleHQtPnByaXYtPmdlb2xvY2F0aW9uUHJv
dmlkZXIgPSBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpjcmVhdGUod2tHZW9sb2NhdGlvbk1h
bmFnZXIpOworICAgIHByaXYtPmdlb2xvY2F0aW9uUHJvdmlkZXIgPSBXZWJLaXRHZW9sb2NhdGlv
blByb3ZpZGVyOjpjcmVhdGUodG9BUEkocHJpdi0+Y29udGV4dC0+Z2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkoKSkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCi0gICAgd2ViQ29udGV4
dC0+cHJpdi0+dGV4dENoZWNrZXIgPSBXZWJLaXRUZXh0Q2hlY2tlcjo6Y3JlYXRlKCk7CisgICAg
cHJpdi0+dGV4dENoZWNrZXIgPSBXZWJLaXRUZXh0Q2hlY2tlcjo6Y3JlYXRlKCk7CiAjZW5kaWYK
ICAgICByZXR1cm4gd2ViQ29udGV4dC5nZXQoKTsKIH0KQEAgLTIwNCwyNiArMjA1LDI2IEBAIFdl
YktpdFdlYkNvbnRleHQqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCh2b2lkKQogICov
CiB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfY2FjaGVfbW9kZWwoV2ViS2l0V2ViQ29udGV4
dCogY29udGV4dCwgV2ViS2l0Q2FjaGVNb2RlbCBtb2RlbCkKIHsKLSAgICBXS0NhY2hlTW9kZWwg
Y2FjaGVNb2RlbDsKKyAgICBDYWNoZU1vZGVsIGNhY2hlTW9kZWw7CiAKICAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7CiAKICAgICBzd2l0Y2ggKG1v
ZGVsKSB7CiAgICAgY2FzZSBXRUJLSVRfQ0FDSEVfTU9ERUxfRE9DVU1FTlRfVklFV0VSOgotICAg
ICAgICBjYWNoZU1vZGVsID0ga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOworICAgICAgICBj
YWNoZU1vZGVsID0gQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUjoKLSAgICAgICAgY2FjaGVNb2Rl
bCA9IGtXS0NhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3NlcjsKKyAgICAgICAgY2FjaGVNb2RlbCA9
IENhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3NlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBX
RUJLSVRfQ0FDSEVfTU9ERUxfRE9DVU1FTlRfQlJPV1NFUjoKLSAgICAgICAgY2FjaGVNb2RlbCA9
IGtXS0NhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXI7CisgICAgICAgIGNhY2hlTW9kZWwgPSBDYWNo
ZU1vZGVsRG9jdW1lbnRCcm93c2VyOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAg
ICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwogICAgIH0KLSAgICBXZWJLaXRXZWJDb250ZXh0
UHJpdmF0ZSogcHJpdiA9IGNvbnRleHQtPnByaXY7Ci0gICAgaWYgKGNhY2hlTW9kZWwgIT0gV0tD
b250ZXh0R2V0Q2FjaGVNb2RlbChwcml2LT5jb250ZXh0LmdldCgpKSkKLSAgICAgICAgV0tDb250
ZXh0U2V0Q2FjaGVNb2RlbChwcml2LT5jb250ZXh0LmdldCgpLCBjYWNoZU1vZGVsKTsKKworICAg
IGlmIChjYWNoZU1vZGVsICE9IGNvbnRleHQtPnByaXYtPmNvbnRleHQtPmNhY2hlTW9kZWwoKSkK
KyAgICAgICAgY29udGV4dC0+cHJpdi0+Y29udGV4dC0+c2V0Q2FjaGVNb2RlbChjYWNoZU1vZGVs
KTsKIH0KIAogLyoqCkBAIC0yNDAsMTMgKzI0MSwxMiBAQCBXZWJLaXRDYWNoZU1vZGVsIHdlYmtp
dF93ZWJfY29udGV4dF9nZXRfY2FjaGVfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkK
IHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4
dCksIFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUik7CiAKLSAgICBXZWJLaXRXZWJDb250
ZXh0UHJpdmF0ZSogcHJpdiA9IGNvbnRleHQtPnByaXY7Ci0gICAgc3dpdGNoIChXS0NvbnRleHRH
ZXRDYWNoZU1vZGVsKHByaXYtPmNvbnRleHQuZ2V0KCkpKSB7Ci0gICAgY2FzZSBrV0tDYWNoZU1v
ZGVsRG9jdW1lbnRWaWV3ZXI6CisgICAgc3dpdGNoIChjb250ZXh0LT5wcml2LT5jb250ZXh0LT5j
YWNoZU1vZGVsKCkpIHsKKyAgICBjYXNlIENhY2hlTW9kZWxEb2N1bWVudFZpZXdlcjoKICAgICAg
ICAgcmV0dXJuIFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVI7Ci0gICAgY2FzZSBr
V0tDYWNoZU1vZGVsUHJpbWFyeVdlYkJyb3dzZXI6CisgICAgY2FzZSBDYWNoZU1vZGVsUHJpbWFy
eVdlYkJyb3dzZXI6CiAgICAgICAgIHJldHVybiBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VCX0JST1dT
RVI7Ci0gICAgY2FzZSBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyOgorICAgIGNhc2UgQ2Fj
aGVNb2RlbERvY3VtZW50QnJvd3NlcjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DQUNIRV9NT0RF
TF9ET0NVTUVOVF9CUk9XU0VSOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGdfYXNzZXJ0X25vdF9y
ZWFjaGVkKCk7CkBAIC0yNjYsMTEgKzI2NiwxMCBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9j
bGVhcl9jYWNoZShXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQogewogICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpKTsKIAotICAgIFdlYktpdFdlYkNv
bnRleHRQcml2YXRlKiBwcml2ID0gY29udGV4dC0+cHJpdjsKLSAgICBXS1Jlc291cmNlQ2FjaGVN
YW5hZ2VyQ2xlYXJDYWNoZUZvckFsbE9yaWdpbnMoV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1h
bmFnZXIocHJpdi0+Y29udGV4dC5nZXQoKSksIFdLUmVzb3VyY2VDYWNoZXNUb0NsZWFyQWxsKTsK
KyAgICBjb250ZXh0LT5wcml2LT5jb250ZXh0LT5yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KCkt
PmNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5zKEFsbFJlc291cmNlQ2FjaGVzKTsKIH0KIAotdHlwZWRl
ZiBIYXNoTWFwPFdLRG93bmxvYWRSZWYsIEdSZWZQdHI8V2ViS2l0RG93bmxvYWQ+ID4gRG93bmxv
YWRzTWFwOwordHlwZWRlZiBIYXNoTWFwPERvd25sb2FkUHJveHkqLCBHUmVmUHRyPFdlYktpdERv
d25sb2FkPiA+IERvd25sb2Fkc01hcDsKIAogc3RhdGljIERvd25sb2Fkc01hcCYgZG93bmxvYWRz
TWFwKCkKIHsKQEAgLTI5MywxMiArMjkyLDkgQEAgV2ViS2l0RG93bmxvYWQqIHdlYmtpdF93ZWJf
Y29udGV4dF9kb3dubG9hZF91cmkoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgY29uc3QKICAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCksIDAp
OwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHVyaSwgMCk7CiAKLSAgICBXZWJLaXRXZWJDb250
ZXh0UHJpdmF0ZSogcHJpdiA9IGNvbnRleHQtPnByaXY7Ci0gICAgV0tSZXRhaW5QdHI8V0tVUkxS
ZWY+IHdrVVJMKEFkb3B0V0ssIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHVyaSkpOwotICAg
IFdLUmV0YWluUHRyPFdLVVJMUmVxdWVzdFJlZj4gd2tSZXF1ZXN0KEFkb3B0V0ssIFdLVVJMUmVx
dWVzdENyZWF0ZVdpdGhXS1VSTCh3a1VSTC5nZXQoKSkpOwotICAgIFdLUmV0YWluUHRyPFdLRG93
bmxvYWRSZWY+IHdrRG93bmxvYWQgPSBXS0NvbnRleHREb3dubG9hZFVSTFJlcXVlc3QocHJpdi0+
Y29udGV4dC5nZXQoKSwgd2tSZXF1ZXN0LmdldCgpKTsKLSAgICBXZWJLaXREb3dubG9hZCogZG93
bmxvYWQgPSB3ZWJraXREb3dubG9hZENyZWF0ZSh3a0Rvd25sb2FkLmdldCgpKTsKLSAgICBkb3du
bG9hZHNNYXAoKS5zZXQod2tEb3dubG9hZC5nZXQoKSwgZG93bmxvYWQpOworICAgIERvd25sb2Fk
UHJveHkqIGRvd25sb2FkUHJveHkgPSBjb250ZXh0LT5wcml2LT5jb250ZXh0LT5kb3dubG9hZCgw
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QoU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSk7CisgICAg
V2ViS2l0RG93bmxvYWQqIGRvd25sb2FkID0gd2Via2l0RG93bmxvYWRDcmVhdGUodG9BUEkoZG93
bmxvYWRQcm94eSkpOworICAgIGRvd25sb2Fkc01hcCgpLnNldChkb3dubG9hZFByb3h5LCBkb3du
bG9hZCk7CiAgICAgcmV0dXJuIGRvd25sb2FkOwogfQogCkBAIC0zMTYsNyArMzEyLDcgQEAgV2Vi
S2l0Q29va2llTWFuYWdlciogd2Via2l0X3dlYl9jb250ZXh0X2dldF9jb29raWVfbWFuYWdlcihX
ZWJLaXRXZWJDb250ZXh0KiBjb24KIAogICAgIFdlYktpdFdlYkNvbnRleHRQcml2YXRlKiBwcml2
ID0gY29udGV4dC0+cHJpdjsKICAgICBpZiAoIXByaXYtPmNvb2tpZU1hbmFnZXIpCi0gICAgICAg
IHByaXYtPmNvb2tpZU1hbmFnZXIgPSBhZG9wdEdSZWYod2Via2l0Q29va2llTWFuYWdlckNyZWF0
ZShXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHByaXYtPmNvbnRleHQuZ2V0KCkpKSk7CisgICAg
ICAgIHByaXYtPmNvb2tpZU1hbmFnZXIgPSBhZG9wdEdSZWYod2Via2l0Q29va2llTWFuYWdlckNy
ZWF0ZSh0b0FQSShwcml2LT5jb250ZXh0LT5jb29raWVNYW5hZ2VyUHJveHkoKSkpKTsKIAogICAg
IHJldHVybiBwcml2LT5jb29raWVNYW5hZ2VyLmdldCgpOwogfQpAQCAtMzMzLDcgKzMyOSw3IEBA
IHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9hZGRpdGlvbmFsX3BsdWdpbnNfZGlyZWN0b3J5
KFdlYktpdFdlYkNvbnRleHQqIGNvbnRlCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNf
V0VCX0NPTlRFWFQoY29udGV4dCkpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwoZGlyZWN0b3J5KTsK
IAotICAgIHRvSW1wbChjb250ZXh0LT5wcml2LT5jb250ZXh0LmdldCgpKS0+c2V0QWRkaXRpb25h
bFBsdWdpbnNEaXJlY3RvcnkoV2ViQ29yZTo6ZmlsZW5hbWVUb1N0cmluZyhkaXJlY3RvcnkpKTsK
KyAgICBjb250ZXh0LT5wcml2LT5jb250ZXh0LT5zZXRBZGRpdGlvbmFsUGx1Z2luc0RpcmVjdG9y
eShXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5nKGRpcmVjdG9yeSkpOwogfQogCiBzdHJ1Y3QgR2V0
UGx1Z2luc0FzeW5jRGF0YSB7CkBAIC0zNDQsNyArMzQwLDcgQEAgV0VCS0lUX0RFRklORV9BU1lO
Q19EQVRBX1NUUlVDVChHZXRQbHVnaW5zQXN5bmNEYXRhKQogc3RhdGljIHZvaWQgd2Via2l0V2Vi
Q29udGV4dEdldFBsdWdpblRocmVhZChHU2ltcGxlQXN5bmNSZXN1bHQqIHJlc3VsdCwgR09iamVj
dCogb2JqZWN0LCBHQ2FuY2VsbGFibGUqKQogewogICAgIEdldFBsdWdpbnNBc3luY0RhdGEqIGRh
dGEgPSBzdGF0aWNfY2FzdDxHZXRQbHVnaW5zQXN5bmNEYXRhKj4oZ19zaW1wbGVfYXN5bmNfcmVz
dWx0X2dldF9vcF9yZXNfZ3BvaW50ZXIocmVzdWx0KSk7Ci0gICAgZGF0YS0+cGx1Z2lucyA9IHRv
SW1wbChXRUJLSVRfV0VCX0NPTlRFWFQob2JqZWN0KS0+cHJpdi0+Y29udGV4dC5nZXQoKSktPnBs
dWdpbkluZm9TdG9yZSgpLnBsdWdpbnMoKTsKKyAgICBkYXRhLT5wbHVnaW5zID0gV0VCS0lUX1dF
Ql9DT05URVhUKG9iamVjdCktPnByaXYtPmNvbnRleHQtPnBsdWdpbkluZm9TdG9yZSgpLnBsdWdp
bnMoKTsKIH0KIAogLyoqCkBAIC00NTEsOCArNDQ3LDcgQEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRl
eHRfcmVnaXN0ZXJfdXJpX3NjaGVtZShXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBjb25zdCBj
aGEKIAogICAgIFJlZlB0cjxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHRS
ZWYobmV3IFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoY2FsbGJhY2ssIHVzZXJEYXRhLCBkZXN0cm95
Tm90aWZ5KSk7CiAgICAgY29udGV4dC0+cHJpdi0+dXJpU2NoZW1lSGFuZGxlcnMuc2V0KFN0cmlu
Zzo6ZnJvbVVURjgoc2NoZW1lKSwgaGFuZGxlci5nZXQoKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHdrU2NoZW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KHNjaGVtZSkpOwotICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyUmVnaXN0ZXJVUklTY2hlbWUoY29u
dGV4dC0+cHJpdi0+cmVxdWVzdE1hbmFnZXIuZ2V0KCksIHdrU2NoZW1lLmdldCgpKTsKKyAgICBj
b250ZXh0LT5wcml2LT5yZXF1ZXN0TWFuYWdlci0+cmVnaXN0ZXJVUklTY2hlbWUoU3RyaW5nOjpm
cm9tVVRGOChzY2hlbWUpKTsKIH0KIAogLyoqCkBAIC01NjYsMjAgKzU2MSwyMCBAQCB2b2lkIHdl
YmtpdF93ZWJfY29udGV4dF9zZXRfcHJlZmVycmVkX2xhbmd1YWdlcyhXZWJLaXRXZWJDb250ZXh0
KiBjb250ZXh0LCBjb25zdAogICAgIFdlYkNvcmU6Omxhbmd1YWdlRGlkQ2hhbmdlKCk7CiB9CiAK
LVdlYktpdERvd25sb2FkKiB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZChXS0Rv
d25sb2FkUmVmIHdrRG93bmxvYWQpCitXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdl
dE9yQ3JlYXRlRG93bmxvYWQoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSkKIHsKLSAgICBH
UmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IGRvd25sb2Fkc01hcCgpLmdldCh3a0Rv
d25sb2FkKTsKKyAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IGRvd25sb2Fk
c01hcCgpLmdldChkb3dubG9hZFByb3h5KTsKICAgICBpZiAoZG93bmxvYWQpCiAgICAgICAgIHJl
dHVybiBkb3dubG9hZC5nZXQoKTsKIAotICAgIGRvd25sb2FkID0gYWRvcHRHUmVmKHdlYmtpdERv
d25sb2FkQ3JlYXRlKHdrRG93bmxvYWQpKTsKLSAgICBkb3dubG9hZHNNYXAoKS5zZXQod2tEb3du
bG9hZCwgZG93bmxvYWQuZ2V0KCkpOworICAgIGRvd25sb2FkID0gYWRvcHRHUmVmKHdlYmtpdERv
d25sb2FkQ3JlYXRlKHRvQVBJKGRvd25sb2FkUHJveHkpKSk7CisgICAgZG93bmxvYWRzTWFwKCku
c2V0KGRvd25sb2FkUHJveHksIGRvd25sb2FkLmdldCgpKTsKICAgICByZXR1cm4gZG93bmxvYWQu
Z2V0KCk7CiB9CiAKLXZvaWQgd2Via2l0V2ViQ29udGV4dFJlbW92ZURvd25sb2FkKFdLRG93bmxv
YWRSZWYgd2tEb3dubG9hZCkKK3ZvaWQgd2Via2l0V2ViQ29udGV4dFJlbW92ZURvd25sb2FkKERv
d25sb2FkUHJveHkqIGRvd25sb2FkUHJveHkpCiB7Ci0gICAgZG93bmxvYWRzTWFwKCkucmVtb3Zl
KHdrRG93bmxvYWQpOworICAgIGRvd25sb2Fkc01hcCgpLnJlbW92ZShkb3dubG9hZFByb3h5KTsK
IH0KIAogdm9pZCB3ZWJraXRXZWJDb250ZXh0RG93bmxvYWRTdGFydGVkKFdlYktpdFdlYkNvbnRl
eHQqIGNvbnRleHQsIFdlYktpdERvd25sb2FkKiBkb3dubG9hZCkKQEAgLTU4NywxNCArNTgyLDE0
IEBAIHZvaWQgd2Via2l0V2ViQ29udGV4dERvd25sb2FkU3RhcnRlZChXZWJLaXRXZWJDb250ZXh0
KiBjb250ZXh0LCBXZWJLaXREb3dubG9hZCoKICAgICBnX3NpZ25hbF9lbWl0KGNvbnRleHQsIHNp
Z25hbHNbRE9XTkxPQURfU1RBUlRFRF0sIDAsIGRvd25sb2FkKTsKIH0KIAotV0tDb250ZXh0UmVm
IHdlYmtpdFdlYkNvbnRleHRHZXRXS0NvbnRleHQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkK
K1dlYkNvbnRleHQqIHdlYmtpdFdlYkNvbnRleHRHZXRDb250ZXh0KFdlYktpdFdlYkNvbnRleHQq
IGNvbnRleHQpCiB7CiAgICAgZ19hc3NlcnQoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQp
KTsKIAogICAgIHJldHVybiBjb250ZXh0LT5wcml2LT5jb250ZXh0LmdldCgpOwogfQogCi1XS1Nv
dXBSZXF1ZXN0TWFuYWdlclJlZiB3ZWJraXRXZWJDb250ZXh0R2V0UmVxdWVzdE1hbmFnZXIoV2Vi
S2l0V2ViQ29udGV4dCogY29udGV4dCkKK1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5KiB3ZWJr
aXRXZWJDb250ZXh0R2V0UmVxdWVzdE1hbmFnZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkK
IHsKICAgICByZXR1cm4gY29udGV4dC0+cHJpdi0+cmVxdWVzdE1hbmFnZXIuZ2V0KCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Q29udGV4dFByaXZhdGUuaAppbmRleCA5ZTU1MzZiLi42N2JlNDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2
YXRlLmgKQEAgLTI2LDE1ICsyNiwyMCBAQAogI2lmbmRlZiBXZWJLaXRXZWJDb250ZXh0UHJpdmF0
ZV9oCiAjZGVmaW5lIFdlYktpdFdlYkNvbnRleHRQcml2YXRlX2gKIAorI2luY2x1ZGUgIkRvd25s
b2FkUHJveHkuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCIKICNpbmNsdWRlICJX
ZWJLaXRXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHku
aCIKIAotV0tDb250ZXh0UmVmIHdlYmtpdFdlYkNvbnRleHRHZXRXS0NvbnRleHQoV2ViS2l0V2Vi
Q29udGV4dCopOwotV2ViS2l0RG93bmxvYWQqIHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURv
d25sb2FkKFdLRG93bmxvYWRSZWYpOwotdm9pZCB3ZWJraXRXZWJDb250ZXh0UmVtb3ZlRG93bmxv
YWQoV0tEb3dubG9hZFJlZik7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXZWJDb250ZXh0
KiB3ZWJraXRXZWJDb250ZXh0R2V0Q29udGV4dChXZWJLaXRXZWJDb250ZXh0Kik7CitXZWJLaXRE
b3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQoRG93bmxvYWRQcm94
eSopOwordm9pZCB3ZWJraXRXZWJDb250ZXh0UmVtb3ZlRG93bmxvYWQoRG93bmxvYWRQcm94eSop
Owogdm9pZCB3ZWJraXRXZWJDb250ZXh0RG93bmxvYWRTdGFydGVkKFdlYktpdFdlYkNvbnRleHQq
LCBXZWJLaXREb3dubG9hZCopOwotV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgd2Via2l0V2ViQ29u
dGV4dEdldFJlcXVlc3RNYW5hZ2VyKFdlYktpdFdlYkNvbnRleHQqKTsKK1dlYlNvdXBSZXF1ZXN0
TWFuYWdlclByb3h5KiB3ZWJraXRXZWJDb250ZXh0R2V0UmVxdWVzdE1hbmFnZXIoV2ViS2l0V2Vi
Q29udGV4dCopOwogdm9pZCB3ZWJraXRXZWJDb250ZXh0UmVjZWl2ZWRVUklSZXF1ZXN0KFdlYktp
dFdlYkNvbnRleHQqLCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Kik7CiB2b2lkIHdlYmtpdFdlYkNv
bnRleHREaWRGYWlsVG9Mb2FkVVJJUmVxdWVzdChXZWJLaXRXZWJDb250ZXh0KiwgdWludDY0X3Qg
cmVxdWVzdElEKTsKIHZvaWQgd2Via2l0V2ViQ29udGV4dERpZEZpbmlzaFVSSVJlcXVlc3QoV2Vi
S2l0V2ViQ29udGV4dCosIHVpbnQ2NF90IHJlcXVlc3RJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGVjMjRhNjAuLmYz
N2U0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXcuY3BwCkBAIC0zMjYsNyArMzI2LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmll
d0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSog
cHJpdiA9IHdlYlZpZXctPnByaXY7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNl
ID0gV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldyk7CiAKLSAgICB3ZWJraXRXZWJWaWV3QmFz
ZUNyZWF0ZVdlYlBhZ2Uod2ViVmlld0Jhc2UsIHRvSW1wbCh3ZWJraXRXZWJDb250ZXh0R2V0V0tD
b250ZXh0KHByaXYtPmNvbnRleHQpKSwgMCk7CisgICAgd2Via2l0V2ViVmlld0Jhc2VDcmVhdGVX
ZWJQYWdlKHdlYlZpZXdCYXNlLCB3ZWJraXRXZWJDb250ZXh0R2V0Q29udGV4dChwcml2LT5jb250
ZXh0KSwgMCk7CiAKICAgICBhdHRhY2hMb2FkZXJDbGllbnRUb1ZpZXcod2ViVmlldyk7CiAgICAg
YXR0YWNoVUlDbGllbnRUb1ZpZXcod2ViVmlldyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166480</attachid>
            <date>2012-10-01 08:39:39 -0700</date>
            <delta_ts>2012-10-06 23:43:28 -0700</delta_ts>
            <desc>Updated patch to apply on current git master</desc>
            <filename>wk2-kill-c-api-web-context2.diff</filename>
            <type>text/plain</type>
            <size>21951</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwZGExNzRhLi4xMTY0ZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkg
QEAKKzIwMTItMTAtMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIERvbid0IHVzZSB0aGUgQyBBUEkgaW50ZXJuYWxseSBpbiBXZWJL
aXRXZWJDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05Njc2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVzaW5nIHRoZSBDKysgY2xhc3NlcyBkaXJlY3RseSBpbnN0ZWFkIG9mIHRoZSBDIEFQSSB3
cmFwcGVycyB3ZQorICAgICAgICBhdm9pZCBhIGxvdCBvZiB0b0ltcGwvdG9BUEkgY2FzdHMsIHN0
cmluZyBjb252ZXJzaW9ucyBhbmQKKyAgICAgICAgYWxsb2NhdGlvbnMuIFRoZSBjb2RlIGlzIGFs
c28gYSBsb3Qgc2ltcGxlciBhbmQgZWFzaWVyIHRvIHJlYWQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVudC5jcHA6CisgICAgICAgIChkaWRTdGFydCk6
CisgICAgICAgIChkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoZGlkUmVjZWl2ZURhdGEp
OgorICAgICAgICAoZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAg
ICAgICAoZGlkQ3JlYXRlRGVzdGluYXRpb24pOgorICAgICAgICAoZGlkRmFpbCk6CisgICAgICAg
IChkaWRDYW5jZWwpOgorICAgICAgICAoZGlkRmluaXNoKToKKyAgICAgICAgKGF0dGFjaERvd25s
b2FkQ2xpZW50VG9Db250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRS
ZXF1ZXN0TWFuYWdlckNsaWVudC5jcHA6CisgICAgICAgIChhdHRhY2hSZXF1ZXN0TWFuYWdlckNs
aWVudFRvQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2VjdXJp
dHlNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHJlZ2lzdGVyU2VjdXJpdHlQb2xpY3lGb3JVUklTY2hl
bWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwOgor
ICAgICAgICAoX1dlYktpdFdlYkNvbnRleHRQcml2YXRlKToKKyAgICAgICAgKGNyZWF0ZURlZmF1
bHRXZWJDb250ZXh0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfY2FjaGVfbW9k
ZWwpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2dldF9jYWNoZV9tb2RlbCk6CisgICAg
ICAgICh3ZWJraXRfd2ViX2NvbnRleHRfY2xlYXJfY2FjaGUpOgorICAgICAgICAod2Via2l0X3dl
Yl9jb250ZXh0X2Rvd25sb2FkX3VyaSk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0
X2Nvb2tpZV9tYW5hZ2VyKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZmF2aWNv
bl9kYXRhYmFzZV9kaXJlY3RvcnkpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2dldF9m
YXZpY29uX2RhdGFiYXNlKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfYWRkaXRp
b25hbF9wbHVnaW5zX2RpcmVjdG9yeSk6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0R2V0UGx1
Z2luVGhyZWFkKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2No
ZW1lKToKKyAgICAgICAgKHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKToKKyAg
ICAgICAgKHdlYmtpdFdlYkNvbnRleHRSZW1vdmVEb3dubG9hZCk6CisgICAgICAgICh3ZWJraXRX
ZWJDb250ZXh0R2V0Q29udGV4dCk6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0R2V0UmVxdWVz
dE1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6
CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uc3RydWN0ZWQpOgorCiAyMDEyLTA5LTI3ICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0
XSBGaXggdmlld3BvcnQgUU1MIGF1dG8gdGVzdHMgYWZ0ZXIgdGhlIHZpZXdwb3J0IGNoYW5nZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25s
b2FkQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERv
d25sb2FkQ2xpZW50LmNwcAppbmRleCA2ZTcyNDk2Li43OWMxYzNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWRDbGllbnQu
Y3BwCkBAIC0zNCwxMyArMzQsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogc3RhdGlj
IHZvaWQgZGlkU3RhcnQoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgR1JlZlB0cjxXZWJLaXREb3dubG9hZD4gZG93
bmxvYWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZCh3a0Rvd25sb2FkKTsK
KyAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNvbnRleHRH
ZXRPckNyZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiAgICAgd2Via2l0V2ViQ29u
dGV4dERvd25sb2FkU3RhcnRlZChXRUJLSVRfV0VCX0NPTlRFWFQoY2xpZW50SW5mbyksIGRvd25s
b2FkLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdLQ29udGV4
dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1VSTFJlc3BvbnNlUmVmIHdrUmVzcG9u
c2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgR1JlZlB0cjxXZWJLaXREb3dubG9h
ZD4gZG93bmxvYWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZCh3a0Rvd25s
b2FkKTsKKyAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNv
bnRleHRHZXRPckNyZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiAgICAgaWYgKHdl
YmtpdERvd25sb2FkSXNDYW5jZWxsZWQoZG93bmxvYWQuZ2V0KCkpKQogICAgICAgICByZXR1cm47
CiAKQEAgLTUwLDEzICs1MCwxMyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV0tD
b250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLVVJMUmVzcAogCiBzdGF0aWMg
dm9pZCBkaWRSZWNlaXZlRGF0YShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9h
ZCwgdWludDY0X3QgbGVuZ3RoLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIEdSZWZQ
dHI8V2ViS2l0RG93bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRl
RG93bmxvYWQod2tEb3dubG9hZCk7CisgICAgR1JlZlB0cjxXZWJLaXREb3dubG9hZD4gZG93bmxv
YWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZCh0b0ltcGwod2tEb3dubG9h
ZCkpOwogICAgIHdlYmtpdERvd25sb2FkTm90aWZ5UHJvZ3Jlc3MoZG93bmxvYWQuZ2V0KCksIGxl
bmd0aCk7CiB9CiAKIHN0YXRpYyBXS1N0cmluZ1JlZiBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tT
dHJpbmdSZWYgZmlsZW5hbWUsIGJvb2wqIGFsbG93T3ZlcndyaXRlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewotICAgIEdSZWZQdHI8V2ViS2l0RG93bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0
V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQod2tEb3dubG9hZCk7CisgICAgR1JlZlB0cjxX
ZWJLaXREb3dubG9hZD4gZG93bmxvYWQgPSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3du
bG9hZCh0b0ltcGwod2tEb3dubG9hZCkpOwogICAgIENTdHJpbmcgZGVzdGluYXRpb25VUkkgPSB3
ZWJraXREb3dubG9hZERlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKGRvd25s
b2FkLmdldCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW1wbChmaWxlbmFtZSktPnN0
cmluZygpLnV0ZjgoKSk7CiAgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KGRlc3RpbmF0aW9uVVJJLmRhdGEoKSk7CkBAIC02NCwzMyArNjQsMzMgQEAgc3RhdGljIFdLU3Ry
aW5nUmVmIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKFdLQ29udGV4dFJl
ZiwgV0tEb3dubG8KIAogc3RhdGljIHZvaWQgZGlkQ3JlYXRlRGVzdGluYXRpb24oV0tDb250ZXh0
UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVmIHBhdGgsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiB7Ci0gICAgR1JlZlB0cjxXZWJLaXREb3dubG9hZD4gZG93bmxvYWQg
PSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZCh3a0Rvd25sb2FkKTsKKyAgICBH
UmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNvbnRleHRHZXRPckNy
ZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiAgICAgd2Via2l0RG93bmxvYWREZXN0
aW5hdGlvbkNyZWF0ZWQoZG93bmxvYWQuZ2V0KCksIHRvSW1wbChwYXRoKS0+c3RyaW5nKCkudXRm
OCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkRmFpbChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRS
ZWYgd2tEb3dubG9hZCwgV0tFcnJvclJlZiBlcnJvciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
IHsKLSAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNvbnRl
eHRHZXRPckNyZWF0ZURvd25sb2FkKHdrRG93bmxvYWQpOworICAgIEdSZWZQdHI8V2ViS2l0RG93
bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQodG9J
bXBsKHdrRG93bmxvYWQpKTsKICAgICBpZiAod2Via2l0RG93bmxvYWRJc0NhbmNlbGxlZChkb3du
bG9hZC5nZXQoKSkpIHsKICAgICAgICAgLy8gQ2FuY2VsbGF0aW9uIHRha2VzIHByZWNlZGVuY2Ug
b3ZlciBvdGhlciBlcnJvcnMuCiAgICAgICAgIHdlYmtpdERvd25sb2FkQ2FuY2VsbGVkKGRvd25s
b2FkLmdldCgpKTsKICAgICB9IGVsc2UKICAgICAgICAgd2Via2l0RG93bmxvYWRGYWlsZWQoZG93
bmxvYWQuZ2V0KCksIHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJyb3IoKSk7Ci0gICAgd2Via2l0
V2ViQ29udGV4dFJlbW92ZURvd25sb2FkKHdrRG93bmxvYWQpOworICAgIHdlYmtpdFdlYkNvbnRl
eHRSZW1vdmVEb3dubG9hZCh0b0ltcGwod2tEb3dubG9hZCkpOwogfQogCiBzdGF0aWMgdm9pZCBk
aWRDYW5jZWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCiB7Ci0gICAgR1JlZlB0cjxXZWJLaXREb3dubG9hZD4gZG93bmxvYWQg
PSB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZCh3a0Rvd25sb2FkKTsKKyAgICBH
UmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNvbnRleHRHZXRPckNy
ZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiAgICAgd2Via2l0RG93bmxvYWRDYW5j
ZWxsZWQoZG93bmxvYWQuZ2V0KCkpOwotICAgIHdlYmtpdFdlYkNvbnRleHRSZW1vdmVEb3dubG9h
ZCh3a0Rvd25sb2FkKTsKKyAgICB3ZWJraXRXZWJDb250ZXh0UmVtb3ZlRG93bmxvYWQodG9JbXBs
KHdrRG93bmxvYWQpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkRmluaXNoKFdLQ29udGV4dFJlZiB3
a0NvbnRleHQsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
bykKIHsKLSAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNv
bnRleHRHZXRPckNyZWF0ZURvd25sb2FkKHdrRG93bmxvYWQpOworICAgIEdSZWZQdHI8V2ViS2l0
RG93bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQo
dG9JbXBsKHdrRG93bmxvYWQpKTsKICAgICB3ZWJraXREb3dubG9hZEZpbmlzaGVkKGRvd25sb2Fk
LmdldCgpKTsKLSAgICB3ZWJraXRXZWJDb250ZXh0UmVtb3ZlRG93bmxvYWQod2tEb3dubG9hZCk7
CisgICAgd2Via2l0V2ViQ29udGV4dFJlbW92ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7
CiB9CiAKIHZvaWQgYXR0YWNoRG93bmxvYWRDbGllbnRUb0NvbnRleHQoV2ViS2l0V2ViQ29udGV4
dCogd2ViQ29udGV4dCkKQEAgLTExMCw2ICsxMTAsNiBAQCB2b2lkIGF0dGFjaERvd25sb2FkQ2xp
ZW50VG9Db250ZXh0KFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCiAgICAgICAgIGRpZENh
bmNlbCwKICAgICAgICAgMCwgLy8gcHJvY2Vzc0RpZENyYXNoCiAgICAgfTsKLSAgICBXS0NvbnRl
eHRTZXREb3dubG9hZENsaWVudCh3ZWJraXRXZWJDb250ZXh0R2V0V0tDb250ZXh0KHdlYkNvbnRl
eHQpLCAmd2tEb3dubG9hZENsaWVudCk7CisgICAgV0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQo
dG9BUEkod2Via2l0V2ViQ29udGV4dEdldENvbnRleHQod2ViQ29udGV4dCkpLCAmd2tEb3dubG9h
ZENsaWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcAppbmRleCA4ZWEwOWYy
Li5kZTk0ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0UmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwCkBAIC00Niw2ICs0Niw2
IEBAIHZvaWQgYXR0YWNoUmVxdWVzdE1hbmFnZXJDbGllbnRUb0NvbnRleHQoV2ViS2l0V2ViQ29u
dGV4dCogd2ViQ29udGV4dCkKICAgICAgICAgZGlkUmVjZWl2ZVVSSVJlcXVlc3QsCiAgICAgICAg
IGRpZEZhaWxUb0xvYWRVUklSZXF1ZXN0CiAgICAgfTsKLSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdl
clNldENsaWVudCh3ZWJraXRXZWJDb250ZXh0R2V0UmVxdWVzdE1hbmFnZXIod2ViQ29udGV4dCks
ICZ3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50KTsKKyAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlclNldENs
aWVudCh0b0FQSSh3ZWJraXRXZWJDb250ZXh0R2V0UmVxdWVzdE1hbmFnZXIod2ViQ29udGV4dCkp
LCAmd2tSZXF1ZXN0TWFuYWdlckNsaWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNlY3VyaXR5TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZWN1cml0eU1hbmFnZXIuY3BwCmluZGV4
IDUzYjQ2ZjguLmQxNzBmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFNlY3VyaXR5TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBXZWJLaXRTZWN1cml0eU1hbmFnZXIqIHdlYmtpdFNlY3VyaXR5TWFuYWdlckNyZWF0ZShXZWJL
aXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0KQogc3RhdGljIHZvaWQgcmVnaXN0ZXJTZWN1cml0eVBv
bGljeUZvclVSSVNjaGVtZShXZWJLaXRTZWN1cml0eU1hbmFnZXIqIG1hbmFnZXIsIGNvbnN0IGNo
YXIqIHNjaGVtZSwgU2VjdXJpdHlQb2xpY3kgcG9saWN5KQogewogICAgIFN0cmluZyB1cmxTY2hl
bWUgPSBTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSk7Ci0gICAgV2ViQ29udGV4dCogd2ViQ29udGV4
dCA9IHRvSW1wbCh3ZWJraXRXZWJDb250ZXh0R2V0V0tDb250ZXh0KG1hbmFnZXItPnByaXYtPndl
YkNvbnRleHQpKTsKKyAgICBXZWJDb250ZXh0KiB3ZWJDb250ZXh0ID0gd2Via2l0V2ViQ29udGV4
dEdldENvbnRleHQobWFuYWdlci0+cHJpdi0+d2ViQ29udGV4dCk7CiAKICAgICAvLyBXZSBrZWVw
IHRoZSBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeSBvZiB0aGUgVUkgcHJvY2VzcyBpbiBzeW5jIHdp
dGggdGhlCiAgICAgLy8gd2ViIHByb2Nlc3Mgb25lLCBzbyB0aGF0IHdlIGNhbiByZXR1cm4gdGhl
IFNlY3VyaXR5UG9saWN5IGZvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCAyOGZlOTliLi4yZWNjMTAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0LmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IldlYktpdFdlYkNvbnRleHQuaCIKIAotI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViS2l0Q29va2ll
TWFuYWdlclByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXREb3dubG9hZENsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYktpdERvd25sb2FkUHJpdmF0ZS5oIgpAQCAtNDQsOCArNDQsNiBAQAogI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KIGVudW0gewogICAgIERPV05MT0FEX1NUQVJU
RUQsCiAKQEAgLTk1LDEyICs5MywxMiBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8
V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4gPiBVUklTY2hlbWVIYW5kbGVyTWFwOwogdHlwZWRlZiBI
YXNoTWFwPHVpbnQ2NF90LCBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVlc3Q+ID4gVVJJU2No
ZW1lUmVxdWVzdE1hcDsKIAogc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSB7Ci0gICAg
V0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0OworICAgIFJlZlB0cjxXZWJDb250ZXh0
PiBjb250ZXh0OwogCiAgICAgR1JlZlB0cjxXZWJLaXRDb29raWVNYW5hZ2VyPiBjb29raWVNYW5h
Z2VyOwogICAgIEdSZWZQdHI8V2ViS2l0RmF2aWNvbkRhdGFiYXNlPiBmYXZpY29uRGF0YWJhc2U7
CiAgICAgR1JlZlB0cjxXZWJLaXRTZWN1cml0eU1hbmFnZXI+IHNlY3VyaXR5TWFuYWdlcjsKLSAg
ICBXS1JldGFpblB0cjxXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZj4gcmVxdWVzdE1hbmFnZXI7Cisg
ICAgUmVmUHRyPFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PiByZXF1ZXN0TWFuYWdlcjsKICAg
ICBVUklTY2hlbWVIYW5kbGVyTWFwIHVyaVNjaGVtZUhhbmRsZXJzOwogICAgIFVSSVNjaGVtZVJl
cXVlc3RNYXAgdXJpU2NoZW1lUmVxdWVzdHM7CiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQpAQCAt
MTU2LDE3ICsxNTQsMjAgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X2NsYXNzX2lu
aXQoV2ViS2l0V2ViQ29udGV4dENsYXNzKiB3ZWJDb250ZXh0Q2xhc3MKIHN0YXRpYyBncG9pbnRl
ciBjcmVhdGVEZWZhdWx0V2ViQ29udGV4dChncG9pbnRlcikKIHsKICAgICBzdGF0aWMgR1JlZlB0
cjxXZWJLaXRXZWJDb250ZXh0PiB3ZWJDb250ZXh0ID0gYWRvcHRHUmVmKFdFQktJVF9XRUJfQ09O
VEVYVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0NPTlRFWFQsIE5VTEwpKSk7Ci0gICAg
d2ViQ29udGV4dC0+cHJpdi0+Y29udGV4dCA9IFdLQ29udGV4dENyZWF0ZSgpOwotICAgIHdlYkNv
bnRleHQtPnByaXYtPnJlcXVlc3RNYW5hZ2VyID0gV0tDb250ZXh0R2V0U291cFJlcXVlc3RNYW5h
Z2VyKHdlYkNvbnRleHQtPnByaXYtPmNvbnRleHQuZ2V0KCkpOwotICAgIFdLQ29udGV4dFNldENh
Y2hlTW9kZWwod2ViQ29udGV4dC0+cHJpdi0+Y29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbFBy
aW1hcnlXZWJCcm93c2VyKTsKKyAgICBXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSogcHJpdiA9IHdl
YkNvbnRleHQtPnByaXY7CisKKyAgICBwcml2LT5jb250ZXh0ID0gV2ViQ29udGV4dDo6Y3JlYXRl
KFN0cmluZygpKTsKKyAgICBwcml2LT5yZXF1ZXN0TWFuYWdlciA9IHdlYkNvbnRleHQtPnByaXYt
PmNvbnRleHQtPnNvdXBSZXF1ZXN0TWFuYWdlclByb3h5KCk7CisgICAgcHJpdi0+Y29udGV4dC0+
c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsUHJpbWFyeVdlYkJyb3dzZXIpOworCiAgICAgYXR0YWNo
RG93bmxvYWRDbGllbnRUb0NvbnRleHQod2ViQ29udGV4dC5nZXQoKSk7CiAgICAgYXR0YWNoUmVx
dWVzdE1hbmFnZXJDbGllbnRUb0NvbnRleHQod2ViQ29udGV4dC5nZXQoKSk7CisKICNpZiBFTkFC
TEUoR0VPTE9DQVRJT04pCi0gICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgd2tHZW9sb2NhdGlv
bk1hbmFnZXIgPSBXS0NvbnRleHRHZXRHZW9sb2NhdGlvbk1hbmFnZXIod2ViQ29udGV4dC0+cHJp
di0+Y29udGV4dC5nZXQoKSk7Ci0gICAgd2ViQ29udGV4dC0+cHJpdi0+Z2VvbG9jYXRpb25Qcm92
aWRlciA9IFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI6OmNyZWF0ZSh3a0dlb2xvY2F0aW9uTWFu
YWdlcik7CisgICAgcHJpdi0+Z2VvbG9jYXRpb25Qcm92aWRlciA9IFdlYktpdEdlb2xvY2F0aW9u
UHJvdmlkZXI6OmNyZWF0ZSh0b0FQSShwcml2LT5jb250ZXh0LT5nZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eSgpKSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoU1BFTExDSEVDSykKLSAgICB3ZWJDb250ZXh0
LT5wcml2LT50ZXh0Q2hlY2tlciA9IFdlYktpdFRleHRDaGVja2VyOjpjcmVhdGUoKTsKKyAgICBw
cml2LT50ZXh0Q2hlY2tlciA9IFdlYktpdFRleHRDaGVja2VyOjpjcmVhdGUoKTsKICNlbmRpZgog
ICAgIHJldHVybiB3ZWJDb250ZXh0LmdldCgpOwogfQpAQCAtMjEwLDI2ICsyMTEsMjYgQEAgV2Vi
S2l0V2ViQ29udGV4dCogd2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0KHZvaWQpCiAgKi8K
IHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9jYWNoZV9tb2RlbChXZWJLaXRXZWJDb250ZXh0
KiBjb250ZXh0LCBXZWJLaXRDYWNoZU1vZGVsIG1vZGVsKQogewotICAgIFdLQ2FjaGVNb2RlbCBj
YWNoZU1vZGVsOworICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbDsKIAogICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpKTsKIAogICAgIHN3aXRjaCAobW9k
ZWwpIHsKICAgICBjYXNlIFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVI6Ci0gICAg
ICAgIGNhY2hlTW9kZWwgPSBrV0tDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7CisgICAgICAgIGNh
Y2hlTW9kZWwgPSBDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSOgotICAgICAgICBjYWNoZU1vZGVs
ID0ga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOworICAgICAgICBjYWNoZU1vZGVsID0g
Q2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdF
QktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9CUk9XU0VSOgotICAgICAgICBjYWNoZU1vZGVsID0g
a1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3NlcjsKKyAgICAgICAgY2FjaGVNb2RlbCA9IENhY2hl
TW9kZWxEb2N1bWVudEJyb3dzZXI7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CiAgICAgfQotICAgIFdlYktpdFdlYkNvbnRleHRQ
cml2YXRlKiBwcml2ID0gY29udGV4dC0+cHJpdjsKLSAgICBpZiAoY2FjaGVNb2RlbCAhPSBXS0Nv
bnRleHRHZXRDYWNoZU1vZGVsKHByaXYtPmNvbnRleHQuZ2V0KCkpKQotICAgICAgICBXS0NvbnRl
eHRTZXRDYWNoZU1vZGVsKHByaXYtPmNvbnRleHQuZ2V0KCksIGNhY2hlTW9kZWwpOworCisgICAg
aWYgKGNhY2hlTW9kZWwgIT0gY29udGV4dC0+cHJpdi0+Y29udGV4dC0+Y2FjaGVNb2RlbCgpKQor
ICAgICAgICBjb250ZXh0LT5wcml2LT5jb250ZXh0LT5zZXRDYWNoZU1vZGVsKGNhY2hlTW9kZWwp
OwogfQogCiAvKioKQEAgLTI0NiwxMyArMjQ3LDEyIEBAIFdlYktpdENhY2hlTW9kZWwgd2Via2l0
X3dlYl9jb250ZXh0X2dldF9jYWNoZV9tb2RlbChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQog
ewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0
KSwgV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSKTsKIAotICAgIFdlYktpdFdlYkNvbnRl
eHRQcml2YXRlKiBwcml2ID0gY29udGV4dC0+cHJpdjsKLSAgICBzd2l0Y2ggKFdLQ29udGV4dEdl
dENhY2hlTW9kZWwocHJpdi0+Y29udGV4dC5nZXQoKSkpIHsKLSAgICBjYXNlIGtXS0NhY2hlTW9k
ZWxEb2N1bWVudFZpZXdlcjoKKyAgICBzd2l0Y2ggKGNvbnRleHQtPnByaXYtPmNvbnRleHQtPmNh
Y2hlTW9kZWwoKSkgeworICAgIGNhc2UgQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOgogICAgICAg
ICByZXR1cm4gV0VCS0lUX0NBQ0hFX01PREVMX0RPQ1VNRU5UX1ZJRVdFUjsKLSAgICBjYXNlIGtX
S0NhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3NlcjoKKyAgICBjYXNlIENhY2hlTW9kZWxQcmltYXJ5
V2ViQnJvd3NlcjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NF
UjsKLSAgICBjYXNlIGtXS0NhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXI6CisgICAgY2FzZSBDYWNo
ZU1vZGVsRG9jdW1lbnRCcm93c2VyOgogICAgICAgICByZXR1cm4gV0VCS0lUX0NBQ0hFX01PREVM
X0RPQ1VNRU5UX0JST1dTRVI7CiAgICAgZGVmYXVsdDoKICAgICAgICAgZ19hc3NlcnRfbm90X3Jl
YWNoZWQoKTsKQEAgLTI3MiwxMSArMjcyLDEwIEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X2Ns
ZWFyX2NhY2hlKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOwogCi0gICAgV2ViS2l0V2ViQ29u
dGV4dFByaXZhdGUqIHByaXYgPSBjb250ZXh0LT5wcml2OwotICAgIFdLUmVzb3VyY2VDYWNoZU1h
bmFnZXJDbGVhckNhY2hlRm9yQWxsT3JpZ2lucyhXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFu
YWdlcihwcml2LT5jb250ZXh0LmdldCgpKSwgV0tSZXNvdXJjZUNhY2hlc1RvQ2xlYXJBbGwpOwor
ICAgIGNvbnRleHQtPnByaXYtPmNvbnRleHQtPnJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoKS0+
Y2xlYXJDYWNoZUZvckFsbE9yaWdpbnMoQWxsUmVzb3VyY2VDYWNoZXMpOwogfQogCi10eXBlZGVm
IEhhc2hNYXA8V0tEb3dubG9hZFJlZiwgR1JlZlB0cjxXZWJLaXREb3dubG9hZD4gPiBEb3dubG9h
ZHNNYXA7Cit0eXBlZGVmIEhhc2hNYXA8RG93bmxvYWRQcm94eSosIEdSZWZQdHI8V2ViS2l0RG93
bmxvYWQ+ID4gRG93bmxvYWRzTWFwOwogCiBzdGF0aWMgRG93bmxvYWRzTWFwJiBkb3dubG9hZHNN
YXAoKQogewpAQCAtMjk5LDEyICsyOTgsOSBAQCBXZWJLaXREb3dubG9hZCogd2Via2l0X3dlYl9j
b250ZXh0X2Rvd25sb2FkX3VyaShXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSwgMCk7
CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwodXJpLCAwKTsKIAotICAgIFdlYktpdFdlYkNvbnRl
eHRQcml2YXRlKiBwcml2ID0gY29udGV4dC0+cHJpdjsKLSAgICBXS1JldGFpblB0cjxXS1VSTFJl
Zj4gd2tVUkwoQWRvcHRXSywgV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcodXJpKSk7Ci0gICAg
V0tSZXRhaW5QdHI8V0tVUkxSZXF1ZXN0UmVmPiB3a1JlcXVlc3QoQWRvcHRXSywgV0tVUkxSZXF1
ZXN0Q3JlYXRlV2l0aFdLVVJMKHdrVVJMLmdldCgpKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tEb3du
bG9hZFJlZj4gd2tEb3dubG9hZCA9IFdLQ29udGV4dERvd25sb2FkVVJMUmVxdWVzdChwcml2LT5j
b250ZXh0LmdldCgpLCB3a1JlcXVlc3QuZ2V0KCkpOwotICAgIFdlYktpdERvd25sb2FkKiBkb3du
bG9hZCA9IHdlYmtpdERvd25sb2FkQ3JlYXRlKHdrRG93bmxvYWQuZ2V0KCkpOwotICAgIGRvd25s
b2Fkc01hcCgpLnNldCh3a0Rvd25sb2FkLmdldCgpLCBkb3dubG9hZCk7CisgICAgRG93bmxvYWRQ
cm94eSogZG93bmxvYWRQcm94eSA9IGNvbnRleHQtPnByaXYtPmNvbnRleHQtPmRvd25sb2FkKDAs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdChTdHJpbmc6OmZyb21VVEY4KHVyaSkpKTsKKyAgICBX
ZWJLaXREb3dubG9hZCogZG93bmxvYWQgPSB3ZWJraXREb3dubG9hZENyZWF0ZSh0b0FQSShkb3du
bG9hZFByb3h5KSk7CisgICAgZG93bmxvYWRzTWFwKCkuc2V0KGRvd25sb2FkUHJveHksIGRvd25s
b2FkKTsKICAgICByZXR1cm4gZG93bmxvYWQ7CiB9CiAKQEAgLTMyMiw3ICszMTgsNyBAQCBXZWJL
aXRDb29raWVNYW5hZ2VyKiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2Nvb2tpZV9tYW5hZ2VyKFdl
YktpdFdlYkNvbnRleHQqIGNvbgogCiAgICAgV2ViS2l0V2ViQ29udGV4dFByaXZhdGUqIHByaXYg
PSBjb250ZXh0LT5wcml2OwogICAgIGlmICghcHJpdi0+Y29va2llTWFuYWdlcikKLSAgICAgICAg
cHJpdi0+Y29va2llTWFuYWdlciA9IGFkb3B0R1JlZih3ZWJraXRDb29raWVNYW5hZ2VyQ3JlYXRl
KFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIocHJpdi0+Y29udGV4dC5nZXQoKSkpKTsKKyAgICAg
ICAgcHJpdi0+Y29va2llTWFuYWdlciA9IGFkb3B0R1JlZih3ZWJraXRDb29raWVNYW5hZ2VyQ3Jl
YXRlKHRvQVBJKHByaXYtPmNvbnRleHQtPmNvb2tpZU1hbmFnZXJQcm94eSgpKSkpOwogCiAgICAg
cmV0dXJuIHByaXYtPmNvb2tpZU1hbmFnZXIuZ2V0KCk7CiB9CkBAIC0zNzcsNyArMzczLDcgQEAg
Y29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZmF2aWNvbl9kYXRhYmFzZV9kaXJl
Y3RvcnkoV2ViS2l0V2ViQ29udGV4dAogICAgIFdlYktpdFdlYkNvbnRleHRQcml2YXRlKiBwcml2
ID0gY29udGV4dC0+cHJpdjsKICAgICAvLyBVc2UgZGVmYXVsdCBpZiBhIGRpZmZlcmVudCBwYXRo
IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IHNldC4KICAgICBpZiAocHJpdi0+ZmF2aWNvbkRhdGFi
YXNlUGF0aC5pc051bGwoKSkKLSAgICAgICAgcHJpdi0+ZmF2aWNvbkRhdGFiYXNlUGF0aCA9IHRv
SW1wbChwcml2LT5jb250ZXh0LmdldCgpKS0+aWNvbkRhdGFiYXNlUGF0aCgpLnV0ZjgoKTsKKyAg
ICAgICAgcHJpdi0+ZmF2aWNvbkRhdGFiYXNlUGF0aCA9IHByaXYtPmNvbnRleHQtPmljb25EYXRh
YmFzZVBhdGgoKS51dGY4KCk7CiAKICAgICByZXR1cm4gcHJpdi0+ZmF2aWNvbkRhdGFiYXNlUGF0
aC5kYXRhKCk7CiB9CkBAIC00MDgsOSArNDA0LDggQEAgV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiB3
ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2Zhdmljb25fZGF0YWJhc2UoV2ViS2l0V2ViQ29udGV4dCoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TlVMTCkpOwogCiAgICAgLy8gQ2FsbGluZyB0aGUgc2V0dGVyIGluIFdlYkNvbnRleHQgd2lsbCBj
YXVzZSB0aGUgaWNvbiBkYXRhYmFzZSB0byBiZSBvcGVuZWQuCi0gICAgV2ViQ29udGV4dCogd2Vi
Q29udGV4dCA9IHRvSW1wbChwcml2LT5jb250ZXh0LmdldCgpKTsKLSAgICB3ZWJDb250ZXh0LT5z
ZXRJY29uRGF0YWJhc2VQYXRoKFdlYkNvcmU6OmZpbGVuYW1lVG9TdHJpbmcoZmF2aWNvbkRhdGFi
YXNlUGF0aC5nZXQoKSkpOwotICAgIHByaXYtPmZhdmljb25EYXRhYmFzZSA9IGFkb3B0R1JlZih3
ZWJraXRGYXZpY29uRGF0YWJhc2VDcmVhdGUod2ViQ29udGV4dC0+aWNvbkRhdGFiYXNlKCkpKTsK
KyAgICBwcml2LT5jb250ZXh0LT5zZXRJY29uRGF0YWJhc2VQYXRoKFdlYkNvcmU6OmZpbGVuYW1l
VG9TdHJpbmcoZmF2aWNvbkRhdGFiYXNlUGF0aC5nZXQoKSkpOworICAgIHByaXYtPmZhdmljb25E
YXRhYmFzZSA9IGFkb3B0R1JlZih3ZWJraXRGYXZpY29uRGF0YWJhc2VDcmVhdGUocHJpdi0+Y29u
dGV4dC0+aWNvbkRhdGFiYXNlKCkpKTsKIAogICAgIHJldHVybiBwcml2LT5mYXZpY29uRGF0YWJh
c2UuZ2V0KCk7CiB9CkBAIC00NDYsNyArNDQxLDcgQEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRf
c2V0X2FkZGl0aW9uYWxfcGx1Z2luc19kaXJlY3RvcnkoV2ViS2l0V2ViQ29udGV4dCogY29udGUK
ICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7CiAg
ICAgZ19yZXR1cm5faWZfZmFpbChkaXJlY3RvcnkpOwogCi0gICAgdG9JbXBsKGNvbnRleHQtPnBy
aXYtPmNvbnRleHQuZ2V0KCkpLT5zZXRBZGRpdGlvbmFsUGx1Z2luc0RpcmVjdG9yeShXZWJDb3Jl
OjpmaWxlbmFtZVRvU3RyaW5nKGRpcmVjdG9yeSkpOworICAgIGNvbnRleHQtPnByaXYtPmNvbnRl
eHQtPnNldEFkZGl0aW9uYWxQbHVnaW5zRGlyZWN0b3J5KFdlYkNvcmU6OmZpbGVuYW1lVG9TdHJp
bmcoZGlyZWN0b3J5KSk7CiB9CiAKIHN0cnVjdCBHZXRQbHVnaW5zQXN5bmNEYXRhIHsKQEAgLTQ1
Nyw3ICs0NTIsNyBAQCBXRUJLSVRfREVGSU5FX0FTWU5DX0RBVEFfU1RSVUNUKEdldFBsdWdpbnNB
c3luY0RhdGEpCiBzdGF0aWMgdm9pZCB3ZWJraXRXZWJDb250ZXh0R2V0UGx1Z2luVGhyZWFkKEdT
aW1wbGVBc3luY1Jlc3VsdCogcmVzdWx0LCBHT2JqZWN0KiBvYmplY3QsIEdDYW5jZWxsYWJsZSop
CiB7CiAgICAgR2V0UGx1Z2luc0FzeW5jRGF0YSogZGF0YSA9IHN0YXRpY19jYXN0PEdldFBsdWdp
bnNBc3luY0RhdGEqPihnX3NpbXBsZV9hc3luY19yZXN1bHRfZ2V0X29wX3Jlc19ncG9pbnRlcihy
ZXN1bHQpKTsKLSAgICBkYXRhLT5wbHVnaW5zID0gdG9JbXBsKFdFQktJVF9XRUJfQ09OVEVYVChv
YmplY3QpLT5wcml2LT5jb250ZXh0LmdldCgpKS0+cGx1Z2luSW5mb1N0b3JlKCkucGx1Z2lucygp
OworICAgIGRhdGEtPnBsdWdpbnMgPSBXRUJLSVRfV0VCX0NPTlRFWFQob2JqZWN0KS0+cHJpdi0+
Y29udGV4dC0+cGx1Z2luSW5mb1N0b3JlKCkucGx1Z2lucygpOwogfQogCiAvKioKQEAgLTU2NCw4
ICs1NTksNyBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKFdl
YktpdFdlYkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYQogCiAgICAgUmVmUHRyPFdlYktpdFVS
SVNjaGVtZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdFJlZihuZXcgV2ViS2l0VVJJU2NoZW1lSGFu
ZGxlcihjYWxsYmFjaywgdXNlckRhdGEsIGRlc3Ryb3lOb3RpZnkpKTsKICAgICBjb250ZXh0LT5w
cml2LT51cmlTY2hlbWVIYW5kbGVycy5zZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpLCBoYW5k
bGVyLmdldCgpKTsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tTY2hlbWUoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NoZW1lKSk7Ci0gICAgV0tTb3VwUmVx
dWVzdE1hbmFnZXJSZWdpc3RlclVSSVNjaGVtZShjb250ZXh0LT5wcml2LT5yZXF1ZXN0TWFuYWdl
ci5nZXQoKSwgd2tTY2hlbWUuZ2V0KCkpOworICAgIGNvbnRleHQtPnByaXYtPnJlcXVlc3RNYW5h
Z2VyLT5yZWdpc3RlclVSSVNjaGVtZShTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSkpOwogfQogCiAv
KioKQEAgLTY3OSwyMCArNjczLDIwIEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcmVm
ZXJyZWRfbGFuZ3VhZ2VzKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgV2Vi
Q29yZTo6bGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKIH0KIAotV2ViS2l0RG93bmxvYWQqIHdlYmtpdFdl
YkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCkKK1dl
YktpdERvd25sb2FkKiB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZChEb3dubG9h
ZFByb3h5KiBkb3dubG9hZFByb3h5KQogewotICAgIEdSZWZQdHI8V2ViS2l0RG93bmxvYWQ+IGRv
d25sb2FkID0gZG93bmxvYWRzTWFwKCkuZ2V0KHdrRG93bmxvYWQpOworICAgIEdSZWZQdHI8V2Vi
S2l0RG93bmxvYWQ+IGRvd25sb2FkID0gZG93bmxvYWRzTWFwKCkuZ2V0KGRvd25sb2FkUHJveHkp
OwogICAgIGlmIChkb3dubG9hZCkKICAgICAgICAgcmV0dXJuIGRvd25sb2FkLmdldCgpOwogCi0g
ICAgZG93bmxvYWQgPSBhZG9wdEdSZWYod2Via2l0RG93bmxvYWRDcmVhdGUod2tEb3dubG9hZCkp
OwotICAgIGRvd25sb2Fkc01hcCgpLnNldCh3a0Rvd25sb2FkLCBkb3dubG9hZC5nZXQoKSk7Cisg
ICAgZG93bmxvYWQgPSBhZG9wdEdSZWYod2Via2l0RG93bmxvYWRDcmVhdGUodG9BUEkoZG93bmxv
YWRQcm94eSkpKTsKKyAgICBkb3dubG9hZHNNYXAoKS5zZXQoZG93bmxvYWRQcm94eSwgZG93bmxv
YWQuZ2V0KCkpOwogICAgIHJldHVybiBkb3dubG9hZC5nZXQoKTsKIH0KIAotdm9pZCB3ZWJraXRX
ZWJDb250ZXh0UmVtb3ZlRG93bmxvYWQoV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkKQordm9pZCB3
ZWJraXRXZWJDb250ZXh0UmVtb3ZlRG93bmxvYWQoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94
eSkKIHsKLSAgICBkb3dubG9hZHNNYXAoKS5yZW1vdmUod2tEb3dubG9hZCk7CisgICAgZG93bmxv
YWRzTWFwKCkucmVtb3ZlKGRvd25sb2FkUHJveHkpOwogfQogCiB2b2lkIHdlYmtpdFdlYkNvbnRl
eHREb3dubG9hZFN0YXJ0ZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgV2ViS2l0RG93bmxv
YWQqIGRvd25sb2FkKQpAQCAtNzAwLDE0ICs2OTQsMTQgQEAgdm9pZCB3ZWJraXRXZWJDb250ZXh0
RG93bmxvYWRTdGFydGVkKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYktpdERvd25sb2Fk
KgogICAgIGdfc2lnbmFsX2VtaXQoY29udGV4dCwgc2lnbmFsc1tET1dOTE9BRF9TVEFSVEVEXSwg
MCwgZG93bmxvYWQpOwogfQogCi1XS0NvbnRleHRSZWYgd2Via2l0V2ViQ29udGV4dEdldFdLQ29u
dGV4dChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQorV2ViQ29udGV4dCogd2Via2l0V2ViQ29u
dGV4dEdldENvbnRleHQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKIHsKICAgICBnX2Fzc2Vy
dChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOwogCiAgICAgcmV0dXJuIGNvbnRleHQt
PnByaXYtPmNvbnRleHQuZ2V0KCk7CiB9CiAKLVdLU291cFJlcXVlc3RNYW5hZ2VyUmVmIHdlYmtp
dFdlYkNvbnRleHRHZXRSZXF1ZXN0TWFuYWdlcihXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQor
V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkqIHdlYmtpdFdlYkNvbnRleHRHZXRSZXF1ZXN0TWFu
YWdlcihXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQogewogICAgIHJldHVybiBjb250ZXh0LT5w
cml2LT5yZXF1ZXN0TWFuYWdlci5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oCmluZGV4IDll
NTUzNmIuLjY3YmU0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaApAQCAtMjYsMTUgKzI2LDIwIEBA
CiAjaWZuZGVmIFdlYktpdFdlYkNvbnRleHRQcml2YXRlX2gKICNkZWZpbmUgV2ViS2l0V2ViQ29u
dGV4dFByaXZhdGVfaAogCisjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgorI2luY2x1ZGUgIldl
YkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHQuaCIKKyNpbmNs
dWRlICJXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogCi1XS0NvbnRleHRSZWYgd2Via2l0
V2ViQ29udGV4dEdldFdLQ29udGV4dChXZWJLaXRXZWJDb250ZXh0Kik7Ci1XZWJLaXREb3dubG9h
ZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQoV0tEb3dubG9hZFJlZik7Ci12
b2lkIHdlYmtpdFdlYkNvbnRleHRSZW1vdmVEb3dubG9hZChXS0Rvd25sb2FkUmVmKTsKK3VzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dlYkNvbnRleHQqIHdlYmtpdFdlYkNvbnRleHRHZXRDb250
ZXh0KFdlYktpdFdlYkNvbnRleHQqKTsKK1dlYktpdERvd25sb2FkKiB3ZWJraXRXZWJDb250ZXh0
R2V0T3JDcmVhdGVEb3dubG9hZChEb3dubG9hZFByb3h5Kik7Cit2b2lkIHdlYmtpdFdlYkNvbnRl
eHRSZW1vdmVEb3dubG9hZChEb3dubG9hZFByb3h5Kik7CiB2b2lkIHdlYmtpdFdlYkNvbnRleHRE
b3dubG9hZFN0YXJ0ZWQoV2ViS2l0V2ViQ29udGV4dCosIFdlYktpdERvd25sb2FkKik7Ci1XS1Nv
dXBSZXF1ZXN0TWFuYWdlclJlZiB3ZWJraXRXZWJDb250ZXh0R2V0UmVxdWVzdE1hbmFnZXIoV2Vi
S2l0V2ViQ29udGV4dCopOworV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkqIHdlYmtpdFdlYkNv
bnRleHRHZXRSZXF1ZXN0TWFuYWdlcihXZWJLaXRXZWJDb250ZXh0Kik7CiB2b2lkIHdlYmtpdFdl
YkNvbnRleHRSZWNlaXZlZFVSSVJlcXVlc3QoV2ViS2l0V2ViQ29udGV4dCosIFdlYktpdFVSSVNj
aGVtZVJlcXVlc3QqKTsKIHZvaWQgd2Via2l0V2ViQ29udGV4dERpZEZhaWxUb0xvYWRVUklSZXF1
ZXN0KFdlYktpdFdlYkNvbnRleHQqLCB1aW50NjRfdCByZXF1ZXN0SUQpOwogdm9pZCB3ZWJraXRX
ZWJDb250ZXh0RGlkRmluaXNoVVJJUmVxdWVzdChXZWJLaXRXZWJDb250ZXh0KiwgdWludDY0X3Qg
cmVxdWVzdElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5jcHAKaW5kZXggNjYwZDVhZi4uMjA1MTc4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTM3Miw3ICsz
NzIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uc3RydWN0ZWQoR09iamVjdCogb2Jq
ZWN0KQogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKICAg
ICBXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3
ZWJWaWV3KTsKIAotICAgIHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRlV2ViUGFnZSh3ZWJWaWV3QmFz
ZSwgdG9JbXBsKHdlYmtpdFdlYkNvbnRleHRHZXRXS0NvbnRleHQocHJpdi0+Y29udGV4dCkpLCAw
KTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZVdlYlBhZ2Uod2ViVmlld0Jhc2UsIHdlYmtp
dFdlYkNvbnRleHRHZXRDb250ZXh0KHByaXYtPmNvbnRleHQpLCAwKTsKIAogICAgIGF0dGFjaExv
YWRlckNsaWVudFRvVmlldyh3ZWJWaWV3KTsKICAgICBhdHRhY2hVSUNsaWVudFRvVmlldyh3ZWJW
aWV3KTsK
</data>
<flag name="review"
          id="178823"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>