<?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>54510</bug_id>
          
          <creation_ts>2011-02-15 16:41:20 -0800</creation_ts>
          <short_desc>Implement WKPluginSiteDataManagerGetSitesWithData</short_desc>
          <delta_ts>2011-02-15 16:50:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351725</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-15 16:41:20 -0800</bug_when>
    <thetext>Implement WKPluginSiteDataManagerGetSitesWithData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351729</commentid>
    <comment_count>1</comment_count>
      <attachid>82550</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-15 16:45:42 -0800</bug_when>
    <thetext>Created attachment 82550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351731</commentid>
    <comment_count>2</comment_count>
      <attachid>82550</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-02-15 16:48:45 -0800</bug_when>
    <thetext>Comment on attachment 82550
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351732</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-15 16:49:31 -0800</bug_when>
    <thetext>Committed r78647: &lt;http://trac.webkit.org/changeset/78647&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351733</commentid>
    <comment_count>4</comment_count>
      <attachid>82550</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-15 16:50:01 -0800</bug_when>
    <thetext>Comment on attachment 82550
Patch

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

&gt; Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp:96
&gt; +    RefPtr&lt;ImmutableArray&gt; resultArray = ImmutableArray::adopt(sitesWK);
&gt; +    callback-&gt;performCallbackWithReturnValue(resultArray.get());

The local variable here doesn’t seem to do any good.

&gt; Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h:33
&gt; +#include &lt;wtf/PassRefPtr.h&gt;

Should only need Forward.h since you don’t do anything with PassRefPtr in this header.

&gt; Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h:39
&gt; +namespace CoreIPC {
&gt; +class ArgumentDecoder;
&gt; +class Connection;
&gt; +class MessageID;
&gt; +}

Yuck, I guess the script is telling you do do this.

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:658
&gt; +    Vector&lt;String&gt; sites;
&gt; +    copyToVector(sitesSet, sites);

Would be nice to sort this. I hate to have an API that returns a vector in a random order.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82550</attachid>
            <date>2011-02-15 16:45:42 -0800</date>
            <delta_ts>2011-02-15 16:50:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54510-20110215164541.patch</filename>
            <type>text/plain</type>
            <size>27180</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjQ1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTEtMDItMTUgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJH
ZXRTaXRlc1dpdGhEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODY4OTMxMj4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0R2V0
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKToKKyAgICAgICAgQ2FsbCBXZWJDb250ZXh0OjpwbHVnaW5T
aXRlRGF0YU1hbmFnZXIuCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Bs
dWdpblNpdGVEYXRhTWFuYWdlci5jcHA6CisgICAgICAgIChXS1BsdWdpblNpdGVEYXRhTWFuYWdl
ckdldFNpdGVzV2l0aERhdGEpOgorICAgICAgICBDYWxsIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdl
cjo6Z2V0U2l0ZXNXaXRoRGF0YS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bkluZm9TdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6Z2V0UGx1
Z2luUGF0aHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5o
OgorICAgICAgICBQb3B1bGF0ZSB0aGUgcGF0aHMgYXJndW1lbnQgd2l0aCB0aGUgcGF0aHMgb2Yg
YWxsIHBsdWctaW5zLgorICAgICAgICAKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9XZWJQ
bHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyOjppbnZhbGlkYXRlKToKKyAgICAgICAgSW52YWxpZGF0ZSB0aGUg
Y2FsbGJhY2tzIG1hcC4KKworICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5TaXRlRGF0YU1hbmFn
ZXI6OmdldFNpdGVzV2l0aERhdGEpOgorICAgICAgICBBc2sgdGhlIHBsdWctaW4gaW5mbyBzdG9y
ZSBmb3IgYWxsIHBsdWctaW4gcGF0aHMgYW5kIHNlbmQgYQorICAgICAgICBHZXRTaXRlc1dpdGhQ
bHVnaW5EYXRhIG1lc3NhZ2UgdG8gdGhlIHdlYiBwcm9jZXNzLgorCisgICAgICAgIChXZWJLaXQ6
OldlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6ZGlkR2V0U2l0ZXNXaXRoUGx1Z2luRGF0YSk6Cisg
ICAgICAgIENhbGwgdGhlIGNhbGxiYWNrLgorCisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMv
V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bHVnaW5TaXRlRGF0YU1hbmFnZXI6OmNsZWFyQ29udGV4dCk6CisgICAgICAgIENsZWFyIHRoZSBj
b250ZXh0LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgSW5pdGlhbGl6ZSBtX3Bs
dWdpblNpdGVEYXRhTWFuYWdlci4KKworICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2Vi
Q29udGV4dCk6CisgICAgICAgIEludmFsaWRhdGUgdGhlIHBsdWctaW4gc2l0ZSBkYXRhIG1hbmFn
ZXIgYW5kIGNsZWFyIGl0cyBjb250ZXh0LgorCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6
OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAgIEludmFsaWRhdGUgdGhlIHBsdWctaW4gc2l0ZSBk
YXRhIG1hbmFnZXIuCisgICAgICAgIAorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRH
ZXRTaXRlc1dpdGhQbHVnaW5EYXRhKToKKyAgICAgICAgQ2FsbCB0aHJvdWdoIHRvIHRoZSBwbHVn
LWluIHNpdGUgZGF0YSBtYW5hZ2VyLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5tZXNzYWdlcy5pbjoKKyAgICAgICAg
QWRkIEdldFNpdGVzV2l0aFBsdWdpbkRhdGEgbWVzc2FnZS4KKworICAgICAgICAqIFdlYktpdDIu
cHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpnZXRTaXRlc1dpdGhQbHVnaW5EYXRhKToKKyAgICAgICAgSXRlcmF0ZSBvdmVyIGFsbCBw
bHVnLWluIHBhdGhzIGFuZCBnZXQgdGhlIHNpdGVzIGZyb20gYWxsIHBsdWctaW5zLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgRGlkR2V0U2l0ZXNXaXRoUGx1Z2luRGF0
YS4KKwogMjAxMS0wMi0xNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIEZpeCBRdCBidWlsZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJv
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiA3ODY0
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC00ODYs
NiArNDg2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nl
c3NMYXVuY2hlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVhZExhdW5j
aGVyUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwIFwK
KyAgICBVSVByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIFwKICAg
ICBVSVByb2Nlc3MvUGx1Z2lucy9xdC9QbHVnaW5JbmZvU3RvcmVRdC5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2lu
Z0FyZWFQcm94eS5jcHAgXApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcAkocmV2aXNpb24gNzg2MzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIgog
I2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiV2ViTWVtb3J5U2FtcGxlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKQEAgLTk3LDYgKzk4LDcgQEAgV2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNz
TW9kZWwgcHJvYwogICAgICwgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWwoMTQwMC4wKQogICAgICwg
bV9kYXRhYmFzZU1hbmFnZXJQcm94eShXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRo
aXMpKQogICAgICwgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eShXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXIoV2Vi
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpjcmVhdGUodGhpcykpCiAjaWYgUExBVEZPUk0oV0lOKQog
ICAgICwgbV9zaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKHRydWUpCiAjZW5kaWYKQEAgLTEyMCw2
ICsxMjIsOSBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAgICAgbV9kYXRhYmFzZU1hbmFn
ZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZGF0YWJhc2VNYW5hZ2VyUHJveHktPmNsZWFy
Q29udGV4dCgpOwogCisgICAgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXItPmludmFsaWRhdGUoKTsK
KyAgICBtX3BsdWdpblNpdGVEYXRhTWFuYWdlci0+Y2xlYXJDb250ZXh0KCk7CisKICNpZm5kZWYg
TkRFQlVHCiAgICAgd2ViQ29udGV4dENvdW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKQEAgLTI0
NSw2ICsyNTAsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9jCiAK
ICAgICBtX2RhdGFiYXNlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9nZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fcGx1Z2luU2l0ZURhdGFNYW5h
Z2VyLT5pbnZhbGlkYXRlKCk7CiAKICAgICBtX3Byb2Nlc3MgPSAwOwogfQpAQCAtNDM5LDYgKzQ0
NSwxMyBAQCB2b2lkIFdlYkNvbnRleHQ6OmdldFBsdWdpblBhdGgoY29uc3QgU3RyCiAgICAgcGx1
Z2luUGF0aCA9IHBsdWdpbi5wYXRoOwogfQogCisjaWYgIUVOQUJMRShQTFVHSU5fUFJPQ0VTUykK
K3ZvaWQgV2ViQ29udGV4dDo6ZGlkR2V0U2l0ZXNXaXRoUGx1Z2luRGF0YShjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgbV9wbHVnaW5TaXRl
RGF0YU1hbmFnZXItPmRpZEdldFNpdGVzV2l0aFBsdWdpbkRhdGEoc2l0ZXMsIGNhbGxiYWNrSUQp
OworfQorI2VuZGlmCisKIHVpbnQ2NF90IFdlYkNvbnRleHQ6OmNyZWF0ZURvd25sb2FkUHJveHko
KQogewogICAgIFJlZlB0cjxEb3dubG9hZFByb3h5PiBkb3dubG9hZFByb3h5ID0gRG93bmxvYWRQ
cm94eTo6Y3JlYXRlKHRoaXMpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5oCShyZXZpc2lvbiA3ODYzMikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAKICAgICBXZWJE
YXRhYmFzZU1hbmFnZXJQcm94eSogZGF0YWJhc2VNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVy
biBtX2RhdGFiYXNlTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9nZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5nZXQoKTsgfQorICAgIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdl
ciogcGx1Z2luU2l0ZURhdGFNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5TaXRlRGF0
YU1hbmFnZXIuZ2V0KCk7IH0KIAogICAgIHN0cnVjdCBTdGF0aXN0aWNzIHsKICAgICAgICAgdW5z
aWduZWQgd2tWaWV3Q291bnQ7CkBAIC0xNTYsNyArMTU3LDEwIEBAIHByaXZhdGU6CiAgICAgLy8g
UGx1Z2lucwogICAgIHZvaWQgZ2V0UGx1Z2lucyhib29sIHJlZnJlc2gsIFZlY3RvcjxXZWJDb3Jl
OjpQbHVnaW5JbmZvPiYgcGx1Z2lucyk7CiAgICAgdm9pZCBnZXRQbHVnaW5QYXRoKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBTdHJpbmcmIHBsdWdpblBh
dGgpOwotCisjaWYgIUVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKyAgICB2b2lkIGRpZEdldFNpdGVz
V2l0aFBsdWdpbkRhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxs
YmFja0lEKTsKKyNlbmRpZgorICAgICAgICAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0
ZWQgV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJD
b250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRp
ZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKik7CkBAIC0yMDQsNiArMjA4LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eTsKICAgICBSZWZQ
dHI8V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+IG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7
CisgICAgUmVmUHRyPFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcj4gbV9wbHVnaW5TaXRlRGF0YU1h
bmFnZXI7CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgYm9vbCBtX3Nob3VsZFBhaW50TmF0aXZl
Q29udHJvbHM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5tZXNz
YWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5tZXNzYWdlcy5pbgkocmV2aXNpb24gNzg2MzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzUsNCArMzUsOCBA
QCBtZXNzYWdlcyAtPiBXZWJDb250ZXh0IHsKICAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkg
LT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zKQogICAgIEdldFBsdWdpblBh
dGgoV1RGOjpTdHJpbmcgbWltZVR5cGUsIFdURjo6U3RyaW5nIHVybFN0cmluZykgLT4gKFdURjo6
U3RyaW5nIHBsdWdpblBhdGgpCiAKKyNpZiAhRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorICAgIHZv
aWQgRGlkR2V0U2l0ZXNXaXRoUGx1Z2luRGF0YShWZWN0b3I8V1RGOjpTdHJpbmc+IHNpdGVzLCB1
aW50NjRfdCBjYWxsYmFja0lEKQorI2VuZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiA3ODYzMykKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzAsOCArMTcwLDcgQEAgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0R2Vv
bAogCiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0
YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxl
bWVudC4KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYp
LT5wbHVnaW5TaXRlRGF0YU1hbmFnZXIoKSk7CiB9CiAKIHZvaWQgV0tDb250ZXh0U3RhcnRNZW1v
cnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0RvdWJsZVJlZiBpbnRlcnZhbCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFu
YWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAkocmV2aXNpb24gNzg2MzMpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxMSArMjcsOCBAQAogI2luY2x1ZGUgIldLUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyLmgiCiAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlIDxXZWJLaXQvbnBhcGku
aD4KLQotI2lmZGVmIF9fQkxPQ0tTX18KLSNpbmNsdWRlIDxCbG9jay5oPgotI2VuZGlmCisjaW5j
bHVkZSAiV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9ucGFw
aS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC00MSw5ICszOCw5IEBAIFdLVHlw
ZUlEIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyR2V0VHlwZUkKICAgICByZXR1cm4gMDsKIH0KIAot
dm9pZCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlckdldFNpdGVzV2l0aERhdGEoV0tQbHVnaW5TaXRl
RGF0YU1hbmFnZXJSZWYgbWFuYWdlciwgdm9pZCogY29udGV4dCwgV0tQbHVnaW5TaXRlRGF0YU1h
bmFnZXJHZXRTaXRlc1dpdGhEYXRhRnVuY3Rpb24gY2FsbGJhY2spCit2b2lkIFdLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyR2V0U2l0ZXNXaXRoRGF0YShXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBt
YW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlckdldFNpdGVz
V2l0aERhdGFGdW5jdGlvbiBjYWxsYmFjaykKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50Lgor
ICAgIHRvSW1wbChtYW5hZ2VyUmVmKS0+Z2V0U2l0ZXNXaXRoRGF0YShBcnJheUNhbGxiYWNrOjpj
cmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKIH0KIAogdm9pZCBXS1BsdWdpblNpdGVEYXRhTWFu
YWdlckNsZWFyU2l0ZURhdGEoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYgbWFuYWdlciwgV0tB
cnJheVJlZiBzaXRlcywgV0tDbGVhclNpdGVEYXRhRmxhZ3MgZmxhZ3MsIHVpbnQ2NF90IG1heEFn
ZUluU2Vjb25kcykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bkluZm9TdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNwcAkocmV2aXNpb24gNzg2MzIpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTUsNiArMTE1LDE0IEBAIHZvaWQgUGx1Z2luSW5mb1N0b3JlOjpnZXRQbHVnaW5zKFZl
Y3RvcjwKICAgICAgICAgcGx1Z2lucy5hcHBlbmQobV9wbHVnaW5zW2ldLmluZm8pOwogfQogCit2
b2lkIFBsdWdpbkluZm9TdG9yZTo6Z2V0UGx1Z2luUGF0aHMoVmVjdG9yPFN0cmluZz4mIHBsdWdp
blBhdGhzKQoreworICAgIGxvYWRQbHVnaW5zSWZOZWNlc3NhcnkoKTsKKyAgICAKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fcGx1Z2lucy5zaXplKCk7ICsraSkKKyAgICAgICAgcGx1Z2lu
UGF0aHMuYXBwZW5kKG1fcGx1Z2luc1tpXS5wYXRoKTsKK30KKwogUGx1Z2luSW5mb1N0b3JlOjpQ
bHVnaW4gUGx1Z2luSW5mb1N0b3JlOjpmaW5kUGx1Z2luRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkKIHsKICAgICBBU1NFUlQoIW1pbWVUeXBlLmlzTnVsbCgpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5o
CShyZXZpc2lvbiA3ODYzMikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbkluZm9TdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEFkZGl0aW9uYWxQbHVnaW5zRGlyZWN0b3JpZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mKTsKIAogICAgIHZvaWQgcmVmcmVzaCgpOwotICAgIHZvaWQgZ2V0UGx1Z2lucyhWZWN0
b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIHBsdWdpbnMpOwotICAgIAorICAgIHZvaWQgZ2V0UGx1
Z2lucyhWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKTsKKyAgICB2b2lkIGdldFBsdWdpblBh
dGhzKFZlY3RvcjxTdHJpbmc+Jik7CisKICAgICAvLyBSZXByZXNlbnRzIGEgc2luZ2xlIHBsdWct
aW4uCiAgICAgc3RydWN0IFBsdWdpbiB7CiAgICAgICAgIFN0cmluZyBwYXRoOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9XZWJQbHVn
aW5TaXRlRGF0YU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJJbW11dGFibGVB
cnJheS5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzTWVz
c2FnZXMuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitQYXNzUmVmUHRyPFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcj4gV2ViUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyOjpjcmVhdGUoV2ViQ29udGV4dCogd2ViQ29udGV4dCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcih3ZWJDb250ZXh0KSk7Cit9CisK
K1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdlYkNv
bnRleHQqIHdlYkNvbnRleHQpCisgICAgOiBtX3dlYkNvbnRleHQod2ViQ29udGV4dCkKK3sKK30K
KworV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjp+V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKCkK
K3sKK30KKwordm9pZCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmludmFsaWRhdGUoKQorewor
ICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKwordm9pZCBX
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmdldFNpdGVzV2l0aERhdGEoUGFzc1JlZlB0cjxBcnJh
eUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2Fs
bGJhY2sgPSBwcnBDYWxsYmFjazsKKworICAgIGlmICghbV93ZWJDb250ZXh0KSB7CisgICAgICAg
IGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgICAg
IAorI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50Lgor
ICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisjZWxzZQorICAgIGlmICghbV93ZWJDb250ZXh0
LT5oYXNWYWxpZFByb2Nlc3MoKSkgeworICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFj
ay0+Y2FsbGJhY2tJRCgpOworICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNh
bGxiYWNrLnJlbGVhc2UoKSk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBwbHVnaW5QYXRoczsKKyAg
ICBtX3dlYkNvbnRleHQtPnBsdWdpbkluZm9TdG9yZSgpLT5nZXRQbHVnaW5QYXRocyhwbHVnaW5Q
YXRocyk7CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OkdldFNpdGVzV2l0aFBsdWdpbkRhdGEocGx1Z2luUGF0aHMsIGNhbGxiYWNrSUQpLCAw
KTsKKyNlbmRpZgorfQorCit2b2lkIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6ZGlkR2V0U2l0
ZXNXaXRoUGx1Z2luRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCit7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJh
eUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIGlmICghY2FsbGJhY2spIHsKKyAgICAg
ICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBhc3NlcnQuCisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiBzaXRlc1dLKHNpdGVzLnNpemUoKSk7
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpdGVzLnNpemUoKTsgKytpKQorICAgICAg
ICBzaXRlc1dLW2ldID0gV2ViU3RyaW5nOjpjcmVhdGUoc2l0ZXNbaV0pOworCisgICAgUmVmUHRy
PEltbXV0YWJsZUFycmF5PiByZXN1bHRBcnJheSA9IEltbXV0YWJsZUFycmF5OjphZG9wdChzaXRl
c1dLKTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKHJlc3Vs
dEFycmF5LmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpblNp
dGVEYXRhTWFuYWdlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcmgK
KyNkZWZpbmUgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyX2gKKworI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgorI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5o
IgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQ29u
bmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYkNvbnRleHQ7CisKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFy
cmF5Q2FsbGJhY2s7CisKK2NsYXNzIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciA6IHB1YmxpYyBB
UElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBl
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyPiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYlBs
dWdpblNpdGVEYXRhTWFuYWdlcigpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgdm9p
ZCBjbGVhckNvbnRleHQoKSB7IG1fd2ViQ29udGV4dCA9IDA7IH0KKworICAgIHZvaWQgZ2V0U2l0
ZXNXaXRoRGF0YShQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRpZEdldFNp
dGVzV2l0aFBsdWdpbkRhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJQbHVnaW5TaXRlRGF0YU1h
bmFnZXIoV2ViQ29udGV4dCopOworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBBUElUeXBlOyB9CisKKyAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CisgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+ID4gbV9hcnJheUNhbGxiYWNrczsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDc4NjMzKQorKysgU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNyAr
MjEzLDkgQEAKIAkJMUFDNDFBQzcxMjYzQzg4MzAwMDU0RTk0IC8qIEJpbmFyeVNlbWFwaG9yZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDNDFBQzUx
MjYzQzg4MzAwMDU0RTk0IC8qIEJpbmFyeVNlbWFwaG9yZS5oICovOyB9OwogCQkxQUM0MUFDODEy
NjNDODgzMDAwNTRFOTQgLyogQmluYXJ5U2VtYXBob3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzQxQUM2MTI2M0M4ODMwMDA1NEU5NCAvKiBC
aW5hcnlTZW1hcGhvcmUuY3BwICovOyB9OwogCQkxQUM4NkZGMzEzMEI0NkQzMDAyQzEyNTcgLyog
V0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUFDODZGRjExMzBCNDZEMzAwMkMxMjU3IC8qIFdLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKLQkJMUFDODZGRjQxMzBCNDZEMzAwMkMxMjU3IC8qIFdL
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQUM4NkZGMjEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXIuaCAqLzsgfTsKKwkJMUFDODZGRjQxMzBCNDZEMzAwMkMxMjU3IC8qIFdLUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQUM4NkZGMjEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFn
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTFB
Qzg3MDJEMTMwQjQ5QTIwMDJDMTI1NyAvKiBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzg3MDJCMTMwQjQ5
QTIwMDJDMTI1NyAvKiBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCAqLzsgfTsKKwkJMUFDODcw
MkUxMzBCNDlBMjAwMkMxMjU3IC8qIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUM4NzAyQzEzMEI0OUEy
MDAyQzEyNTcgLyogV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJMUFFMTE3
RjYxMURCQjMwOTAwOTgxNjE1IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUUxMTdGNTExREJCMzA5MDA5ODE2MTUg
LyogUHJvY2Vzc0xhdW5jaGVyLmNwcCAqLzsgfTsKIAkJMUFFNDk3NjgxMUZGNjU4RTAwNDhCNDY0
IC8qIE5QSlNPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBRTQ5NzY2MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2JqZWN0LmggKi87IH07CiAJ
CTFBRTQ5NzY5MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRTQ5NzY3MTFGRjY1OEUwMDQ4QjQ2
NCAvKiBOUEpTT2JqZWN0LmNwcCAqLzsgfTsKQEAgLTk4NCw4ICs5ODYsMTAgQEAKIAkJMUFDMjVG
QkIxMkE0OEVEQTAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltLnhjY29uZmlnICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFBsdWdpblByb2Nlc3NTaGltLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUM0MUFDNTEyNjNDODgzMDAwNTRFOTQgLyogQmlu
YXJ5U2VtYXBob3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJpbmFyeVNl
bWFwaG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUM0MUFDNjEyNjNDODgz
MDAwNTRFOTQgLyogQmluYXJ5U2VtYXBob3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEJpbmFyeVNlbWFwaG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTFBQzg2RkYxMTMwQjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXS1BsdWdpblNpdGVE
YXRhTWFuYWdlci5jcHA7IHBhdGggPSBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCTFBQzg2RkYyMTMwQjQ2
RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5oOyBwYXRoID0gVUlQcm9j
ZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsKKwkJMUFDODZGRjExMzBCNDZEMzAwMkMxMjU3IC8qIFdLUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFDODZG
RjIxMzBCNDZEMzAwMkMxMjU3IC8qIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBQzg3MDJCMTMwQjQ5QTIwMDJDMTI1NyAvKiBXZWJQ
bHVnaW5TaXRlRGF0YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFBQzg3MDJDMTMwQjQ5QTIwMDJDMTI1NyAvKiBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFMTE3RjUxMURCQjMw
OTAwOTgxNjE1IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQcm9jZXNzTGF1bmNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQUU0OTc2NjExRkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOUEpTT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBRTQ5NzY3MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2JqZWN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5QSlNPYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk5Myw2ICsxOTk3LDggQEAKIAkJCQkxQTBFQzc1
RDEyNEJDN0IyMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCAqLywKIAkJCQkxQTBF
Qzc1QzEyNEJDN0IyMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5LmggKi8sCiAJCQkJMUEw
NDNCNEMxMjRENUUzNjAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAq
LywKKwkJCQkxQUM4NzAyQzEzMEI0OUEyMDAyQzEyNTcgLyogV2ViUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyLmNwcCAqLywKKwkJCQkxQUM4NzAyQjEzMEI0OUEyMDAyQzEyNTcgLyogV2ViUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFBsdWdpbnM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtMjMyMSw2ICsyMzI3LDggQEAKIAkJCQlCQzdCNjMzNjEyQTQ1
QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3BwICovLAogCQkJCUJDN0I2MzM1MTJBNDVBQkEw
MEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5oICovLAogCQkJCUJDMTc3NDY0MTE4QjlGRjQwMDdEOUU5
QSAvKiBXS1BhZ2VQcml2YXRlLmggKi8sCisJCQkJMUFDODZGRjExMzBCNDZEMzAwMkMxMjU3IC8q
IFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQkxQUM4NkZGMjEzMEI0NkQzMDAy
QzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCAqLywKIAkJCQlCQ0Q1OTdDRjExMkI1
NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlcy5jcHAgKi8sCiAJCQkJQkNENTk3Q0UxMTJCNTZB
QzAwRUM4QzIzIC8qIFdLUHJlZmVyZW5jZXMuaCAqLywKIAkJCQk3NjJCNzQ4NDEyMEJCQTJEMDA4
MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLywKQEAgLTI3MTUsOCArMjcyMyw2IEBA
CiAJCQkJQkM0MDc1RTUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTnVtYmVyLmNwcCAqLywKIAkJCQlC
QzQwNzVFNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tOdW1iZXIuaCAqLywKIAkJCQlCQzJEMDIxODEy
QUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggKi8sCi0JCQkJMUFDODZGRjExMzBC
NDZEMzAwMkMxMjU3IC8qIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCAqLywKLQkJCQkxQUM4
NkZGMjEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCAqLywKIAkJ
CQlGNjM0NDQ1QTEyQTg4NUU5MDAwNjEyRDggLyogV0tTZWN1cml0eU9yaWdpbi5jcHAgKi8sCiAJ
CQkJRjYzNDQ0NUIxMkE4ODVFOTAwMDYxMkQ4IC8qIFdLU2VjdXJpdHlPcmlnaW4uaCAqLywKIAkJ
CQlCQzQwNzVFNzEyNEZGMDI3MDA2OEYyMEEgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
ICovLApAQCAtMzE4Miw2ICszMTg4LDcgQEAKIAkJCQlCQ0E1NkE2NTEyRjlDOEY5MDBDNTY2Qzcg
LyogV0tHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTU2QTY5MTJGOUM5
QUQwMEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUM4NkZGNDEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFBQzg3MDJEMTMwQjQ5QTIwMDJDMTI1NyAvKiBXZWJQbHVnaW5TaXRl
RGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzY2MCw2ICszNjY3LDcgQEAKIAkJCQlC
Q0E1NkE2QTEyRjlDOUFEMDBDNTY2QzcgLyogV0tHcmFwaGljc0NvbnRleHRDRy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk2NTlDNTUxRTEzMDAwNjQxMDAyNUMwQzIgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzg2RkYzMTMw
QjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkxQUM4NzAyRTEzMEI0OUEyMDAyQzEyNTcgLyogV2ViUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3ODYzMikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDEwIEBACiAjaW5j
bHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAorI2lmICFFTkFCTEUoUExVR0lOX1BST0NFU1MpCisj
aW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02MzUsNiArNjM5LDI4IEBAIHZv
aWQgV2ViUHJvY2Vzczo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlKCkKICNlbmRpZgogfQogCisjaWYg
IUVOQUJMRShQTFVHSU5fUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoUGx1
Z2luRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGx1Z2luUGF0aHMsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCit7CisgICAgSGFzaFNldDxTdHJpbmc+IHNpdGVzU2V0OworCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBwbHVnaW5QYXRocy5zaXplKCk7ICsraSkgeworICAgICAgICBSZWZQdHI8
TmV0c2NhcGVQbHVnaW5Nb2R1bGU+IG5ldHNjYXBlUGx1Z2luTW9kdWxlID0gTmV0c2NhcGVQbHVn
aW5Nb2R1bGU6OmdldE9yQ3JlYXRlKHBsdWdpblBhdGhzW2ldKTsKKyAgICAgICAgaWYgKCFuZXRz
Y2FwZVBsdWdpbk1vZHVsZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIFZlY3Rv
cjxTdHJpbmc+IHNpdGVzID0gbmV0c2NhcGVQbHVnaW5Nb2R1bGUtPnNpdGVzV2l0aERhdGEoKTsK
KyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXRlcy5zaXplKCk7ICsraSkKKyAgICAg
ICAgICAgIHNpdGVzU2V0LmFkZChzaXRlc1tpXSk7CisgICAgfQorCisgICAgVmVjdG9yPFN0cmlu
Zz4gc2l0ZXM7CisgICAgY29weVRvVmVjdG9yKHNpdGVzU2V0LCBzaXRlcyk7CisKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvbnRleHQ6OkRpZEdldFNpdGVzV2l0aFBsdWdp
bkRhdGEoc2l0ZXMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nl
c3M6OmRvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCB1aW50NjRfdCBpbml0aWF0
aW5nUGFnZUlELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgV2ViUGFn
ZSogaW5pdGlhdGluZ1BhZ2UgPSBpbml0aWF0aW5nUGFnZUlEID8gd2ViUGFnZShpbml0aWF0aW5n
UGFnZUlEKSA6IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAko
cmV2aXNpb24gNzg2MzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDYgKzE0MywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKCk7CiAgICAgdm9pZCBjbGVhckFwcGxpY2F0aW9u
Q2FjaGUoKTsKIAorI2lmICFFTkFCTEUoUExVR0lOX1BST0NFU1MpCisgICAgdm9pZCBnZXRTaXRl
c1dpdGhQbHVnaW5EYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRocywgdWludDY0
X3QgY2FsbGJhY2tJRCk7CisjZW5kaWYKKyAgICAKICAgICB2b2lkIHN0YXJ0TWVtb3J5U2FtcGxl
cihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBk
b3VibGUpOwogICAgIHZvaWQgc3RvcE1lbW9yeVNhbXBsZXIoKTsKIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24g
Nzg2MzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3MgewogICAgIFNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoYm9vbCBzaG91bGRQYWludE5h
dGl2ZUNvbnRyb2xzKQogI2VuZGlmCiAKKyNpZiAhRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorICAg
ICMgUGx1Zy1pbnMuCisgICAgR2V0U2l0ZXNXaXRoUGx1Z2luRGF0YShWZWN0b3I8V1RGOjpTdHJp
bmc+IHBsdWdpblBhdGhzLCB1aW50NjRfdCBjYWxsYmFja0lEKQorI2VuZGlmCisKICAgICBDbGVh
clJlc291cmNlQ2FjaGVzKCk7CiAgICAgQ2xlYXJBcHBsaWNhdGlvbkNhY2hlKCk7CiAgICAgCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZpc2lvbiA3ODYzOCkKKysrIFNvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjk0OSw2ICsy
OTQ5LDE0IEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFBsdWdpbnNcUGx1Z2lu
SW5mb1N0b3JlLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcUGx1Z2luc1xXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3Bw
IgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
VUlQcm9jZXNzXFBsdWdpbnNcV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CiAJCQkJPEZpbHRlcgogCQkJCQlOYW1lPSJ3aW4iCiAJCQkJCT4K
</data>
<flag name="review"
          id="74224"
          type_id="1"
          status="+"
          setter="jhoneycutt"
    />
          </attachment>
      

    </bug>

</bugzilla>